From e991211c9be849ba7d99200b9ba9a839637e8ca9 Mon Sep 17 00:00:00 2001 From: dekzter Date: Tue, 11 Mar 2025 17:43:16 -0400 Subject: [PATCH] full mantine refactor --- .gitignore | 2 + dispatcharr/settings.py | 4 +- docker/init/99-init-dev.sh | 2 + frontend/.gitignore | 41 +- frontend/README.md | 72 +- frontend/entrypoint.sh | 6 - {vite => frontend}/eslint.config.js | 0 frontend/eslint.config.mjs | 12 - {vite => frontend}/index.html | 0 frontend/package-lock.json | 18123 ++-------------- frontend/package.json | 86 +- frontend/prettier.config.js | 2 +- frontend/public/android-chrome-192x192.png | Bin 23147 -> 0 bytes frontend/public/android-chrome-512x512.png | Bin 107643 -> 0 bytes frontend/public/apple-touch-icon.png | Bin 20856 -> 0 bytes frontend/public/favicon-16x16.png | Bin 778 -> 0 bytes frontend/public/favicon-32x32.png | Bin 1790 -> 0 bytes frontend/public/favicon.ico | Bin 15406 -> 0 bytes frontend/public/index.html | 61 - frontend/public/logo192.png | Bin 5347 -> 0 bytes frontend/public/logo512.png | Bin 9664 -> 0 bytes frontend/public/manifest.json | 25 - frontend/public/robots.txt | 3 - frontend/public/site.webmanifest | 1 - {vite => frontend}/public/vite.svg | 0 frontend/src/App.js | 151 - {vite => frontend}/src/App.jsx | 89 +- frontend/src/App.test.js | 8 - frontend/src/WebSocket.js | 85 - {vite => frontend}/src/WebSocket.jsx | 8 +- frontend/src/api.js | 25 +- {vite => frontend}/src/assets/react.svg | 0 frontend/src/components/Alert.js | 26 - frontend/src/components/FloatingVideo.js | 98 - .../src/components/FloatingVideo.jsx | 0 frontend/src/components/Sidebar.js | 182 - .../src/components/Sidebar.jsx | 127 +- frontend/src/components/forms/Channel.js | 491 - frontend/src/components/forms/Channel.jsx | 416 + frontend/src/components/forms/ChannelGroup.js | 94 - .../src/components/forms/ChannelGroup.jsx | 2 +- frontend/src/components/forms/EPG.js | 175 - .../src/components/forms/EPG.jsx | 6 +- frontend/src/components/forms/LoginForm.js | 111 - .../src/components/forms/LoginForm.jsx | 0 frontend/src/components/forms/M3U.js | 246 - .../src/components/forms/M3U.jsx | 30 +- frontend/src/components/forms/M3UProfile.js | 195 - .../src/components/forms/M3UProfile.jsx | 0 frontend/src/components/forms/M3UProfiles.js | 133 - .../src/components/forms/M3UProfiles.jsx | 0 frontend/src/components/forms/Stream.js | 151 - .../src/components/forms/Stream.jsx | 55 +- .../src/components/forms/StreamProfile.js | 165 - .../src/components/forms/StreamProfile.jsx | 0 .../src/components/forms/SuperuserForm.js | 128 - .../src/components/forms/SuperuserForm.jsx | 94 + frontend/src/components/forms/UserAgent.js | 144 - .../src/components/forms/UserAgent.jsx | 0 frontend/src/components/sidebar.css | 41 + .../src/components/tables/ChannelsTable.js | 1149 - .../src/components/tables/ChannelsTable.jsx | 378 +- frontend/src/components/tables/EPGsTable.js | 205 - .../src/components/tables/EPGsTable.jsx | 109 +- frontend/src/components/tables/M3UsTable.js | 242 - .../src/components/tables/M3UsTable.jsx | 230 +- .../components/tables/StreamProfilesTable.js | 233 - .../components/tables/StreamProfilesTable.jsx | 109 +- .../src/components/tables/StreamsTable.js | 598 - .../src/components/tables/StreamsTable.jsx | 237 +- .../src/components/tables/UserAgentsTable.js | 238 - .../src/components/tables/UserAgentsTable.jsx | 149 +- frontend/src/helpers/index.js | 3 - {vite => frontend}/src/helpers/index.jsx | 0 frontend/src/helpers/table.js | 53 - {vite => frontend}/src/helpers/table.jsx | 0 frontend/src/index.js | 14 - {vite => frontend}/src/main.jsx | 0 {vite => frontend}/src/mantineTheme.jsx | 0 frontend/src/pages/Channels-test.jsx | 15 + frontend/src/pages/Channels.js | 43 - {vite => frontend}/src/pages/Channels.jsx | 10 +- frontend/src/pages/Dashboard.js | 27 - {vite => frontend}/src/pages/Dashboard.jsx | 0 frontend/src/pages/EPG.js | 27 - {vite => frontend}/src/pages/EPG.jsx | 3 +- frontend/src/pages/Guide.js | 532 - {vite => frontend}/src/pages/Guide.jsx | 237 +- frontend/src/pages/Home.js | 14 - {vite => frontend}/src/pages/Home.jsx | 0 frontend/src/pages/Login.js | 8 - frontend/src/pages/Login.jsx | 16 + frontend/src/pages/M3U.js | 72 - {vite => frontend}/src/pages/M3U.jsx | 3 +- frontend/src/pages/Settings.js | 197 - {vite => frontend}/src/pages/Settings.jsx | 0 frontend/src/pages/StreamProfiles.js | 8 - .../src/pages/StreamProfiles.jsx | 7 +- frontend/src/pages/guide.css | 25 + frontend/src/reportWebVitals.js | 13 - frontend/src/setupTests.js | 5 - frontend/src/store/alerts.js | 24 - frontend/src/store/auth.js | 129 - {vite => frontend}/src/store/auth.jsx | 3 + frontend/src/store/channels.js | 89 - {vite => frontend}/src/store/channels.jsx | 0 frontend/src/store/epgs.js | 31 - {vite => frontend}/src/store/epgs.jsx | 0 frontend/src/store/playlists.js | 65 - {vite => frontend}/src/store/playlists.jsx | 0 frontend/src/store/settings.js | 34 - {vite => frontend}/src/store/settings.jsx | 0 frontend/src/store/streamProfiles.js | 40 - .../src/store/streamProfiles.jsx | 0 frontend/src/store/streams.js | 41 - {vite => frontend}/src/store/streams.jsx | 0 frontend/src/store/useVideoStore.js | 24 - .../src/store/useVideoStore.jsx | 0 frontend/src/store/userAgents.js | 40 - {vite => frontend}/src/store/userAgents.jsx | 0 frontend/src/theme.js | 92 - {vite => frontend}/src/theme.jsx | 0 {vite => frontend}/vite.config.js | 0 vite/.gitignore | 24 - vite/README.md | 12 - vite/package-lock.json | 4665 ---- vite/package.json | 52 - vite/prettier.config.js | 10 - vite/src/App.css | 38 - vite/src/api.js | 783 - vite/src/components/Alert.jsx | 26 - vite/src/components/Sidebar.jsx | 189 - vite/src/components/forms/Channel.jsx | 491 - vite/src/components/forms/SuperuserForm.jsx | 128 - vite/src/images/dispatcharr.svg | 23 - vite/src/images/ghost.svg | 66 - vite/src/images/logo.png | Bin 44564 -> 0 bytes vite/src/index.css | 31 - vite/src/logo.svg | 1 - vite/src/pages/Login.jsx | 8 - vite/src/store/alerts.jsx | 24 - vite/src/utils.js | 53 - 142 files changed, 3875 insertions(+), 30486 deletions(-) delete mode 100644 frontend/entrypoint.sh rename {vite => frontend}/eslint.config.js (100%) delete mode 100644 frontend/eslint.config.mjs rename {vite => frontend}/index.html (100%) delete mode 100644 frontend/public/android-chrome-192x192.png delete mode 100644 frontend/public/android-chrome-512x512.png delete mode 100644 frontend/public/apple-touch-icon.png delete mode 100644 frontend/public/favicon-16x16.png delete mode 100644 frontend/public/favicon-32x32.png delete mode 100644 frontend/public/favicon.ico delete mode 100644 frontend/public/index.html delete mode 100644 frontend/public/logo192.png delete mode 100644 frontend/public/logo512.png delete mode 100644 frontend/public/manifest.json delete mode 100644 frontend/public/robots.txt delete mode 100644 frontend/public/site.webmanifest rename {vite => frontend}/public/vite.svg (100%) delete mode 100644 frontend/src/App.js rename {vite => frontend}/src/App.jsx (62%) delete mode 100644 frontend/src/App.test.js delete mode 100644 frontend/src/WebSocket.js rename {vite => frontend}/src/WebSocket.jsx (91%) rename {vite => frontend}/src/assets/react.svg (100%) delete mode 100644 frontend/src/components/Alert.js delete mode 100644 frontend/src/components/FloatingVideo.js rename {vite => frontend}/src/components/FloatingVideo.jsx (100%) delete mode 100644 frontend/src/components/Sidebar.js rename vite/src/components/Sidebar-new.jsx => frontend/src/components/Sidebar.jsx (53%) delete mode 100644 frontend/src/components/forms/Channel.js create mode 100644 frontend/src/components/forms/Channel.jsx delete mode 100644 frontend/src/components/forms/ChannelGroup.js rename {vite => frontend}/src/components/forms/ChannelGroup.jsx (96%) delete mode 100644 frontend/src/components/forms/EPG.js rename {vite => frontend}/src/components/forms/EPG.jsx (95%) delete mode 100644 frontend/src/components/forms/LoginForm.js rename {vite => frontend}/src/components/forms/LoginForm.jsx (100%) delete mode 100644 frontend/src/components/forms/M3U.js rename {vite => frontend}/src/components/forms/M3U.jsx (91%) delete mode 100644 frontend/src/components/forms/M3UProfile.js rename {vite => frontend}/src/components/forms/M3UProfile.jsx (100%) delete mode 100644 frontend/src/components/forms/M3UProfiles.js rename {vite => frontend}/src/components/forms/M3UProfiles.jsx (100%) delete mode 100644 frontend/src/components/forms/Stream.js rename {vite => frontend}/src/components/forms/Stream.jsx (61%) delete mode 100644 frontend/src/components/forms/StreamProfile.js rename {vite => frontend}/src/components/forms/StreamProfile.jsx (100%) delete mode 100644 frontend/src/components/forms/SuperuserForm.js create mode 100644 frontend/src/components/forms/SuperuserForm.jsx delete mode 100644 frontend/src/components/forms/UserAgent.js rename {vite => frontend}/src/components/forms/UserAgent.jsx (100%) create mode 100644 frontend/src/components/sidebar.css delete mode 100644 frontend/src/components/tables/ChannelsTable.js rename {vite => frontend}/src/components/tables/ChannelsTable.jsx (72%) delete mode 100644 frontend/src/components/tables/EPGsTable.js rename {vite => frontend}/src/components/tables/EPGsTable.jsx (64%) delete mode 100644 frontend/src/components/tables/M3UsTable.js rename {vite => frontend}/src/components/tables/M3UsTable.jsx (54%) delete mode 100644 frontend/src/components/tables/StreamProfilesTable.js rename {vite => frontend}/src/components/tables/StreamProfilesTable.jsx (69%) delete mode 100644 frontend/src/components/tables/StreamsTable.js rename {vite => frontend}/src/components/tables/StreamsTable.jsx (73%) delete mode 100644 frontend/src/components/tables/UserAgentsTable.js rename {vite => frontend}/src/components/tables/UserAgentsTable.jsx (62%) delete mode 100644 frontend/src/helpers/index.js rename {vite => frontend}/src/helpers/index.jsx (100%) delete mode 100644 frontend/src/helpers/table.js rename {vite => frontend}/src/helpers/table.jsx (100%) delete mode 100644 frontend/src/index.js rename {vite => frontend}/src/main.jsx (100%) rename {vite => frontend}/src/mantineTheme.jsx (100%) create mode 100644 frontend/src/pages/Channels-test.jsx delete mode 100644 frontend/src/pages/Channels.js rename {vite => frontend}/src/pages/Channels.jsx (85%) delete mode 100644 frontend/src/pages/Dashboard.js rename {vite => frontend}/src/pages/Dashboard.jsx (100%) delete mode 100644 frontend/src/pages/EPG.js rename {vite => frontend}/src/pages/EPG.jsx (92%) delete mode 100644 frontend/src/pages/Guide.js rename {vite => frontend}/src/pages/Guide.jsx (72%) delete mode 100644 frontend/src/pages/Home.js rename {vite => frontend}/src/pages/Home.jsx (100%) delete mode 100644 frontend/src/pages/Login.js create mode 100644 frontend/src/pages/Login.jsx delete mode 100644 frontend/src/pages/M3U.js rename {vite => frontend}/src/pages/M3U.jsx (96%) delete mode 100644 frontend/src/pages/Settings.js rename {vite => frontend}/src/pages/Settings.jsx (100%) delete mode 100644 frontend/src/pages/StreamProfiles.js rename {vite => frontend}/src/pages/StreamProfiles.jsx (58%) create mode 100644 frontend/src/pages/guide.css delete mode 100644 frontend/src/reportWebVitals.js delete mode 100644 frontend/src/setupTests.js delete mode 100644 frontend/src/store/alerts.js delete mode 100644 frontend/src/store/auth.js rename {vite => frontend}/src/store/auth.jsx (97%) delete mode 100644 frontend/src/store/channels.js rename {vite => frontend}/src/store/channels.jsx (100%) delete mode 100644 frontend/src/store/epgs.js rename {vite => frontend}/src/store/epgs.jsx (100%) delete mode 100644 frontend/src/store/playlists.js rename {vite => frontend}/src/store/playlists.jsx (100%) delete mode 100644 frontend/src/store/settings.js rename {vite => frontend}/src/store/settings.jsx (100%) delete mode 100644 frontend/src/store/streamProfiles.js rename {vite => frontend}/src/store/streamProfiles.jsx (100%) delete mode 100644 frontend/src/store/streams.js rename {vite => frontend}/src/store/streams.jsx (100%) delete mode 100644 frontend/src/store/useVideoStore.js rename {vite => frontend}/src/store/useVideoStore.jsx (100%) delete mode 100644 frontend/src/store/userAgents.js rename {vite => frontend}/src/store/userAgents.jsx (100%) delete mode 100644 frontend/src/theme.js rename {vite => frontend}/src/theme.jsx (100%) rename {vite => frontend}/vite.config.js (100%) delete mode 100644 vite/.gitignore delete mode 100644 vite/README.md delete mode 100644 vite/package-lock.json delete mode 100644 vite/package.json delete mode 100644 vite/prettier.config.js delete mode 100644 vite/src/App.css delete mode 100644 vite/src/api.js delete mode 100644 vite/src/components/Alert.jsx delete mode 100644 vite/src/components/Sidebar.jsx delete mode 100644 vite/src/components/forms/Channel.jsx delete mode 100644 vite/src/components/forms/SuperuserForm.jsx delete mode 100644 vite/src/images/dispatcharr.svg delete mode 100644 vite/src/images/ghost.svg delete mode 100644 vite/src/images/logo.png delete mode 100644 vite/src/index.css delete mode 100644 vite/src/logo.svg delete mode 100644 vite/src/pages/Login.jsx delete mode 100644 vite/src/store/alerts.jsx delete mode 100644 vite/src/utils.js diff --git a/.gitignore b/.gitignore index bc578348..eb93c961 100755 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ node_modules/ staticfiles/ static/ data/ +.next +next-env.d.ts diff --git a/dispatcharr/settings.py b/dispatcharr/settings.py index 975fbe6e..b275bf66 100644 --- a/dispatcharr/settings.py +++ b/dispatcharr/settings.py @@ -55,7 +55,7 @@ TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ - os.path.join(BASE_DIR, 'frontend/build'), + os.path.join(BASE_DIR, 'frontend/dist'), BASE_DIR / "templates" ], 'APP_DIRS': True, @@ -139,7 +139,7 @@ STATIC_ROOT = BASE_DIR / 'static' # Directory where static files will be collec # Adjust STATICFILES_DIRS to include the paths to the directories that contain your static files. STATICFILES_DIRS = [ - os.path.join(BASE_DIR, 'frontend/build/static'), # React build static files + os.path.join(BASE_DIR, 'frontend/build/assets'), # React build static files ] diff --git a/docker/init/99-init-dev.sh b/docker/init/99-init-dev.sh index a1f13aef..3e9ecc0a 100644 --- a/docker/init/99-init-dev.sh +++ b/docker/init/99-init-dev.sh @@ -15,3 +15,5 @@ fi # Install frontend dependencies cd /app/frontend && npm install + +cd /app && pip install -r requirements.txt diff --git a/frontend/.gitignore b/frontend/.gitignore index 4d29575d..a547bf36 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -1,23 +1,24 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - +# Logs +logs +*.log npm-debug.log* yarn-debug.log* yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/frontend/README.md b/frontend/README.md index 58beeacc..fd3b758d 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -1,70 +1,12 @@ -# Getting Started with Create React App +# React + Vite -This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. -## Available Scripts +Currently, two official plugins are available: -In the project directory, you can run: +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh -### `npm start` +## Expanding the ESLint configuration -Runs the app in the development mode.\ -Open [http://localhost:3000](http://localhost:3000) to view it in your browser. - -The page will reload when you make changes.\ -You may also see any lint errors in the console. - -### `npm test` - -Launches the test runner in the interactive watch mode.\ -See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. - -### `npm run build` - -Builds the app for production to the `build` folder.\ -It correctly bundles React in production mode and optimizes the build for the best performance. - -The build is minified and the filenames include the hashes.\ -Your app is ready to be deployed! - -See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. - -### `npm run eject` - -**Note: this is a one-way operation. Once you `eject`, you can't go back!** - -If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. - -Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own. - -You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it. - -## Learn More - -You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). - -To learn React, check out the [React documentation](https://reactjs.org/). - -### Code Splitting - -This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) - -### Analyzing the Bundle Size - -This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) - -### Making a Progressive Web App - -This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) - -### Advanced Configuration - -This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) - -### Deployment - -This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) - -### `npm run build` fails to minify - -This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) +If you are developing a production application, we recommend using TypeScript and enable type-aware lint rules. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project. diff --git a/frontend/entrypoint.sh b/frontend/entrypoint.sh deleted file mode 100644 index 90de8bbc..00000000 --- a/frontend/entrypoint.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -apk add nodejs npm -cd /app/ -npm i -PORT=9191 npm run start diff --git a/vite/eslint.config.js b/frontend/eslint.config.js similarity index 100% rename from vite/eslint.config.js rename to frontend/eslint.config.js diff --git a/frontend/eslint.config.mjs b/frontend/eslint.config.mjs deleted file mode 100644 index bb72d115..00000000 --- a/frontend/eslint.config.mjs +++ /dev/null @@ -1,12 +0,0 @@ -import globals from "globals"; -import pluginJs from "@eslint/js"; -import pluginReact from "eslint-plugin-react"; - - -/** @type {import('eslint').Linter.Config[]} */ -export default [ - {files: ["**/*.{js,mjs,cjs,jsx}"]}, - {languageOptions: { globals: globals.browser }}, - pluginJs.configs.recommended, - pluginReact.configs.flat.recommended, -]; \ No newline at end of file diff --git a/vite/index.html b/frontend/index.html similarity index 100% rename from vite/index.html rename to frontend/index.html diff --git a/frontend/package-lock.json b/frontend/package-lock.json index bf446dfe..ca01da2b 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,69 +1,60 @@ { - "name": "frontend", - "version": "0.1.0", + "name": "vite", + "version": "0.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "frontend", - "version": "0.1.0", + "name": "vite", + "version": "0.0.0", "dependencies": { "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", - "@fontsource/roboto": "^5.1.1", - "@mui/icons-material": "^6.4.5", - "@mui/material": "^6.4.5", - "@videojs/http-streaming": "^3.17.0", - "axios": "^1.7.9", + "@mantine/core": "^7.17.0", + "@mantine/dates": "^7.17.0", + "@mantine/hooks": "^7.17.0", + "@mantine/notifications": "^7.17.1", + "@mui/icons-material": "^6.4.7", + "@mui/material": "^6.4.7", + "@mui/x-date-pickers": "^7.27.3", + "@tabler/icons-react": "^3.31.0", + "allotment": "^1.20.3", + "axios": "^1.8.2", + "clsx": "^2.1.1", "dayjs": "^1.11.13", - "eslint": "^8.57.1", "formik": "^2.4.6", "hls.js": "^1.5.20", "lucide-react": "^0.479.0", - "material-react-table": "^3.2.0", - "mpegts.js": "^1.4.2", - "planby": "^1.1.7", - "pm2": "^5.4.3", - "prettier": "^3.5.2", - "react": "18.2.0", - "react-dom": "18.2.0", - "react-draggable": "4.4.6", - "react-router-dom": "^7.2.0", - "react-scripts": "5.0.1", - "react-window": "^1.8.11", + "mantine-react-table": "^2.0.0-beta.9", + "material-react-table": "^3.2.1", + "mpegts.js": "^1.8.0", + "prettier": "^3.5.3", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-draggable": "^4.4.6", + "react-pro-sidebar": "^1.1.0", + "react-router-dom": "^7.3.0", "video.js": "^8.21.0", - "web-vitals": "^2.1.4", "yup": "^1.6.1", "zustand": "^5.0.3" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "engines": { - "node": ">=10" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" + "devDependencies": { + "@eslint/js": "^9.21.0", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", + "@vitejs/plugin-react-swc": "^3.8.0", + "eslint": "^9.21.0", + "eslint-plugin-react-hooks": "^5.1.0", + "eslint-plugin-react-refresh": "^0.4.19", + "globals": "^15.15.0", + "vite": "^6.2.0" } }, "node_modules/@babel/code-frame": { "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "js-tokens": "^4.0.0", @@ -73,91 +64,11 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/compat-data": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", - "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz", - "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.9", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.9", - "@babel/parser": "^7.26.9", - "@babel/template": "^7.26.9", - "@babel/traverse": "^7.26.9", - "@babel/types": "^7.26.9", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.26.8.tgz", - "integrity": "sha512-3tBctaHRW6xSub26z7n8uyOTwwUsCdvIug/oxBH9n6yCO5hMj2vwDJAo7RbBMKrM7P+W2j61zLKviJQFGOYKMg==", - "license": "MIT", - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" - } - }, - "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/@babel/eslint-parser/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/generator": { "version": "7.26.9", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", + "license": "MIT", "dependencies": { "@babel/parser": "^7.26.9", "@babel/types": "^7.26.9", @@ -169,202 +80,11 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", - "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", - "dependencies": { - "@babel/compat-data": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.26.9.tgz", - "integrity": "sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.26.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.26.9", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", - "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "regexpu-core": "^6.2.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", - "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-module-imports": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", - "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "license": "MIT", "dependencies": { "@babel/traverse": "^7.25.9", "@babel/types": "^7.25.9" @@ -377,6 +97,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -385,39 +106,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.9.tgz", - "integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==", - "dependencies": { - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.9" - }, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -426,6 +115,7 @@ "version": "7.26.9", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", + "license": "MIT", "dependencies": { "@babel/types": "^7.26.9" }, @@ -436,1478 +126,11 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", - "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", - "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", - "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", - "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.25.9.tgz", - "integrity": "sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-decorators": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.9.tgz", - "integrity": "sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.26.0.tgz", - "integrity": "sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", - "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", - "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz", - "integrity": "sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.26.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", - "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", - "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", - "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/traverse": "^7.25.9", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", - "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", - "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", - "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", - "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.26.5.tgz", - "integrity": "sha512-eGK26RsbIkYUns3Y8qKl362juDDYK+wEdPGHGrhzUl6CewZFo55VZ7hg+CyMFU4dd5QQakBN86nBMpRsFpRvbQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/plugin-syntax-flow": "^7.26.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz", - "integrity": "sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", - "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", - "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", - "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", - "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", - "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", - "dependencies": { - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", - "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", - "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", - "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.26.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", - "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", - "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", - "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", - "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz", - "integrity": "sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", - "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", - "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", - "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", - "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", - "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", - "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", - "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.9.tgz", - "integrity": "sha512-Jf+8y9wXQbbxvVYTM8gO5oEF2POdNji0NMltEkG7FtmzD9PVz7/lxpqSdTvwsjTMU5HIHuDVNf2SOxLkWi+wPQ==", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.26.5", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz", - "integrity": "sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz", - "integrity": "sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.8.tgz", - "integrity": "sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-syntax-typescript": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", - "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", - "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", - "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.9.tgz", - "integrity": "sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==", - "dependencies": { - "@babel/compat-data": "^7.26.8", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.26.0", - "@babel/plugin-syntax-import-attributes": "^7.26.0", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.25.9", - "@babel/plugin-transform-async-generator-functions": "^7.26.8", - "@babel/plugin-transform-async-to-generator": "^7.25.9", - "@babel/plugin-transform-block-scoped-functions": "^7.26.5", - "@babel/plugin-transform-block-scoping": "^7.25.9", - "@babel/plugin-transform-class-properties": "^7.25.9", - "@babel/plugin-transform-class-static-block": "^7.26.0", - "@babel/plugin-transform-classes": "^7.25.9", - "@babel/plugin-transform-computed-properties": "^7.25.9", - "@babel/plugin-transform-destructuring": "^7.25.9", - "@babel/plugin-transform-dotall-regex": "^7.25.9", - "@babel/plugin-transform-duplicate-keys": "^7.25.9", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-dynamic-import": "^7.25.9", - "@babel/plugin-transform-exponentiation-operator": "^7.26.3", - "@babel/plugin-transform-export-namespace-from": "^7.25.9", - "@babel/plugin-transform-for-of": "^7.26.9", - "@babel/plugin-transform-function-name": "^7.25.9", - "@babel/plugin-transform-json-strings": "^7.25.9", - "@babel/plugin-transform-literals": "^7.25.9", - "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", - "@babel/plugin-transform-member-expression-literals": "^7.25.9", - "@babel/plugin-transform-modules-amd": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.26.3", - "@babel/plugin-transform-modules-systemjs": "^7.25.9", - "@babel/plugin-transform-modules-umd": "^7.25.9", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-new-target": "^7.25.9", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6", - "@babel/plugin-transform-numeric-separator": "^7.25.9", - "@babel/plugin-transform-object-rest-spread": "^7.25.9", - "@babel/plugin-transform-object-super": "^7.25.9", - "@babel/plugin-transform-optional-catch-binding": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9", - "@babel/plugin-transform-private-methods": "^7.25.9", - "@babel/plugin-transform-private-property-in-object": "^7.25.9", - "@babel/plugin-transform-property-literals": "^7.25.9", - "@babel/plugin-transform-regenerator": "^7.25.9", - "@babel/plugin-transform-regexp-modifiers": "^7.26.0", - "@babel/plugin-transform-reserved-words": "^7.25.9", - "@babel/plugin-transform-shorthand-properties": "^7.25.9", - "@babel/plugin-transform-spread": "^7.25.9", - "@babel/plugin-transform-sticky-regex": "^7.25.9", - "@babel/plugin-transform-template-literals": "^7.26.8", - "@babel/plugin-transform-typeof-symbol": "^7.26.7", - "@babel/plugin-transform-unicode-escapes": "^7.25.9", - "@babel/plugin-transform-unicode-property-regex": "^7.25.9", - "@babel/plugin-transform-unicode-regex": "^7.25.9", - "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.11.0", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.40.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", - "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-transform-react-display-name": "^7.25.9", - "@babel/plugin-transform-react-jsx": "^7.25.9", - "@babel/plugin-transform-react-jsx-development": "^7.25.9", - "@babel/plugin-transform-react-pure-annotations": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", - "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-typescript": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/runtime": { "version": "7.26.9", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.9.tgz", "integrity": "sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1919,6 +142,7 @@ "version": "7.26.9", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/parser": "^7.26.9", @@ -1932,6 +156,7 @@ "version": "7.26.9", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.26.9", @@ -1945,10 +170,20 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/types": { "version": "7.26.9", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" @@ -1957,285 +192,11 @@ "node": ">=6.9.0" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - }, - "node_modules/@csstools/normalize.css": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz", - "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ==" - }, - "node_modules/@csstools/postcss-cascade-layers": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", - "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", - "dependencies": { - "@csstools/selector-specificity": "^2.0.2", - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-color-function": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", - "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-font-format-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", - "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-hwb-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", - "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-ic-unit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", - "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", - "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", - "dependencies": { - "@csstools/selector-specificity": "^2.0.0", - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-nested-calc": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", - "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-normalize-display-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", - "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-oklab-function": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", - "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", - "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", - "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", - "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", - "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-unset-value": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", - "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/selector-specificity": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", - "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", - "engines": { - "node": "^14 || ^16 || >=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss-selector-parser": "^6.0.10" - } - }, "node_modules/@emotion/babel-plugin": { "version": "11.13.5", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", + "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.16.7", "@babel/runtime": "^7.18.3", @@ -2250,23 +211,11 @@ "stylis": "4.2.0" } }, - "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - }, - "node_modules/@emotion/babel-plugin/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@emotion/cache": { "version": "11.14.0", "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "license": "MIT", "dependencies": { "@emotion/memoize": "^0.9.0", "@emotion/sheet": "^1.4.0", @@ -2278,12 +227,14 @@ "node_modules/@emotion/hash": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", - "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==" + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" }, "node_modules/@emotion/is-prop-valid": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz", "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==", + "license": "MIT", "dependencies": { "@emotion/memoize": "^0.9.0" } @@ -2291,12 +242,14 @@ "node_modules/@emotion/memoize": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", - "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==" + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" }, "node_modules/@emotion/react": { "version": "11.14.0", "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -2320,6 +273,7 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "license": "MIT", "dependencies": { "@emotion/hash": "^0.9.2", "@emotion/memoize": "^0.9.0", @@ -2331,12 +285,14 @@ "node_modules/@emotion/sheet": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", - "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==" + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "license": "MIT" }, "node_modules/@emotion/styled": { "version": "11.14.0", "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz", "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -2358,12 +314,14 @@ "node_modules/@emotion/unitless": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", - "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==" + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", + "license": "MIT", "peerDependencies": { "react": ">=16.8.0" } @@ -2371,17 +329,446 @@ "node_modules/@emotion/utils": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", - "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==" + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "license": "MIT" }, "node_modules/@emotion/weak-memoize": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", - "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==" + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz", + "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz", + "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz", + "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz", + "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz", + "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz", + "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz", + "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz", + "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz", + "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz", + "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz", + "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz", + "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz", + "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz", + "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz", + "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz", + "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", + "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz", + "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz", + "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz", + "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz", + "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz", + "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz", + "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz", + "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz", + "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.4.3" }, @@ -2395,30 +782,12 @@ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -2426,84 +795,222 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", + "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "type-fest": "^0.20.2" + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.1.0.tgz", + "integrity": "sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", + "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz", + "integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.22.0.tgz", + "integrity": "sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==", + "dev": true, "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@fontsource/roboto": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-5.1.1.tgz", - "integrity": "sha512-XwVVXtERDQIM7HPUIbyDe0FP4SRovpjF7zMI8M7pbqFp3ahLJsJTd18h+E6pkar6UbV3btbwkKjYARr5M+SQow==" + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@eslint/plugin-kit": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", + "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", + "dev": true, "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@eslint/core": "^0.12.0", + "levn": "^0.4.1" }, "engines": { - "node": ">=10.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/react": { + "version": "0.26.28", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz", + "integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.1.2", + "@floating-ui/utils": "^0.2.8", + "tabbable": "^6.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "license": "MIT" + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -2512,401 +1019,25 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "license": "BSD-3-Clause" - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "engines": { - "node": ">=12" + "node": ">=18.18" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", - "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", - "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", - "dependencies": { - "@sinclair/typebox": "^0.24.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - }, - "node_modules/@jest/transform/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -2920,6 +1051,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -2928,51 +1060,129 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", "engines": { "node": ">=6.0.0" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" + "node_modules/@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", + "license": "Apache-2.0" + }, + "node_modules/@mantine/core": { + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@mantine/core/-/core-7.17.1.tgz", + "integrity": "sha512-V8O3Ftq4la4I4wNDkTfH4Slkt/pCEU32pTE/DkO46zua0VFxfOAJeLjaol0s11//T+bXx82DtjMsd9APWPuFhA==", + "license": "MIT", + "dependencies": { + "@floating-ui/react": "^0.26.28", + "clsx": "^2.1.1", + "react-number-format": "^5.4.3", + "react-remove-scroll": "^2.6.2", + "react-textarea-autosize": "8.5.6", + "type-fest": "^4.27.0" + }, + "peerDependencies": { + "@mantine/hooks": "7.17.1", + "react": "^18.x || ^19.x", + "react-dom": "^18.x || ^19.x" + } + }, + "node_modules/@mantine/core/node_modules/type-fest": { + "version": "4.37.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.37.0.tgz", + "integrity": "sha512-S/5/0kFftkq27FPNye0XM1e2NsnoD/3FS+pBmbjmmtLT6I+i344KoOf7pvXreaFsDamWeaJX55nczA1m5PsBDg==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@mantine/dates": { + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@mantine/dates/-/dates-7.17.1.tgz", + "integrity": "sha512-L9MlIDb528RpznUeeW71xS4q3lYGolElz/f7xGRXEu9gHLaNJufbxroTw2N8RC6p/+RN1ZrSXEsjlr2euiofAw==", + "license": "MIT", + "dependencies": { + "clsx": "^2.1.1" + }, + "peerDependencies": { + "@mantine/core": "7.17.1", + "@mantine/hooks": "7.17.1", + "dayjs": ">=1.0.0", + "react": "^18.x || ^19.x", + "react-dom": "^18.x || ^19.x" + } + }, + "node_modules/@mantine/hooks": { + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-7.17.1.tgz", + "integrity": "sha512-mkHLrXMPd5xdI5WD7UOLwNEpdh/i6A7HaRDTXvjDE2/S0N8VmAE+BlvdyvWRMi7ODp2zVqJdP8cF1tgUn+Z0fA==", + "license": "MIT", + "peerDependencies": { + "react": "^18.x || ^19.x" + } + }, + "node_modules/@mantine/notifications": { + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-7.17.1.tgz", + "integrity": "sha512-jsCNkkjgtsGYIMbCrzBY0UBckoXyeaSWbEoJdvMlfA+LaeOQrSLxa+ot+1+wPaoZxR+1Q1xOwC1X5bTxHKudBA==", + "license": "MIT", + "dependencies": { + "@mantine/store": "7.17.1", + "react-transition-group": "4.4.5" + }, + "peerDependencies": { + "@mantine/core": "7.17.1", + "@mantine/hooks": "7.17.1", + "react": "^18.x || ^19.x", + "react-dom": "^18.x || ^19.x" + } + }, + "node_modules/@mantine/store": { + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@mantine/store/-/store-7.17.1.tgz", + "integrity": "sha512-is1c0FycakMsbTElKGWO59LarjMIk24JUXfjP/QIrB0XqpXreq3u7aN4hoNqr1IftTZSfVBii4W8pVFeWaV55g==", + "license": "MIT", + "peerDependencies": { + "react": "^18.x || ^19.x" + } }, "node_modules/@mui/core-downloads-tracker": { - "version": "6.4.5", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-6.4.5.tgz", - "integrity": "sha512-zoXvHU1YuoodgMlPS+epP084Pqv9V+Vg+5IGv9n/7IIFVQ2nkTngYHYxElCq8pdTTbDcgji+nNh0lxri2abWgA==", + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-6.4.7.tgz", + "integrity": "sha512-XjJrKFNt9zAKvcnoIIBquXyFyhfrHYuttqMsoDS7lM7VwufYG4fAPw4kINjBFg++fqXM2BNAuWR9J7XVIuKIKg==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" } }, "node_modules/@mui/icons-material": { - "version": "6.4.5", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-6.4.5.tgz", - "integrity": "sha512-4A//t8Nrc+4u4pbVhGarIFU98zpuB5AV9hTNzgXx1ySZJ1tWtx+i/1SbQ8PtGJxWeXlljhwimZJNPQ3x0CiIFw==", + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-6.4.7.tgz", + "integrity": "sha512-Rk8cs9ufQoLBw582Rdqq7fnSXXZTqhYRbpe1Y5SAz9lJKZP3CIdrj0PfG8HJLGw1hrsHFN/rkkm70IDzhJsG1g==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.26.0" }, @@ -2984,7 +1194,7 @@ "url": "https://opencollective.com/mui-org" }, "peerDependencies": { - "@mui/material": "^6.4.5", + "@mui/material": "^6.4.7", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, @@ -2995,15 +1205,16 @@ } }, "node_modules/@mui/material": { - "version": "6.4.5", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-6.4.5.tgz", - "integrity": "sha512-5eyEgSXocIeV1JkXs8mYyJXU0aFyXZIWI5kq2g/mCnIgJe594lkOBNAKnCIaGVfQTu2T6TTEHF8/hHIqpiIRGA==", + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-6.4.7.tgz", + "integrity": "sha512-K65StXUeGAtFJ4ikvHKtmDCO5Ab7g0FZUu2J5VpoKD+O6Y3CjLYzRi+TMlI3kaL4CL158+FccMoOd/eaddmeRQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.26.0", - "@mui/core-downloads-tracker": "^6.4.5", - "@mui/system": "^6.4.3", + "@mui/core-downloads-tracker": "^6.4.7", + "@mui/system": "^6.4.7", "@mui/types": "^7.2.21", - "@mui/utils": "^6.4.3", + "@mui/utils": "^6.4.6", "@popperjs/core": "^2.11.8", "@types/react-transition-group": "^4.4.12", "clsx": "^2.1.1", @@ -3022,7 +1233,7 @@ "peerDependencies": { "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", - "@mui/material-pigment-css": "^6.4.3", + "@mui/material-pigment-css": "^6.4.7", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" @@ -3042,26 +1253,14 @@ } } }, - "node_modules/@mui/material/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@mui/material/node_modules/react-is": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz", - "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==" - }, "node_modules/@mui/private-theming": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-6.4.3.tgz", - "integrity": "sha512-7x9HaNwDCeoERc4BoEWLieuzKzXu5ZrhRnEM6AUcRXUScQLvF1NFkTlP59+IJfTbEMgcGg1wWHApyoqcksrBpQ==", + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-6.4.6.tgz", + "integrity": "sha512-T5FxdPzCELuOrhpA2g4Pi6241HAxRwZudzAuL9vBvniuB5YU82HCmrARw32AuCiyTfWzbrYGGpZ4zyeqqp9RvQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.26.0", - "@mui/utils": "^6.4.3", + "@mui/utils": "^6.4.6", "prop-types": "^15.8.1" }, "engines": { @@ -3082,9 +1281,10 @@ } }, "node_modules/@mui/styled-engine": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-6.4.3.tgz", - "integrity": "sha512-OC402VfK+ra2+f12Gef8maY7Y9n7B6CZcoQ9u7mIkh/7PKwW/xH81xwX+yW+Ak1zBT3HYcVjh2X82k5cKMFGoQ==", + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-6.4.6.tgz", + "integrity": "sha512-vSWYc9ZLX46be5gP+FCzWVn5rvDr4cXC5JBZwSIkYk9xbC7GeV+0kCvB8Q6XLFQJy+a62bbqtmdwS4Ghi9NBlQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.26.0", "@emotion/cache": "^11.13.5", @@ -3115,15 +1315,16 @@ } }, "node_modules/@mui/system": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-6.4.3.tgz", - "integrity": "sha512-Q0iDwnH3+xoxQ0pqVbt8hFdzhq1g2XzzR4Y5pVcICTNtoCLJmpJS3vI4y/OIM1FHFmpfmiEC2IRIq7YcZ8nsmg==", + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-6.4.7.tgz", + "integrity": "sha512-7wwc4++Ak6tGIooEVA9AY7FhH2p9fvBMORT4vNLMAysH3Yus/9B9RYMbrn3ANgsOyvT3Z7nE+SP8/+3FimQmcg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.26.0", - "@mui/private-theming": "^6.4.3", - "@mui/styled-engine": "^6.4.3", + "@mui/private-theming": "^6.4.6", + "@mui/styled-engine": "^6.4.6", "@mui/types": "^7.2.21", - "@mui/utils": "^6.4.3", + "@mui/utils": "^6.4.6", "clsx": "^2.1.1", "csstype": "^3.1.3", "prop-types": "^15.8.1" @@ -3153,18 +1354,11 @@ } } }, - "node_modules/@mui/system/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "engines": { - "node": ">=6" - } - }, "node_modules/@mui/types": { "version": "7.2.21", "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.21.tgz", "integrity": "sha512-6HstngiUxNqLU+/DPqlUJDIPbzUBxIVHb1MmXP0eTWDIROiCR2viugXpEif0PPe2mLqqakPzzRClWAnK+8UJww==", + "license": "MIT", "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, @@ -3175,9 +1369,10 @@ } }, "node_modules/@mui/utils": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-6.4.3.tgz", - "integrity": "sha512-jxHRHh3BqVXE9ABxDm+Tc3wlBooYz/4XPa0+4AI+iF38rV1/+btJmSUgG4shDtSWVs/I97aDn5jBCt6SF2Uq2A==", + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-6.4.6.tgz", + "integrity": "sha512-43nZeE1pJF2anGafNydUcYFPtHwAqiBiauRtaMvurdrZI3YrUjHkAu43RBsxef7OFtJMXGiHFvq43kb7lig0sA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.26.0", "@mui/types": "^7.2.21", @@ -3203,25 +1398,11 @@ } } }, - "node_modules/@mui/utils/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@mui/utils/node_modules/react-is": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz", - "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==" - }, "node_modules/@mui/x-date-pickers": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.27.0.tgz", - "integrity": "sha512-wSx8JGk4WQ2hTObfQITc+zlmUKNleQYoH1hGocaQlpWpo1HhauDtcQfX6sDN0J0dPT2eeyxDWGj4uJmiSfQKcw==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.27.3.tgz", + "integrity": "sha512-igfKTPC4ZVCmS5j/NXcXBtj/hHseQHzRpCpIB1PMnJGhMdRYXnz8qZz5XhlNBKlzJVXkGu6Uil+obZpCLNj1xg==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.25.7", "@mui/utils": "^5.16.6 || ^6.0.0", @@ -3283,22 +1464,11 @@ } } }, - "node_modules/@mui/x-date-pickers/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/@mui/x-internals": { "version": "7.26.0", "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.26.0.tgz", "integrity": "sha512-VxTCYQcZ02d3190pdvys2TDg9pgbvewAVakEopiOgReKAUhLdRlgGJHcOA/eAuGLyK1YIo26A6Ow6ZKlSRLwMg==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.25.7", "@mui/utils": "^5.16.6 || ^6.0.0" @@ -3314,694 +1484,532 @@ "react": "^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "license": "MIT", - "dependencies": { - "eslint-scope": "5.1.1" - } - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@pm2/agent": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-2.0.4.tgz", - "integrity": "sha512-n7WYvvTJhHLS2oBb1PjOtgLpMhgImOq8sXkPBw6smeg9LJBWZjiEgPKOpR8mn9UJZsB5P3W4V/MyvNnp31LKeA==", - "license": "AGPL-3.0", - "dependencies": { - "async": "~3.2.0", - "chalk": "~3.0.0", - "dayjs": "~1.8.24", - "debug": "~4.3.1", - "eventemitter2": "~5.0.1", - "fast-json-patch": "^3.0.0-1", - "fclone": "~1.0.11", - "nssocket": "0.6.0", - "pm2-axon": "~4.0.1", - "pm2-axon-rpc": "~0.7.0", - "proxy-agent": "~6.3.0", - "semver": "~7.5.0", - "ws": "~7.5.10" - } - }, - "node_modules/@pm2/agent/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@pm2/agent/node_modules/dayjs": { - "version": "1.8.36", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz", - "integrity": "sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==", - "license": "MIT" - }, - "node_modules/@pm2/agent/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@pm2/agent/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@pm2/agent/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@pm2/agent/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, - "node_modules/@pm2/io": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@pm2/io/-/io-6.0.1.tgz", - "integrity": "sha512-KiA+shC6sULQAr9mGZ1pg+6KVW9MF8NpG99x26Lf/082/Qy8qsTCtnJy+HQReW1A9Rdf0C/404cz0RZGZro+IA==", - "license": "Apache-2", - "dependencies": { - "async": "~2.6.1", - "debug": "~4.3.1", - "eventemitter2": "^6.3.1", - "require-in-the-middle": "^5.0.0", - "semver": "~7.5.4", - "shimmer": "^1.2.0", - "signal-exit": "^3.0.3", - "tslib": "1.9.3" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@pm2/io/node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/@pm2/io/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@pm2/io/node_modules/eventemitter2": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", - "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", - "license": "MIT" - }, - "node_modules/@pm2/io/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@pm2/io/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@pm2/io/node_modules/tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "license": "Apache-2.0" - }, - "node_modules/@pm2/io/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, - "node_modules/@pm2/js-api": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.8.0.tgz", - "integrity": "sha512-nmWzrA/BQZik3VBz+npRcNIu01kdBhWL0mxKmP1ciF/gTcujPTQqt027N9fc1pK9ERM8RipFhymw7RcmCyOEYA==", - "license": "Apache-2", - "dependencies": { - "async": "^2.6.3", - "debug": "~4.3.1", - "eventemitter2": "^6.3.1", - "extrareqp2": "^1.0.0", - "ws": "^7.0.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@pm2/js-api/node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/@pm2/js-api/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@pm2/js-api/node_modules/eventemitter2": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", - "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", - "license": "MIT" - }, - "node_modules/@pm2/pm2-version-check": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz", - "integrity": "sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==", - "license": "MIT", - "dependencies": { - "debug": "^4.3.1" - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.15.tgz", - "integrity": "sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==", - "dependencies": { - "ansi-html": "^0.0.9", - "core-js-pure": "^3.23.3", - "error-stack-parser": "^2.0.6", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.4", - "schema-utils": "^4.2.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">= 10.13" - }, - "peerDependencies": { - "@types/webpack": "4.x || 5.x", - "react-refresh": ">=0.10.0 <1.0.0", - "sockjs-client": "^1.4.0", - "type-fest": ">=0.17.0 <5.0.0", - "webpack": ">=4.43.0 <6.0.0", - "webpack-dev-server": "3.x || 4.x || 5.x", - "webpack-hot-middleware": "2.x", - "webpack-plugin-serve": "0.x || 1.x" - }, - "peerDependenciesMeta": { - "@types/webpack": { - "optional": true - }, - "sockjs-client": { - "optional": true - }, - "type-fest": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - }, - "webpack-hot-middleware": { - "optional": true - }, - "webpack-plugin-serve": { - "optional": true - } - } - }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" } }, - "node_modules/@rollup/plugin-babel": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", - "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.35.0.tgz", + "integrity": "sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.35.0.tgz", + "integrity": "sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.35.0.tgz", + "integrity": "sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.35.0.tgz", + "integrity": "sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.35.0.tgz", + "integrity": "sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.35.0.tgz", + "integrity": "sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.35.0.tgz", + "integrity": "sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.35.0.tgz", + "integrity": "sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.35.0.tgz", + "integrity": "sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.35.0.tgz", + "integrity": "sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.35.0.tgz", + "integrity": "sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.35.0.tgz", + "integrity": "sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.35.0.tgz", + "integrity": "sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.35.0.tgz", + "integrity": "sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.35.0.tgz", + "integrity": "sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.35.0.tgz", + "integrity": "sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.35.0.tgz", + "integrity": "sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.35.0.tgz", + "integrity": "sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.35.0.tgz", + "integrity": "sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@swc/core": { + "version": "1.11.8", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.11.8.tgz", + "integrity": "sha512-UAL+EULxrc0J73flwYHfu29mO8CONpDJiQv1QPDXsyCvDUcEhqAqUROVTgC+wtJCFFqMQdyr4stAA5/s0KSOmA==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.19" }, "engines": { - "node": ">= 10.0.0" + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.11.8", + "@swc/core-darwin-x64": "1.11.8", + "@swc/core-linux-arm-gnueabihf": "1.11.8", + "@swc/core-linux-arm64-gnu": "1.11.8", + "@swc/core-linux-arm64-musl": "1.11.8", + "@swc/core-linux-x64-gnu": "1.11.8", + "@swc/core-linux-x64-musl": "1.11.8", + "@swc/core-win32-arm64-msvc": "1.11.8", + "@swc/core-win32-ia32-msvc": "1.11.8", + "@swc/core-win32-x64-msvc": "1.11.8" }, "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0" + "@swc/helpers": "*" }, "peerDependenciesMeta": { - "@types/babel__core": { + "@swc/helpers": { "optional": true } } }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.11.8", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.11.8.tgz", + "integrity": "sha512-rrSsunyJWpHN+5V1zumndwSSifmIeFQBK9i2RMQQp15PgbgUNxHK5qoET1n20pcUrmZeT6jmJaEWlQchkV//Og==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 10.0.0" + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.11.8", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.11.8.tgz", + "integrity": "sha512-44goLqQuuo0HgWnG8qC+ZFw/qnjCVVeqffhzFr9WAXXotogVaxM8ze6egE58VWrfEc8me8yCcxOYL9RbtjhS/Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.11.8", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.11.8.tgz", + "integrity": "sha512-Mzo8umKlhTWwF1v8SLuTM1z2A+P43UVhf4R8RZDhzIRBuB2NkeyE+c0gexIOJBuGSIATryuAF4O4luDu727D1w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.11.8", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.11.8.tgz", + "integrity": "sha512-EyhO6U+QdoGYC1MeHOR0pyaaSaKYyNuT4FQNZ1eZIbnuueXpuICC7iNmLIOfr3LE5bVWcZ7NKGVPlM2StJEcgA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.11.8", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.11.8.tgz", + "integrity": "sha512-QU6wOkZnS6/QuBN1MHD6G2BgFxB0AclvTVGbqYkRA7MsVkcC29PffESqzTXnypzB252/XkhQjoB2JIt9rPYf6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.11.8", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.11.8.tgz", + "integrity": "sha512-r72onUEIU1iJi9EUws3R28pztQ/eM3EshNpsPRBfuLwKy+qn3et55vXOyDhIjGCUph5Eg2Yn8H3h6MTxDdLd+w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.11.8", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.11.8.tgz", + "integrity": "sha512-294k8cLpO103++f4ZUEDr3vnBeUfPitW6G0a3qeVZuoXFhFgaW7ANZIWknUc14WiLOMfMecphJAEiy9C8OeYSw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.11.8", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.11.8.tgz", + "integrity": "sha512-EbjOzQ+B85rumHyeesBYxZ+hq3ZQn+YAAT1ZNE9xW1/8SuLoBmHy/K9YniRGVDq/2NRmp5kI5+5h5TX0asIS9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.11.8", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.11.8.tgz", + "integrity": "sha512-Z+FF5kgLHfQWIZ1KPdeInToXLzbY0sMAashjd/igKeP1Lz0qKXVAK+rpn6ASJi85Fn8wTftCGCyQUkRVn0bTDg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.11.8", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.11.8.tgz", + "integrity": "sha512-j6B6N0hChCeAISS6xp/hh6zR5CSCr037BAjCxNLsT8TGe5D+gYZ57heswUWXRH8eMKiRDGiLCYpPB2pkTqxCSw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@swc/types": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.19.tgz", + "integrity": "sha512-WkAZaAfj44kh/UFdAQcrMP1I0nwRqpt27u+08LMBYMqmQfwwMofYoMh/48NGkMMRfC4ynpfwRbJuu8ErfNloeA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@tabler/icons": { + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.31.0.tgz", + "integrity": "sha512-dblAdeKY3+GA1U+Q9eziZ0ooVlZMHsE8dqP0RkwvRtEsAULoKOYaCUOcJ4oW1DjWegdxk++UAt2SlQVnmeHv+g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/codecalm" + } + }, + "node_modules/@tabler/icons-react": { + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/@tabler/icons-react/-/icons-react-3.31.0.tgz", + "integrity": "sha512-2rrCM5y/VnaVKnORpDdAua9SEGuJKVqPtWxeQ/vUVsgaUx30LDgBZph7/lterXxDY1IKR6NO//HDhWiifXTi3w==", + "license": "MIT", + "dependencies": { + "@tabler/icons": "3.31.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/codecalm" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/pluginutils/node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "license": "MIT" - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.5.tgz", - "integrity": "sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==", - "license": "MIT" - }, - "node_modules/@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@surma/rollup-plugin-off-main-thread": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", - "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", - "dependencies": { - "ejs": "^3.1.6", - "json5": "^2.2.0", - "magic-string": "^0.25.0", - "string.prototype.matchall": "^4.0.6" - } - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", - "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", - "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", - "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", - "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", - "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", - "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-preset": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", - "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/core": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", - "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", - "dependencies": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", - "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", - "dependencies": { - "@babel/types": "^7.12.6" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", - "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", - "dependencies": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-svgo": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", - "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", - "dependencies": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/webpack": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", - "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "react": ">= 16" } }, "node_modules/@tanstack/match-sorter-utils": { @@ -4080,615 +2088,76 @@ "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "license": "MIT" - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", - "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", - "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, "node_modules/@types/cookie": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", "license": "MIT" }, - "node_modules/@types/eslint": { - "version": "8.56.12", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.12.tgz", - "integrity": "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" - }, - "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", - "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dependencies": { - "@types/node": "*" - } + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/hoist-non-react-statics": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz", "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==", + "license": "MIT", "dependencies": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" } }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.16", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.16.tgz", - "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, "license": "MIT" }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" - }, - "node_modules/@types/node": { - "version": "22.13.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.4.tgz", - "integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/parse-json": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" - }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" }, "node_modules/@types/prop-types": { "version": "15.7.14", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", - "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==" - }, - "node_modules/@types/q": { - "version": "1.5.8", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", - "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==" - }, - "node_modules/@types/qs": { - "version": "6.9.18", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", - "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "license": "MIT" }, "node_modules/@types/react": { "version": "19.0.10", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz", "integrity": "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==", + "license": "MIT", "dependencies": { "csstype": "^3.0.2" } }, + "node_modules/@types/react-dom": { + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz", + "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, "node_modules/@types/react-transition-group": { "version": "4.4.12", "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "license": "MIT", "peerDependencies": { "@types/react": "*" } }, - "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" - }, - "node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "license": "MIT" - }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", - "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", - "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" - }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" - }, - "node_modules/@types/ws": { - "version": "8.5.14", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.14.tgz", - "integrity": "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "16.0.9", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", - "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", - "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "license": "ISC" - }, "node_modules/@videojs/http-streaming": { "version": "3.17.0", "resolved": "https://registry.npmjs.org/@videojs/http-streaming/-/http-streaming-3.17.0.tgz", @@ -4737,135 +2206,17 @@ "is-function": "^1.0.1" } }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.8.0.tgz", + "integrity": "sha512-T4sHPvS+DIqDP51ifPqa9XIRAz/kIvIi8oXcnOZZgHmMotgmmdxe/DD5tMFlt5nuIRzT0/QuiwmKlH0503Aapw==", + "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" + "@swc/core": "^1.10.15" + }, + "peerDependencies": { + "vite": "^4 || ^5 || ^6" } }, "node_modules/@xmldom/xmldom": { @@ -4877,66 +2228,12 @@ "node": ">=10.0.0" } }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "deprecated": "Use your platform's native atob() and btoa() methods instead" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -4948,39 +2245,12 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, "node_modules/aes-decrypter": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/aes-decrypter/-/aes-decrypter-4.0.2.tgz", @@ -4993,21 +2263,12 @@ "pkcs7": "^1.0.4" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -5019,122 +2280,43 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/amp": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz", - "integrity": "sha512-OwIuC4yZaRogHKiuU5WlMR5Xk/jAcpPtawWL05Gj8Lvm2F6mwoJt4O/bHI+DHwG79vWd+8OFYM4/BzYqyRd3qw==", - "license": "MIT" - }, - "node_modules/amp-message": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz", - "integrity": "sha512-JqutcFwoU1+jhv7ArgW38bqrE+LQdcRv4NxNw0mp0JHQyB6tXesWRjtYKlDgHRY2o3JE5UTaBGUK8kSWUdxWUg==", + "node_modules/allotment": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/allotment/-/allotment-1.20.3.tgz", + "integrity": "sha512-JCnklt7j0OsyDjD7A9AdT6wqJ3FSoo1ASV6w02Am02lo6NwO25yhG1DcWW8ueBV38ppXQmvrXBXuzX7iVkq6Tw==", "license": "MIT", "dependencies": { - "amp": "0.3.1" + "classnames": "^2.3.0", + "eventemitter3": "^5.0.0", + "lodash.clamp": "^4.0.0", + "lodash.debounce": "^4.0.0", + "lodash.isequal": "^4.5.0", + "use-resize-observer": "^9.0.0" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "node_modules/allotment/node_modules/use-resize-observer": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-9.1.0.tgz", + "integrity": "sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==", "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dependencies": { - "type-fest": "^0.21.3" + "@juggle/resize-observer": "^3.3.1" }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.9.tgz", - "integrity": "sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==", - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" + "peerDependencies": { + "react": "16.8.0 - 18", + "react-dom": "16.8.0 - 18" } }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -5145,455 +2327,35 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/aria-query": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.reduce": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz", - "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-array-method-boxes-properly": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "license": "MIT" - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==" - }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "engines": { - "node": ">= 0.4" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axe-core": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", - "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", - "license": "MPL-2.0", - "engines": { - "node": ">=4" - } + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" }, "node_modules/axios": { - "version": "1.7.9", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", - "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.2.tgz", + "integrity": "sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } }, - "node_modules/axios/node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-loader": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz", - "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.4", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, "node_modules/babel-plugin-macros": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.5", "cosmiconfig": "^7.0.0", @@ -5604,391 +2366,29 @@ "npm": ">=6" } }, - "node_modules/babel-plugin-named-asset-import": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", - "peerDependencies": { - "@babel/core": "^7.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", - "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", - "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3", - "core-js-compat": "^3.40.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", - "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", - "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", - "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-react-app": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.1.0.tgz", - "integrity": "sha512-f9B1xMdnkCIqe+2dHrJsoQFRz7reChaAHE/65SdaykPklQqhme2WaC08oD3is77x9ff98/9EazAKFDZv5rFEQg==", - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-decorators": "^7.16.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-transform-flow-strip-types": "^7.16.0", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", - "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/basic-ftp": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", - "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" - }, - "node_modules/bfj": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", - "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", - "dependencies": { - "bluebird": "^3.7.2", - "check-types": "^11.2.3", - "hoopy": "^0.1.4", - "jsonpath": "^1.1.1", - "tryer": "^1.0.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/blessed": { - "version": "0.1.81", - "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz", - "integrity": "sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ==", - "license": "MIT", - "bin": { - "blessed": "bin/tput.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/bodec": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz", - "integrity": "sha512-Ylo+MAo5BDUq1KA3f3R/MFhh+g8cnHmo8bz3YPGhI1znrMaf77ol1sfvYJzsw3nTE+Y2GryfDxBaR+AqpAkEHQ==", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, "license": "MIT" }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/bonjour-service": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", - "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" - }, - "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" @@ -5997,99 +2397,21 @@ "node": ">= 0.4" } }, - "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001700", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz", - "integrity": "sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", - "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", - "engines": { - "node": ">=4" - } - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6101,243 +2423,27 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/charm": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", - "integrity": "sha512-syedaZ9cPe7r3hoQA9twWYKu5AIyCswN5+szkmPBe9ccdLrj4bYaCnLVPTLd2kgVRc7+zoX4tyPgRnFKCj5YjQ==", - "license": "MIT/X11" - }, - "node_modules/check-types": { - "version": "11.2.3", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", - "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==" - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", - "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==" - }, - "node_modules/clean-css": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", - "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-tableau": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cli-tableau/-/cli-tableau-2.0.1.tgz", - "integrity": "sha512-he+WTicka9cl0Fg/y+YyxcN6/bfQ/1O3QmgxRXDhABKqLzvoOSM4fMzp39uMyLBulAFuywD2N7UaoQE7WaADxQ==", - "dependencies": { - "chalk": "3.0.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/cli-tableau/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" }, "node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dependencies": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/coa/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/coa/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/coa/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/coa/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/coa/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/coa/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/coa/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -6348,22 +2454,15 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -6371,165 +2470,33 @@ "node": ">= 0.8" } }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", - "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", - "dependencies": { - "bytes": "3.1.2", - "compressible": "~2.0.18", - "debug": "2.6.9", - "negotiator": "~0.6.4", - "on-headers": "~1.0.2", - "safe-buffer": "5.2.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, "license": "MIT" }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" }, "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=18" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/core-js": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.40.0.tgz", - "integrity": "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", - "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", - "dependencies": { - "browserslist": "^4.24.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-pure": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.40.0.tgz", - "integrity": "sha512-AtDzVIgRrmRKQai62yuSIN5vNiQjcJakJb4fbhVw3ehxx7Lohphvw9SGNWKhLFqSxC4ilD0g/L1huAYFQU3Q6A==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, "node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -6541,16 +2508,21 @@ "node": ">=10" } }, - "node_modules/croner": { - "version": "4.1.97", - "resolved": "https://registry.npmjs.org/croner/-/croner-4.1.97.tgz", - "integrity": "sha512-/f6gpQuxDaqXu+1kwQYSckUglPaOrHdbIlBAu0YuW8/Cdb45XwXYNUBXg3r/9Mo6n540Kn/smKcZWko5x99KrQ==", - "license": "MIT" + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -6560,462 +2532,12 @@ "node": ">= 8" } }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/css-blank-pseudo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", - "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-blank-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", - "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-has-pseudo": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", - "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-has-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-loader": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", - "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", - "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", - "dependencies": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", - "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "bin": { - "css-prefers-color-scheme": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" - }, - "node_modules/css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "dependencies": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssdb": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz", - "integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - } - ] - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "5.1.15", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", - "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", - "dependencies": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "5.2.14", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", - "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "node_modules/csso/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "node_modules/culvert": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz", - "integrity": "sha512-yi1x3EAWKjQTreYWeSd98431AV+IEE0qoDyOoaHJ7KJ21gv6HtBXHVLX74opVSGqcR8/AbjJBHAHpcOy2bj5Gg==", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "license": "MIT" }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "license": "BSD-2-Clause" - }, - "node_modules/data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, "node_modules/dayjs": { "version": "1.11.13", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", @@ -7026,6 +2548,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -7038,220 +2561,36 @@ } } }, - "node_modules/decimal.js": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", - "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==" - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" }, "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", + "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "license": "MIT", - "dependencies": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, - "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dependencies": { - "utila": "~0.4" - } + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" }, "node_modules/dom-helpers": { "version": "5.2.1", @@ -7263,108 +2602,16 @@ "csstype": "^3.0.2" } }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, "node_modules/dom-walk": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "deprecated": "Use your platform's native DOMException instead", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "engines": { - "node": ">=10" - } - }, - "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" - }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", @@ -7374,193 +2621,20 @@ "node": ">= 0.4" } }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.5.102", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.102.tgz", - "integrity": "sha512-eHhqaja8tE/FNpIiBrvBjFV/SSKpyWHLvxuR9dPTdo+3V9ppdLmFB7ZZQ98qNovcngPLYIz0oOBF9P0FfZef5Q==" - }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.18.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", - "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "license": "MIT", - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, - "node_modules/error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", - "dependencies": { - "stackframe": "^1.3.4" - } - }, - "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-regex": "^1.2.1", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" - }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -7569,46 +2643,16 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-iterator-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", - "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.6", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.4", - "safe-array-concat": "^1.1.3" - }, "engines": { "node": ">= 0.4" } }, - "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==" - }, "node_modules/es-object-atoms": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0" }, @@ -7620,6 +2664,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", @@ -7630,57 +2675,58 @@ "node": ">= 0.4" } }, - "node_modules/es-shim-unscopables": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", - "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", "license": "MIT" }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "node_modules/esbuild": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", + "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, "engines": { - "node": ">=6" + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.1", + "@esbuild/android-arm": "0.25.1", + "@esbuild/android-arm64": "0.25.1", + "@esbuild/android-x64": "0.25.1", + "@esbuild/darwin-arm64": "0.25.1", + "@esbuild/darwin-x64": "0.25.1", + "@esbuild/freebsd-arm64": "0.25.1", + "@esbuild/freebsd-x64": "0.25.1", + "@esbuild/linux-arm": "0.25.1", + "@esbuild/linux-arm64": "0.25.1", + "@esbuild/linux-ia32": "0.25.1", + "@esbuild/linux-loong64": "0.25.1", + "@esbuild/linux-mips64el": "0.25.1", + "@esbuild/linux-ppc64": "0.25.1", + "@esbuild/linux-riscv64": "0.25.1", + "@esbuild/linux-s390x": "0.25.1", + "@esbuild/linux-x64": "0.25.1", + "@esbuild/netbsd-arm64": "0.25.1", + "@esbuild/netbsd-x64": "0.25.1", + "@esbuild/openbsd-arm64": "0.25.1", + "@esbuild/openbsd-x64": "0.25.1", + "@esbuild/sunos-x64": "0.25.1", + "@esbuild/win32-arm64": "0.25.1", + "@esbuild/win32-ia32": "0.25.1", + "@esbuild/win32-x64": "0.25.1" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -7688,612 +2734,144 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.22.0.tgz", + "integrity": "sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==", + "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.2", + "@eslint/config-helpers": "^0.1.0", + "@eslint/core": "^0.12.0", + "@eslint/eslintrc": "^3.3.0", + "@eslint/js": "9.22.0", + "@eslint/plugin-kit": "^0.2.7", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.3.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-react-app": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", - "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "babel-preset-react-app": "^10.0.1", - "confusing-browser-globals": "^1.0.11", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1" - }, - "engines": { - "node": ">=14.0.0" + "url": "https://eslint.org/donate" }, "peerDependencies": { - "eslint": "^8.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" + "jiti": "*" }, "peerDependenciesMeta": { - "eslint": { + "jiti": { "optional": true } } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "license": "BSD-3-Clause", - "dependencies": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@babel/plugin-syntax-flow": "^7.14.5", - "@babel/plugin-transform-react-jsx": "^7.14.9", - "eslint": "^8.1.0" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", - "license": "MIT", - "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", - "hasown": "^2.0.2", - "is-core-module": "^2.15.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.0", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-jest": { - "version": "25.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", - "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/experimental-utils": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", - "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", - "license": "MIT", - "dependencies": { - "aria-query": "^5.3.2", - "array-includes": "^3.1.8", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "^4.10.0", - "axobject-query": "^4.1.0", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "hasown": "^2.0.2", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "safe-regex-test": "^1.0.3", - "string.prototype.includes": "^2.0.1" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.37.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", - "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.8", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" - } - }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" }, "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.19.tgz", + "integrity": "sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==", + "dev": true, "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-testing-library": { - "version": "5.11.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz", - "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "^5.58.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0", - "npm": ">=6" - }, "peerDependencies": { - "eslint": "^7.5.0 || ^8.0.0" + "eslint": ">=8.40" } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", - "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", - "license": "MIT", - "dependencies": { - "@types/eslint": "^7.29.0 || ^8.4.1", - "jest-worker": "^28.0.2", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/esquery": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -8305,6 +2883,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -8316,431 +2896,104 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, - "node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" - }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter2": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", - "integrity": "sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg==", - "license": "MIT" - }, "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/extrareqp2": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/extrareqp2/-/extrareqp2-1.0.0.tgz", - "integrity": "sha512-Gum0g1QYb6wpPJCVypWP3bbIuaibcFiJcpuPM10YSXp/tzqi84x9PJageob+eN4xVRIOto4wjSGNLyMD54D2xA==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.14.0" - } + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-patch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.1.tgz", - "integrity": "sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, "license": "MIT" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" - }, - "node_modules/fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ] - }, - "node_modules/fastq": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", - "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fclone": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz", - "integrity": "sha512-GDqVQezKzRABdeqflsgMr7ktzgF9CyS+p2oe0jJqUY6izSSbhPIQJDpoU4PtGcD7VPM9xh/dVrTu6z1nwgmEGw==", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, "license": "MIT" }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "node": ">=16.0.0" } }, "node_modules/find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "license": "MIT" }, "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, "license": "ISC" }, "node_modules/follow-redirects": { @@ -8753,6 +3006,7 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -8762,147 +3016,16 @@ } } }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", - "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "engines": { - "node": ">=6" - } - }, "node_modules/form-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.3.tgz", - "integrity": "sha512-q5YBMeWy6E2Un0nMGWMgI65MAKtaylxfNJGJxpGh45YDciZB4epbWpaAfImil6CPAPTYB4sh0URQNDRIZG5F2w==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.35" + "mime-types": "^2.1.12" }, "engines": { "node": ">= 6" @@ -8918,6 +3041,7 @@ "url": "https://opencollective.com/formik" } ], + "license": "Apache-2.0", "dependencies": { "@types/hoist-non-react-statics": "^3.3.1", "deepmerge": "^2.1.1", @@ -8932,70 +3056,13 @@ "react": ">=16.8.0" } }, - "node_modules/formik/node_modules/deepmerge": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", - "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -9008,64 +3075,23 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, "node_modules/get-intrinsic": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", - "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", + "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "get-proto": "^1.0.0", + "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", @@ -9078,23 +3104,20 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=6" } }, "node_modules/get-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" @@ -9103,83 +3126,12 @@ "node": ">= 0.4" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-uri": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", - "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", - "license": "MIT", - "dependencies": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/git-node-fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/git-node-fs/-/git-node-fs-1.0.0.tgz", - "integrity": "sha512-bLQypt14llVXBg0S0u8q8HmU7g9p3ysH+NvVlae5vILuUvs759665HvmR5+wb04KjHyjFcDRxdYb4kyNnluMUQ==", - "license": "MIT" - }, - "node_modules/git-sha1": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz", - "integrity": "sha512-2e/nZezdVlyCopOCYHeW0onkbZg7xP1Ad6pndPy1rCygeRykefUS6r7oA5cJRGEFvseiaz5a/qUHFVX1dd6Isg==", - "license": "MIT" - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -9187,11 +3139,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, "node_modules/global": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", @@ -9202,78 +3149,14 @@ "process": "^0.11.10" } }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9283,51 +3166,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" - }, - "node_modules/harmony-reflect": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", - "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" - }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -9339,39 +3178,17 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -9383,6 +3200,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" }, @@ -9397,6 +3215,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -9404,14 +3223,6 @@ "node": ">= 0.4" } }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } - }, "node_modules/highlight-words": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/highlight-words/-/highlight-words-2.0.0.tgz", @@ -9432,6 +3243,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", "dependencies": { "react-is": "^16.7.0" } @@ -9439,312 +3251,24 @@ "node_modules/hoist-non-react-statics/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", - "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-entities": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ] - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", - "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.20.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz", - "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", - "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/idb": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", - "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" - }, - "node_modules/identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", - "dependencies": { - "harmony-reflect": "^1.4.6" - }, - "engines": { - "node": ">=4" - } + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, - "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, "node_modules/import-fresh": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -9756,194 +3280,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", - "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "license": "MIT", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/ip-address/node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "license": "BSD-3-Clause" - }, - "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" }, "node_modules/is-core-module": { "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", "dependencies": { "hasown": "^2.0.2" }, @@ -9954,116 +3311,28 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, "node_modules/is-function": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", "license": "MIT" }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-generator-function": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", - "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", - "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -10071,1334 +3340,37 @@ "node": ">=0.10.0" } }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/iterator.prototype": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", - "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "get-proto": "^1.0.0", - "has-symbols": "^1.1.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jake": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", - "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "dependencies": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", - "dependencies": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "dependencies": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watch-typeahead": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", - "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", - "dependencies": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^28.0.0", - "jest-watcher": "^28.0.0", - "slash": "^4.0.0", - "string-length": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "jest": "^27.0.0 || ^28.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", - "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "dependencies": { - "@jest/schemas": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", - "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", - "dependencies": { - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.3", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" - }, - "node_modules/jest-watch-typeahead/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watch-typeahead/node_modules/string-length": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", - "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", - "dependencies": { - "char-regex": "^2.0.0", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.2.tgz", - "integrity": "sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg==", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", - "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-git": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/js-git/-/js-git-0.7.8.tgz", - "integrity": "sha512-+E5ZH/HeRnoc/LW0AmAyhU+mNcWBzAKE+30+IDMLSLbbK+Tdt02AdkOKq9u15rlJsDEGFqtgckc8ZM59LhhiUA==", - "license": "MIT", - "dependencies": { - "bodec": "^0.1.0", - "culvert": "^0.1.2", - "git-sha1": "^0.1.2", - "pako": "^0.2.5" - } + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "license": "MIT" - }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -11410,183 +3382,45 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "license": "ISC", - "optional": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonpath": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz", - "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", - "dependencies": { - "esprima": "1.2.2", - "static-eval": "2.0.2", - "underscore": "1.12.1" - } - }, - "node_modules/jsonpath/node_modules/esprima": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", - "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/language-subtag-registry": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", - "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", - "license": "CC0-1.0" - }, - "node_modules/language-tags": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", - "license": "MIT", - "dependencies": { - "language-subtag-registry": "^0.3.20" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/launch-editor": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz", - "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==", - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" - } - }, - "node_modules/lazy": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", - "integrity": "sha512-Y+CjUfLmIpoUCCRl0ub4smrYtGGr5AOa2AKOaWelGHOGz33X/Y/KizefGqbkwfz44+cnq/+9habclf8vOmu2LA==", - "license": "MIT", - "engines": { - "node": ">=0.2.0" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "engines": { - "node": ">=6" - } - }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -11595,90 +3429,71 @@ "node": ">= 0.8.0" } }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "engines": { - "node": ">=10" - } - }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" }, "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" }, "node_modules/lodash-es": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, + "node_modules/lodash.clamp": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/lodash.clamp/-/lodash.clamp-4.0.3.tgz", + "integrity": "sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg==", + "license": "MIT" }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -11686,22 +3501,6 @@ "loose-envify": "cli.js" } }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, "node_modules/lucide-react": { "version": "0.479.0", "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.479.0.tgz", @@ -11722,48 +3521,58 @@ "global": "^4.4.0" } }, - "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "node_modules/mantine-react-table": { + "version": "2.0.0-beta.9", + "resolved": "https://registry.npmjs.org/mantine-react-table/-/mantine-react-table-2.0.0-beta.9.tgz", + "integrity": "sha512-ZdfcwebWaPERoDvAuk43VYcBCzamohARVclnbuepT0PHZ0wRcDPMBR+zgaocL+pFy8EXUGwvWTOKNh25ITpjNQ==", + "license": "MIT", "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" + "@tanstack/match-sorter-utils": "8.19.4", + "@tanstack/react-table": "8.20.5", + "@tanstack/react-virtual": "3.11.2" }, "engines": { - "node": ">=8" + "node": ">=16" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/kevinvandy" + }, + "peerDependencies": { + "@mantine/core": "^7.9", + "@mantine/dates": "^7.9", + "@mantine/hooks": "^7.9", + "@tabler/icons-react": ">=2.23.0", + "clsx": ">=2", + "dayjs": ">=1.11", + "react": ">=18.0", + "react-dom": ">=18.0" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "node_modules/mantine-react-table/node_modules/@tanstack/react-table": { + "version": "8.20.5", + "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.20.5.tgz", + "integrity": "sha512-WEHopKw3znbUZ61s9i0+i9g8drmDo6asTWbrQh8Us63DAk/M0FkmIqERew6P71HI75ksZ2Pxyuf4vvKh9rAkiA==", + "license": "MIT", "dependencies": { - "tmpl": "1.0.5" + "@tanstack/table-core": "8.20.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" } }, "node_modules/material-react-table": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/material-react-table/-/material-react-table-3.2.0.tgz", - "integrity": "sha512-q2xWG1CQ30ji+aCLKX1XrIg3zrfHT/zZ4aR49Vk/oP4+ospCgjlIVcWLapjrPoqAIDNgB9/fRRG7d1se1Z3nUg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/material-react-table/-/material-react-table-3.2.1.tgz", + "integrity": "sha512-sQtTf7bETpkPN2Hm5BVtz89wrfXCVQguz6XlwMChSnfKFO5QCKAJJC5aSIKnUc3S0AvTz/k/ILi00FnnY1Gixw==", "license": "MIT", "dependencies": { "@tanstack/match-sorter-utils": "8.19.4", @@ -11792,96 +3601,16 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, - "node_modules/mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/memoize-one": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", - "license": "MIT" - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -11890,6 +3619,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -11897,14 +3627,6 @@ "node": ">= 0.6" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, "node_modules/min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", @@ -11913,34 +3635,12 @@ "dom-walk": "^0.1.0" } }, - "node_modules/mini-css-extract-plugin": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", - "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", - "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -11948,39 +3648,6 @@ "node": "*" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==", - "license": "MIT" - }, "node_modules/mpd-parser": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/mpd-parser/-/mpd-parser-1.3.1.tgz", @@ -12009,25 +3676,8 @@ "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "license": "ISC" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/mux.js": { "version": "7.1.0", @@ -12046,26 +3696,18 @@ "npm": ">=5" } }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz", + "integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==", + "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -12076,377 +3718,25 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, "license": "MIT" }, - "node_modules/needle": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", - "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", - "license": "MIT", - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/needle/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nssocket": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz", - "integrity": "sha512-a9GSOIql5IqgWJR3F/JXG4KpJTA3Z53Cj0MeMvGpglytB1nxE4PdFNC0jINe27CS7cGivoynwc054EzCcT3M3w==", - "license": "MIT", - "dependencies": { - "eventemitter2": "~0.4.14", - "lazy": "~1.0.11" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/nssocket/node_modules/eventemitter2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==", - "license": "MIT" - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/nwsapi": { - "version": "2.2.16", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", - "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==" - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", - "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", - "dependencies": { - "array.prototype.reduce": "^1.0.6", - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "gopd": "^1.0.1", - "safe-array-concat": "^1.1.2" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", - "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -12459,158 +3749,43 @@ "node": ">= 0.8.0" } }, - "node_modules/own-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pac-proxy-agent": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", - "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, "license": "MIT", "dependencies": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.6", - "pac-resolver": "^7.0.1", - "socks-proxy-agent": "^8.0.5" + "p-limit": "^3.0.2" }, "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-proxy-agent/node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-proxy-agent/node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" + "node": ">=10" }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-resolver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", - "license": "MIT", - "dependencies": { - "degenerator": "^5.0.0", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" - }, - "node_modules/pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", - "license": "MIT" - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -12622,6 +3797,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -12635,48 +3811,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -12684,89 +3834,23 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidusage": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-3.0.2.tgz", - "integrity": "sha512-g0VU+y08pKw5M8EZ2rIGiEBaB8wrQMjYGFfW2QVIfyT8V+fq8YFLkvlz4bz5ljvFDJYNFCWT3PWqcRr2FKO81w==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "engines": { - "node": ">= 6" - } + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/pkcs7": { "version": "1.0.4", @@ -12780,284 +3864,11 @@ "pkcs7": "bin/cli.js" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/planby": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/planby/-/planby-1.1.7.tgz", - "integrity": "sha512-Z/hZqMYTQ+uYbuEuvHVkUtzGw0A51mobb/zO4S9gy4TuUjiY848jXpceC8InsbNRicRhIcark1+XlM1HdVoxhg==", - "license": "Custom License", - "dependencies": { - "@emotion/react": "^11.9.0", - "@emotion/styled": "^11.8.1", - "date-fns": "^2.28.0", - "use-debounce": "^7.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/planby" - }, - "peerDependencies": { - "react": ">=16" - } - }, - "node_modules/pm2": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/pm2/-/pm2-5.4.3.tgz", - "integrity": "sha512-4/I1htIHzZk1Y67UgOCo4F1cJtas1kSds31N8zN0PybO230id1nigyjGuGFzUnGmUFPmrJ0On22fO1ChFlp7VQ==", - "license": "AGPL-3.0", - "dependencies": { - "@pm2/agent": "~2.0.0", - "@pm2/io": "~6.0.1", - "@pm2/js-api": "~0.8.0", - "@pm2/pm2-version-check": "latest", - "async": "~3.2.0", - "blessed": "0.1.81", - "chalk": "3.0.0", - "chokidar": "^3.5.3", - "cli-tableau": "^2.0.0", - "commander": "2.15.1", - "croner": "~4.1.92", - "dayjs": "~1.11.5", - "debug": "^4.3.1", - "enquirer": "2.3.6", - "eventemitter2": "5.0.1", - "fclone": "1.0.11", - "js-yaml": "~4.1.0", - "mkdirp": "1.0.4", - "needle": "2.4.0", - "pidusage": "~3.0", - "pm2-axon": "~4.0.1", - "pm2-axon-rpc": "~0.7.1", - "pm2-deploy": "~1.0.2", - "pm2-multimeter": "^0.1.2", - "promptly": "^2", - "semver": "^7.2", - "source-map-support": "0.5.21", - "sprintf-js": "1.1.2", - "vizion": "~2.2.1" - }, - "bin": { - "pm2": "bin/pm2", - "pm2-dev": "bin/pm2-dev", - "pm2-docker": "bin/pm2-docker", - "pm2-runtime": "bin/pm2-runtime" - }, - "engines": { - "node": ">=12.0.0" - }, - "optionalDependencies": { - "pm2-sysmonit": "^1.2.8" - } - }, - "node_modules/pm2-axon": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.1.tgz", - "integrity": "sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==", - "license": "MIT", - "dependencies": { - "amp": "~0.3.1", - "amp-message": "~0.1.1", - "debug": "^4.3.1", - "escape-string-regexp": "^4.0.0" - }, - "engines": { - "node": ">=5" - } - }, - "node_modules/pm2-axon-rpc": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz", - "integrity": "sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==", - "license": "MIT", - "dependencies": { - "debug": "^4.3.1" - }, - "engines": { - "node": ">=5" - } - }, - "node_modules/pm2-deploy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-1.0.2.tgz", - "integrity": "sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg==", - "license": "MIT", - "dependencies": { - "run-series": "^1.1.8", - "tv4": "^1.3.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pm2-multimeter": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz", - "integrity": "sha512-S+wT6XfyKfd7SJIBqRgOctGxaBzUOmVQzTAS+cg04TsEUObJVreha7lvCfX8zzGVr871XwCSnHUU7DQQ5xEsfA==", - "license": "MIT/X11", - "dependencies": { - "charm": "~0.1.1" - } - }, - "node_modules/pm2-sysmonit": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/pm2-sysmonit/-/pm2-sysmonit-1.2.8.tgz", - "integrity": "sha512-ACOhlONEXdCTVwKieBIQLSi2tQZ8eKinhcr9JpZSUAL8Qy0ajIgRtsLxG/lwPOW3JEKqPyw/UaHmTWhUzpP4kA==", - "license": "Apache", - "optional": true, - "dependencies": { - "async": "^3.2.0", - "debug": "^4.3.1", - "pidusage": "^2.0.21", - "systeminformation": "^5.7", - "tx2": "~1.0.4" - } - }, - "node_modules/pm2-sysmonit/node_modules/pidusage": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.21.tgz", - "integrity": "sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==", - "license": "MIT", - "optional": true, - "dependencies": { - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pm2/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/pm2/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pm2/node_modules/commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "license": "MIT" - }, - "node_modules/pm2/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/pm2/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pm2/node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "license": "BSD-3-Clause" - }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/postcss": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, "funding": [ { "type": "opencollective", @@ -13072,6 +3883,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", @@ -13081,1220 +3893,20 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", - "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-browser-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", - "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "browserslist": ">=4", - "postcss": ">=8" - } - }, - "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-clamp": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", - "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=7.6.0" - }, - "peerDependencies": { - "postcss": "^8.4.6" - } - }, - "node_modules/postcss-color-functional-notation": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", - "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-color-hex-alpha": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", - "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-rebeccapurple": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", - "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-colormin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", - "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-custom-media": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", - "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/postcss-custom-properties": { - "version": "12.1.11", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", - "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-custom-selectors": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", - "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/postcss-dir-pseudo-class": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", - "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-double-position-gradients": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", - "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-env-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", - "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-flexbugs-fixes": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", - "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", - "peerDependencies": { - "postcss": "^8.1.4" - } - }, - "node_modules/postcss-focus-visible": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", - "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-within": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", - "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-gap-properties": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", - "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-image-set-function": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", - "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-initial": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", - "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-lab-function": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", - "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/postcss-load-config/node_modules/yaml": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", - "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-logical": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", - "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-media-minmax": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", - "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", - "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", - "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-nesting": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", - "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", - "dependencies": { - "@csstools/selector-specificity": "^2.0.0", - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-normalize": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", - "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", - "dependencies": { - "@csstools/normalize.css": "*", - "postcss-browser-comments": "^4", - "sanitize.css": "*" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "browserslist": ">= 4", - "postcss": ">= 8" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-opacity-percentage": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", - "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", - "funding": [ - { - "type": "kofi", - "url": "https://ko-fi.com/mrcgrtz" - }, - { - "type": "liberapay", - "url": "https://liberapay.com/mrcgrtz" - } - ], - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-overflow-shorthand": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", - "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "peerDependencies": { - "postcss": "^8" - } - }, - "node_modules/postcss-place": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", - "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-preset-env": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", - "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", - "dependencies": { - "@csstools/postcss-cascade-layers": "^1.1.1", - "@csstools/postcss-color-function": "^1.1.1", - "@csstools/postcss-font-format-keywords": "^1.0.1", - "@csstools/postcss-hwb-function": "^1.0.2", - "@csstools/postcss-ic-unit": "^1.0.1", - "@csstools/postcss-is-pseudo-class": "^2.0.7", - "@csstools/postcss-nested-calc": "^1.0.0", - "@csstools/postcss-normalize-display-values": "^1.0.1", - "@csstools/postcss-oklab-function": "^1.1.1", - "@csstools/postcss-progressive-custom-properties": "^1.3.0", - "@csstools/postcss-stepped-value-functions": "^1.0.1", - "@csstools/postcss-text-decoration-shorthand": "^1.0.0", - "@csstools/postcss-trigonometric-functions": "^1.0.2", - "@csstools/postcss-unset-value": "^1.0.2", - "autoprefixer": "^10.4.13", - "browserslist": "^4.21.4", - "css-blank-pseudo": "^3.0.3", - "css-has-pseudo": "^3.0.4", - "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^7.1.0", - "postcss-attribute-case-insensitive": "^5.0.2", - "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^4.2.4", - "postcss-color-hex-alpha": "^8.0.4", - "postcss-color-rebeccapurple": "^7.1.1", - "postcss-custom-media": "^8.0.2", - "postcss-custom-properties": "^12.1.10", - "postcss-custom-selectors": "^6.0.3", - "postcss-dir-pseudo-class": "^6.0.5", - "postcss-double-position-gradients": "^3.1.2", - "postcss-env-function": "^4.0.6", - "postcss-focus-visible": "^6.0.4", - "postcss-focus-within": "^5.0.4", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.5", - "postcss-image-set-function": "^4.0.7", - "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.2.1", - "postcss-logical": "^5.0.4", - "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.2.0", - "postcss-opacity-percentage": "^1.1.2", - "postcss-overflow-shorthand": "^3.0.4", - "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.5", - "postcss-pseudo-class-any-link": "^7.1.6", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", - "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", - "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "peerDependencies": { - "postcss": "^8.0.3" - } - }, - "node_modules/postcss-selector-not": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", - "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/postcss-svgo/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/postcss-svgo/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "node_modules/postcss-svgo/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-svgo/node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz", - "integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" @@ -14306,50 +3918,6 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -14359,44 +3927,11 @@ "node": ">= 0.6.0" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", - "dependencies": { - "asap": "~2.0.6" - } - }, - "node_modules/promptly": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz", - "integrity": "sha512-aC9j+BZsRSSzEsXBNBwDnAxujdx19HycZoKgRgzWnS8eOHg1asuf9heuLprfbe739zY3IdUQx+Egv6Jn135WHA==", - "license": "MIT", - "dependencies": { - "read": "^1.0.4" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -14406,360 +3941,50 @@ "node_modules/prop-types/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" }, "node_modules/property-expr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", - "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-agent": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.1.tgz", - "integrity": "sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.2", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.0.1", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", - "engines": { - "node": ">=12" - } + "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", + "license": "MIT" }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/psl": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", - "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", - "dependencies": { - "punycode": "^2.3.1" - }, - "funding": { - "url": "https://github.com/sponsors/lupomontero" - } + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/react-app-polyfill": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", - "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", - "dependencies": { - "core-js": "^3.19.2", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.9", - "whatwg-fetch": "^3.6.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-app-polyfill/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, - "node_modules/react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", - "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/react-dev-utils/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.25.0" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^19.0.0" } }, "node_modules/react-draggable": { @@ -14776,33 +4001,104 @@ "react-dom": ">= 16.3.0" } }, - "node_modules/react-error-overlay": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.1.0.tgz", - "integrity": "sha512-SN/U6Ytxf1QGkw/9ve5Y+NxBbZM6Ht95tuXNMKs8EJyFa/Vy/+Co3stop3KBHARfn/giv+Lj1uUnTfOJ3moFEQ==" + "node_modules/react-draggable/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", + "engines": { + "node": ">=6" + } }, "node_modules/react-fast-compare": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", - "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" + "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==", + "license": "MIT" }, "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz", + "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==", + "license": "MIT" }, - "node_modules/react-refresh": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", - "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "node_modules/react-number-format": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.4.3.tgz", + "integrity": "sha512-VCY5hFg/soBighAoGcdE+GagkJq0230qN6jcS5sp8wQX1qy1fYN/RX7/BXkrs0oyzzwqR8/+eSUrqXbGeywdUQ==", + "license": "MIT", + "peerDependencies": { + "react": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-pro-sidebar": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/react-pro-sidebar/-/react-pro-sidebar-1.1.0.tgz", + "integrity": "sha512-rdRJ4PeMsqWq9n69AmF6et6qCbhCF1KEBgjAH8vIiLxE1k5fMxtRYo0k4asxW8qpIH6sqahiMxrxVVoObv8orQ==", + "license": "MIT", + "dependencies": { + "@emotion/react": "^11.10.5", + "@emotion/styled": "^11.10.5", + "@popperjs/core": "^2.11.6", + "classnames": "^2.3.2" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", + "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, "node_modules/react-router": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.2.0.tgz", - "integrity": "sha512-fXyqzPgCPZbqhrk7k3hPcCpYIlQ2ugIXDboHUzhJISFVy2DEPsmHgN588MyGmkIOv3jDgNfUE3kJi83L28s/LQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.3.0.tgz", + "integrity": "sha512-466f2W7HIWaNXTKM5nHTqNxLrHTyXybm7R0eBlVSt0k/u55tTCDO194OIx/NrYD4TS5SXKTNekXfT37kMKUjgw==", "license": "MIT", "dependencies": { "@types/cookie": "^0.6.0", @@ -14824,11 +4120,12 @@ } }, "node_modules/react-router-dom": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.2.0.tgz", - "integrity": "sha512-cU7lTxETGtQRQbafJubvZKHEn5izNABxZhBY0Jlzdv0gqQhCPQt2J8aN5ZPjS6mQOXn5NnirWNh+FpE8TTYN0Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.3.0.tgz", + "integrity": "sha512-z7Q5FTiHGgQfEurX/FBinkOXhWREJIAB2RiU24lvcBa82PxUpwqvs/PAXb9lJyPjTs2jrl6UkLvCZVGJPeNuuQ==", + "license": "MIT", "dependencies": { - "react-router": "7.2.0" + "react-router": "7.3.0" }, "engines": { "node": ">=20.0.0" @@ -14838,87 +4135,45 @@ "react-dom": ">=18" } }, - "node_modules/react-router/node_modules/cookie": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", - "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/react-scripts": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", - "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", "dependencies": { - "@babel/core": "^7.16.0", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", - "@svgr/webpack": "^5.5.0", - "babel-jest": "^27.4.2", - "babel-loader": "^8.2.3", - "babel-plugin-named-asset-import": "^0.3.8", - "babel-preset-react-app": "^10.0.1", - "bfj": "^7.0.2", - "browserslist": "^4.18.1", - "camelcase": "^6.2.1", - "case-sensitive-paths-webpack-plugin": "^2.4.0", - "css-loader": "^6.5.1", - "css-minimizer-webpack-plugin": "^3.2.0", - "dotenv": "^10.0.0", - "dotenv-expand": "^5.1.0", - "eslint": "^8.3.0", - "eslint-config-react-app": "^7.0.1", - "eslint-webpack-plugin": "^3.1.1", - "file-loader": "^6.2.0", - "fs-extra": "^10.0.0", - "html-webpack-plugin": "^5.5.0", - "identity-obj-proxy": "^3.0.0", - "jest": "^27.4.3", - "jest-resolve": "^27.4.2", - "jest-watch-typeahead": "^1.0.0", - "mini-css-extract-plugin": "^2.4.5", - "postcss": "^8.4.4", - "postcss-flexbugs-fixes": "^5.0.2", - "postcss-loader": "^6.2.1", - "postcss-normalize": "^10.0.1", - "postcss-preset-env": "^7.0.1", - "prompts": "^2.4.2", - "react-app-polyfill": "^3.0.0", - "react-dev-utils": "^12.0.1", - "react-refresh": "^0.11.0", - "resolve": "^1.20.0", - "resolve-url-loader": "^4.0.0", - "sass-loader": "^12.3.0", - "semver": "^7.3.5", - "source-map-loader": "^3.0.0", - "style-loader": "^3.3.1", - "tailwindcss": "^3.0.2", - "terser-webpack-plugin": "^5.2.5", - "webpack": "^5.64.4", - "webpack-dev-server": "^4.6.0", - "webpack-manifest-plugin": "^4.0.2", - "workbox-webpack-plugin": "^6.4.1" - }, - "bin": { - "react-scripts": "bin/react-scripts.js" + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" }, "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "node": ">=10" }, "peerDependencies": { - "react": ">= 16", - "typescript": "^3.2.1 || ^4" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { - "typescript": { + "@types/react": { "optional": true } } }, + "node_modules/react-textarea-autosize": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.6.tgz", + "integrity": "sha512-aT3ioKXMa8f6zHYGebhbdMD2L00tKeRX1zuVuDx9YQK/JLLRSaSxq3ugECEmUB9z2kvk6bFSIoRHLkkUv0RJiw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.13", + "use-composed-ref": "^1.3.0", + "use-latest": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/react-transition-group": { "version": "4.4.5", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", @@ -14935,202 +4190,11 @@ "react-dom": ">=16.6.0" } }, - "node_modules/react-window": { - "version": "1.8.11", - "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.11.tgz", - "integrity": "sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.0.0", - "memoize-one": ">=3.1.1 <6" - }, - "engines": { - "node": ">8.0.0" - }, - "peerDependencies": { - "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", - "license": "ISC", - "dependencies": { - "mute-stream": "~0.0.4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", - "dependencies": { - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz", - "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", - "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==" - }, - "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", - "dependencies": { - "jsesc": "~3.0.2" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "engines": { - "node": ">= 0.10" - } + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" }, "node_modules/remove-accents": { "version": "0.5.0", @@ -15138,57 +4202,11 @@ "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==", "license": "MIT" }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-in-the-middle": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", - "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, "node_modules/resolve": { "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", @@ -15204,570 +4222,59 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url-loader": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", - "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^7.0.35", - "source-map": "0.6.1" - }, + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", "engines": { - "node": ">=8.9" - }, - "peerDependencies": { - "rework": "1.0.1", - "rework-visit": "1.0.0" - }, - "peerDependenciesMeta": { - "rework": { - "optional": true - }, - "rework-visit": { - "optional": true - } - } - }, - "node_modules/resolve-url-loader/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - }, - "node_modules/resolve-url-loader/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" - }, - "node_modules/resolve-url-loader/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", - "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=4" } }, "node_modules/rollup": { - "version": "2.79.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", - "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.35.0.tgz", + "integrity": "sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0", + "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.35.0", + "@rollup/rollup-android-arm64": "4.35.0", + "@rollup/rollup-darwin-arm64": "4.35.0", + "@rollup/rollup-darwin-x64": "4.35.0", + "@rollup/rollup-freebsd-arm64": "4.35.0", + "@rollup/rollup-freebsd-x64": "4.35.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.35.0", + "@rollup/rollup-linux-arm-musleabihf": "4.35.0", + "@rollup/rollup-linux-arm64-gnu": "4.35.0", + "@rollup/rollup-linux-arm64-musl": "4.35.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.35.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.35.0", + "@rollup/rollup-linux-riscv64-gnu": "4.35.0", + "@rollup/rollup-linux-s390x-gnu": "4.35.0", + "@rollup/rollup-linux-x64-gnu": "4.35.0", + "@rollup/rollup-linux-x64-musl": "4.35.0", + "@rollup/rollup-win32-arm64-msvc": "4.35.0", + "@rollup/rollup-win32-ia32-msvc": "4.35.0", + "@rollup/rollup-win32-x64-msvc": "4.35.0", "fsevents": "~2.3.2" } }, - "node_modules/rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/run-series": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz", - "integrity": "sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-push-apply": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sanitize.css": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", - "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" - }, - "node_modules/sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", - "dependencies": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - } - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/schema-utils": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", - "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" - }, - "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", - "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", + "license": "MIT" }, "node_modules/set-cookie-parser": { "version": "2.7.1", @@ -15775,58 +4282,12 @@ "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", "license": "MIT" }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -15838,628 +4299,37 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/shell-quote": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", - "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", - "license": "BSD-2-Clause" - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/socks": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", - "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", - "license": "MIT", - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/socks-proxy-agent/node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", "engines": { - "node": ">= 8" + "node": ">=0.10.0" } }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/source-map-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", - "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", - "dependencies": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead" - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/stackframe": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" - }, - "node_modules/static-eval": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", - "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", - "dependencies": { - "escodegen": "^1.8.1" - } - }, - "node_modules/static-eval/node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/static-eval/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/static-eval/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-eval/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", - "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", - "license": "MIT" - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string.prototype.includes": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", - "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", - "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "regexp.prototype.flags": "^1.5.3", - "set-function-name": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.repeat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", - "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -16467,115 +4337,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/style-loader": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", - "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, "node_modules/stylis": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sucrase/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sucrase/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -16583,22 +4356,11 @@ "node": ">=8" } }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -16606,534 +4368,34 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" - }, - "node_modules/svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", - "dependencies": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/svgo/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/svgo/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/svgo/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/svgo/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/svgo/node_modules/css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "node_modules/svgo/node_modules/css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "node_modules/svgo/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/svgo/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/svgo/node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/svgo/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" - }, - "node_modules/systeminformation": { - "version": "5.25.11", - "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.25.11.tgz", - "integrity": "sha512-jI01fn/t47rrLTQB0FTlMCC+5dYx8o0RRF+R4BPiUNsvg5OdY0s9DKMFmJGrx5SwMZQ4cag0Gl6v8oycso9b/g==", - "license": "MIT", - "optional": true, - "os": [ - "darwin", - "linux", - "win32", - "freebsd", - "openbsd", - "netbsd", - "sunos", - "android" - ], - "bin": { - "systeminformation": "lib/cli.js" - }, - "engines": { - "node": ">=8.0.0" - }, - "funding": { - "type": "Buy me a coffee", - "url": "https://www.buymeacoffee.com/systeminfo" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.17", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", - "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.6.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.6", - "lilconfig": "^3.1.3", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.47", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2", - "postcss-nested": "^6.2.0", - "postcss-selector-parser": "^6.1.2", - "resolve": "^1.22.8", - "sucrase": "^3.35.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss/node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", - "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", - "dependencies": { - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", - "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.11", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", - "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", - "terser": "^5.31.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/throat": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", - "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==" - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", + "license": "MIT" }, "node_modules/tiny-case": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", - "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" + "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==", + "license": "MIT" }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT" }, "node_modules/toposort": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" - }, - "node_modules/tough-cookie": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tryer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", - "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" - }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "license": "MIT", - "engines": { - "node": ">=4" - } + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", + "license": "MIT" }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/turbo-stream": { @@ -17142,38 +4404,12 @@ "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", "license": "ISC" }, - "node_modules/tv4": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", - "integrity": "sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==", - "license": [ - { - "type": "Public Domain", - "url": "http://geraintluff.github.io/tv4/LICENSE.txt" - }, - { - "type": "MIT", - "url": "http://jsonary.com/LICENSE.txt" - } - ], - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/tx2": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tx2/-/tx2-1.0.5.tgz", - "integrity": "sha512-sJ24w0y03Md/bxzK4FU8J8JveYYUbSs2FViLJ2D/8bytSiyPRbuE3DyL/9UKYXTZlV3yXq0L8GLlhobTnekCVg==", - "license": "MIT", - "optional": true, - "dependencies": { - "json-stringify-safe": "^5.0.1" - } - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -17181,364 +4417,114 @@ "node": ">= 0.8.0" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=10" + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/underscore": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", - "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==" - }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", - "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/use-debounce": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/use-debounce/-/use-debounce-7.0.1.tgz", - "integrity": "sha512-fOrzIw2wstbAJuv8PC9Vg4XgwyTLEOdq4y/Z3IhVl8DAE4svRcgyEUvrEXu+BMNgMoc3YND6qLT61kkgEKXh7Q==", + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, "engines": { - "node": ">= 10.0.0" + "node": ">=10" }, "peerDependencies": { - "react": ">=16.8.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/use-sync-external-store": { + "node_modules/use-composed-ref": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", - "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", - "optional": true, - "peer": true, + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.4.0.tgz", + "integrity": "sha512-djviaxuOOh7wkj0paeO1Q/4wMZ8Zrnag5H6yBvzN7AKKe8beOaED9SF5/ByLqsku8NP4zQqsvM2u3ew/tJK8/w==", + "license": "MIT", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" + "node_modules/use-isomorphic-layout-effect": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.0.tgz", + "integrity": "sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "node_modules/use-latest": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.3.0.tgz", + "integrity": "sha512-mhg3xdm9NaM8q+gLT8KryJPnRFOz1/5XPBhmDEVZK1webPzDjrPk7f/mbpeLqTgB9msytYWANxgALOCJKnLvcQ==", + "license": "MIT", "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" + "use-isomorphic-layout-effect": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" }, "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, "node_modules/video.js": { @@ -17592,371 +4578,89 @@ "global": "^4.3.1" } }, - "node_modules/vizion": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vizion/-/vizion-2.2.1.tgz", - "integrity": "sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==", - "license": "Apache-2.0", - "dependencies": { - "async": "^2.6.3", - "git-node-fs": "^1.0.0", - "ini": "^1.3.5", - "js-git": "^0.7.8" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/vizion/node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "node_modules/vite": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.1.tgz", + "integrity": "sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==", + "dev": true, "license": "MIT", "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/web-vitals": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", - "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==" - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/webpack": { - "version": "5.98.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz", - "integrity": "sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==", - "dependencies": { - "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.6", - "@webassemblyjs/ast": "^1.14.1", - "@webassemblyjs/wasm-edit": "^1.14.1", - "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.14.0", - "browserslist": "^4.24.0", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^4.3.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.11", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" + "esbuild": "^0.25.0", + "postcss": "^8.5.3", + "rollup": "^4.30.1" }, "bin": { - "webpack": "bin/webpack.js" + "vite": "bin/vite.js" }, "engines": { - "node": ">=10.13.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/vitejs/vite?sponsor=1" }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "optionalDependencies": { + "fsevents": "~2.3.3" }, "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.15.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", - "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.4", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { - "webpack": { + "@types/node": { "optional": true }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { + "jiti": { "optional": true }, - "utf-8-validate": { + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { "optional": true } } }, - "node_modules/webpack-manifest-plugin": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", - "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", - "dependencies": { - "tapable": "^2.0.0", - "webpack-sources": "^2.2.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "peerDependencies": { - "webpack": "^4.44.2 || ^5.47.0" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", - "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", - "dependencies": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/webworkify-webpack": { "version": "2.1.5", "resolved": "git+ssh://git@github.com/xqq/webworkify-webpack.git#24d1e719b4a6cac37a518b2bb10fe124527ef4ef", "license": "MIT" }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.20", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", - "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -17967,519 +4671,37 @@ "node": ">= 8" } }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", - "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/workbox-background-sync": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", - "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", - "dependencies": { - "idb": "^7.0.1", - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-broadcast-update": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", - "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-build": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", - "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", - "dependencies": { - "@apideck/better-ajv-errors": "^0.3.1", - "@babel/core": "^7.11.1", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.2", - "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-node-resolve": "^11.2.1", - "@rollup/plugin-replace": "^2.4.1", - "@surma/rollup-plugin-off-main-thread": "^2.2.3", - "ajv": "^8.6.0", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "lodash": "^4.17.20", - "pretty-bytes": "^5.3.0", - "rollup": "^2.43.1", - "rollup-plugin-terser": "^7.0.0", - "source-map": "^0.8.0-beta.0", - "stringify-object": "^3.3.0", - "strip-comments": "^2.0.1", - "tempy": "^0.6.0", - "upath": "^1.2.0", - "workbox-background-sync": "6.6.0", - "workbox-broadcast-update": "6.6.0", - "workbox-cacheable-response": "6.6.0", - "workbox-core": "6.6.0", - "workbox-expiration": "6.6.0", - "workbox-google-analytics": "6.6.0", - "workbox-navigation-preload": "6.6.0", - "workbox-precaching": "6.6.0", - "workbox-range-requests": "6.6.0", - "workbox-recipes": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0", - "workbox-streams": "6.6.0", - "workbox-sw": "6.6.0", - "workbox-window": "6.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", - "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", - "dependencies": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "ajv": ">=8" - } - }, - "node_modules/workbox-build/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/workbox-build/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/workbox-build/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/workbox-build/node_modules/source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "dependencies": { - "whatwg-url": "^7.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/workbox-build/node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/workbox-build/node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "node_modules/workbox-build/node_modules/whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/workbox-cacheable-response": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", - "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", - "deprecated": "workbox-background-sync@6.6.0", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-core": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", - "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==" - }, - "node_modules/workbox-expiration": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", - "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", - "dependencies": { - "idb": "^7.0.1", - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-google-analytics": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", - "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", - "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", - "dependencies": { - "workbox-background-sync": "6.6.0", - "workbox-core": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0" - } - }, - "node_modules/workbox-navigation-preload": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", - "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-precaching": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", - "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", - "dependencies": { - "workbox-core": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0" - } - }, - "node_modules/workbox-range-requests": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", - "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-recipes": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", - "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", - "dependencies": { - "workbox-cacheable-response": "6.6.0", - "workbox-core": "6.6.0", - "workbox-expiration": "6.6.0", - "workbox-precaching": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0" - } - }, - "node_modules/workbox-routing": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", - "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-strategies": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", - "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-streams": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", - "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", - "dependencies": { - "workbox-core": "6.6.0", - "workbox-routing": "6.6.0" - } - }, - "node_modules/workbox-sw": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", - "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==" - }, - "node_modules/workbox-webpack-plugin": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", - "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", - "dependencies": { - "fast-json-stable-stringify": "^2.1.0", - "pretty-bytes": "^5.4.1", - "upath": "^1.2.0", - "webpack-sources": "^1.4.3", - "workbox-build": "6.6.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "webpack": "^4.4.0 || ^5.9.0" - } - }, - "node_modules/workbox-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/workbox-window": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", - "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", - "dependencies": { - "@types/trusted-types": "^2.0.2", - "workbox-core": "6.6.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "bin": { + "yaml": "bin.mjs" }, "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" + "node": ">= 14" } }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -18491,6 +4713,7 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/yup/-/yup-1.6.1.tgz", "integrity": "sha512-JED8pB50qbA4FOkDol0bYF/p60qSEDQqBD0/qeIrUCG1KbPBIQ776fCUNb9ldbPcSTxA69g/47XTo4TqWiuXOA==", + "license": "MIT", "dependencies": { "property-expr": "^2.0.5", "tiny-case": "^1.0.3", @@ -18498,21 +4721,11 @@ "type-fest": "^2.19.0" } }, - "node_modules/yup/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/zustand": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz", "integrity": "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==", + "license": "MIT", "engines": { "node": ">=12.20.0" }, diff --git a/frontend/package.json b/frontend/package.json index c64bf59f..fd6062ee 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,60 +1,54 @@ { - "name": "frontend", - "version": "0.1.0", + "name": "vite", "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite --host", + "build": "vite build", + "lint": "eslint .", + "preview": "vite preview" + }, "dependencies": { "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", - "@fontsource/roboto": "^5.1.1", - "@mui/icons-material": "^6.4.5", - "@mui/material": "^6.4.5", - "@videojs/http-streaming": "^3.17.0", - "axios": "^1.7.9", + "@mantine/core": "^7.17.0", + "@mantine/dates": "^7.17.0", + "@mantine/hooks": "^7.17.0", + "@mantine/notifications": "^7.17.1", + "@mui/icons-material": "^6.4.7", + "@mui/material": "^6.4.7", + "@mui/x-date-pickers": "^7.27.3", + "@tabler/icons-react": "^3.31.0", + "allotment": "^1.20.3", + "axios": "^1.8.2", + "clsx": "^2.1.1", "dayjs": "^1.11.13", - "eslint": "^8.57.1", "formik": "^2.4.6", "hls.js": "^1.5.20", "lucide-react": "^0.479.0", - "material-react-table": "^3.2.0", - "mpegts.js": "^1.4.2", - "planby": "^1.1.7", - "pm2": "^5.4.3", - "prettier": "^3.5.2", - "react": "18.2.0", - "react-dom": "18.2.0", - "react-draggable": "4.4.6", - "react-router-dom": "^7.2.0", - "react-scripts": "5.0.1", - "react-window": "^1.8.11", + "mantine-react-table": "^2.0.0-beta.9", + "material-react-table": "^3.2.1", + "mpegts.js": "^1.8.0", + "prettier": "^3.5.3", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-draggable": "^4.4.6", + "react-pro-sidebar": "^1.1.0", + "react-router-dom": "^7.3.0", "video.js": "^8.21.0", - "web-vitals": "^2.1.4", "yup": "^1.6.1", "zustand": "^5.0.3" }, - "scripts": { - "start": "PORT=9191 react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test", - "eject": "react-scripts eject", - "format": "prettier --write ." - }, - "eslintConfig": { - "extends": [ - "react-app", - "react-app/jest" - ] - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, - "proxy": "http://localhost:5656" + "devDependencies": { + "@eslint/js": "^9.21.0", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", + "@vitejs/plugin-react-swc": "^3.8.0", + "eslint": "^9.21.0", + "eslint-plugin-react-hooks": "^5.1.0", + "eslint-plugin-react-refresh": "^0.4.19", + "globals": "^15.15.0", + "vite": "^6.2.0" + } } diff --git a/frontend/prettier.config.js b/frontend/prettier.config.js index 33fe4a21..d2b86878 100644 --- a/frontend/prettier.config.js +++ b/frontend/prettier.config.js @@ -1,5 +1,5 @@ // prettier.config.js or .prettierrc.js -module.exports = { +export default { semi: true, // Add semicolons at the end of statements singleQuote: true, // Use single quotes instead of double tabWidth: 2, // Set the indentation width diff --git a/frontend/public/android-chrome-192x192.png b/frontend/public/android-chrome-192x192.png deleted file mode 100644 index 41a9986452ec0f8ae9adefd7248078a86fb7bf8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23147 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�aFU zgGtQV%D%rHvt9`$GnV$Ywup-)?J)mFG)Zs=?zi3*E){$_Bm6-KkhfO#CCL_lwn=IA zY0(=L_=W7+%@8fy>SB9enN~WwV9!E;{O)_d#iQ*lO2!k%;7$5tP7(5gKh>Xb)u#Yo zkS+xo99e5bKaMf}nu-t98vhCdAXp>(Z@65~QsbcgJZ(l;>^AB*5V2 zE3y%86H9(RK}uk0ycq4-XK<3De?x9`N$wU+?mAl~cU~~5jSX}RnVmD;UL_}KH9n15 zrR;7`xLdJq;}d*6h`38h;||WER412H4Y9q-Q#SwoP^d9}lNO|C!Gbx<6zTBIgfx*Y225dynt* z&eKX{JRip#6`6N~_2dMxFfzt4@K|YJE)k;YAv>o1ss~RE4?FNw;M~|RkAHs*-2F%? zAd}yzkGLbj{5DATWAWWTi1Zc`#{vi@+!4H*Evc`wnQkt!6Mn-z4OtI}W|!R{5IYdA zIO9Bey7_xJ5leg^dY=v}F09?r%(fOKX1vCN|AU=HD>pzplqm|>s?mcN0OEm61T>EP zHm9UT;SKmz-rRC;kU|QRm}>adrDL^hVRiIzgb{W(c#$fUdncwv#9sr*1ZTDpBOMod{Z|tP`nvk>F9Nb@k1`X`3v2ACLg+s6dZ2_L z$~WNqb*^#L;)iB#tzVsCdU9?istr`^GNa}ZB3sDQ9%i<11k!u z768RX)d`qgB|oELDi9pV&>9m!FpmKQFvzh5C^l`gxS;HoC(L*B10Gcqw#=s3ZJ;Kc4D%yJ21^drp2D@3kU(i>!PvD;W2L^3TwU3 zEsw;N{JC=buf{PZuab9Xz@Hm)QS0+Z_)+on(a1QGd$1)5vG>^0d~0G~FxH z;Cxh}y&>APRzG@I?`;mCq(+72!KzcG!88&P%;@dgUc$FX~ z&6+fd1=MlSV`pp48YG8>(F!_|T_t)NS4|HTk94f86sYLxbjZCFKdlia3zGdmt^K|N zmi8K|vh=3LxYh}1ZG*6Caye0IL+z8-l0HDjY!IV7nsl>0NGc(CC9@FHO##K0cI7A2 z1HTN6++0ZA0V_^sYh>8P~Q4g;@vvfGoT_Maz zE$G|0KTT~l<*>Va#up&tV(eCAt0s0JJYq_gDNxq%!KBNqX3UA3+Kp9)##c;C)f=n5 zPjrH1DNL+IPp7$KsYPpf7pD=NhWNJ$A0iL_gO_CYoBr`KiCEU=Rqi*(ls5`tfvN{F zKdQVgB_Y%?X|8_iQRND!^(!ZId_Q??A`29`EPd9@!oXl z_v4-h+3PK4=jxdL-!T9(7f~C2RQ0Q|kKc3R`Ep6ipr&8=bU`=zy@d?NKCwTe93qG) zSDuVd8uNAaFp&WS3F`6;Vr=Vg5c0Eb*ZhqBdWb{B);G%5$5}P4B0~8@_r_*2-xU0FFPT?uPz+!(ONaW;Q%-R8O z>aBDa=Hf?q#G_W_sNoo8R3q!V_mtm*Zm8D8(^^NCRB$H3y`!=Z1&$Sn563+24+S?< z4wFKE%A?&AnQXVNe3XGWka%<9N2&0n9r?U+L`7o)aa7gUq;786dzkbHc63W=h5p4 zRZBel1#*K*V#x%lv!LhQ92#>J6K}JsW1U+5!neBVab87ylka&po%Xd0Ba@Jf3tV3- z)QFH< zqx>Q75X4DKV157bjP(GS^ge@#Ab`jc?##=PaCNw;m}-ARCJ z1!GuB73PnhN~u@-#$Jfx6T34REI^*(4YOWN4G8x;=kn@N*_Y(}S5At}EF75dFe>QM zn(*(3x0`^B`t-A3)8c0m?jh{X{$omcY(g}+v$-ptMhbp;m>}!Gj-y1yR9tDhhX)V- zrl26~OgE!0IvqeqY?~ZYy#ftff>7upcF_5;2OpB|`=_!e@u@@V-p=Lk%scER@x`ex z)_qd%FVP=hVM4&X#iO`w)bL%wiyaxpDN^U1aL)seLjN>_$v5Ip^+0!jJlNLK5zAU=r#r7WEG*m*KzmkS*Mm?5zQ+fV;#e_uOz7nja{#u%jz%76Xzyhc^spX98a&1{lwKPRox z(R`&ujU2ExK9L>RWS&l__^ZH>&Y~p6?v)beH!1W#FTmUj@)6C&QO~w-SDp`~Zxvj> zg+sLrkZgoHOQ(b~xnf_0PHS?-F}QKKka+E+_nra>68=RV$G1rXqVu3M9LB}<;5oJ| zoPbqNr;Ig~RgQ*zIhsAJ6ITs^79W{LmrFIM&3@EaPquPYc%I z6&%o-_;$08{*p1{Pd=7w@XXCwnOfO9n0yc7nkc)$%8#f@IuftD3J@~ibLs21Fbwbs z;d4Dy?MbabSVc^ds%{I=P2 z3~^)Uh~lF{#$D5e398rBv0v#TK6_P{U20sH(djG!^cI z=WQfxDS@3oP@}Hnn~7x!sN)}zRM@<(`|1}evr8MMAchl@6LA_rlP8a>lWqS(5%*9$ z@@|y%t(Lob(15fFrd1mRr@G&|-rj4A&B6mbIGQo2i?{KX_a=5Ii+&dRK}<@Z2PE$y z`dr^5X){XG#SVnu4NpED{E?_`hj>6u?FqZbZM#8N0ZNA(W|m|g^WlgOi<5Wb7T)KpCCE@;NcJ| zqt)x`*W;&DBIvWnd-Nvg*e#SNCB5@qA?hIX9PJJO7Q$WL4=))J%~oAjZng6EqW0c| z*N3fj4t(QWaZ^DEviOO~O!c4TvMJNbi8#yXZ5COvNmr5ak3uz=O8F68kf)ztCkEGV z4a{I3!`{DFXPdsF;YxnhkNvB9kp=>CM&LbqX5f10*vtNgT1@;aSr5xtvTwUO=aaD|sL}CL!Z@v>IIQRVa;yAM7Fs=N1+t7Z~ zvM&&HH6YZi6N03Ih_6M(FjDdfYEz^u0nj*HLf{Sh?woe5!}y4H4E1q>@%f$CcEz*K z=mpuEl^=F-Q+M{f2=`mMT^IXXm+vPQ?t=|#bx+Uj=b$J_YSgMgWmN-{rD5&HucXqHZeF(3hbSpb}(^rb*Lg( z(NX7|;}*GOZ+;42JqXB!6s=9*Tj}dFQICb;Bz_kU(%fBsh;v9(kT<2Bp1=Wb<%mn{ z46k#DS3WCP?2T4#xA?nXNp7a6v{?IK1LXxb_2}zJ40dC{ZwU-uZ6+coB z9xk{AvM?>CxnOnSWiQ|w4J_cAn#O#cp?mc9>zt}`v+lD$P!Cwp+kU*--Xl03nJLYe z?FYO5=hBZ-r$x@g6*<@B7< zm9O|zI~SHO+mktg9+W}lL=|`V-o}8$?z*p5Zs=|IJK6_#LB@dK>)z?@d@qH?CeI!l zwbRw1D41%6ET}%PA#Tn6I|lCKu0dRZ#Wg8mZgL^@jOV zz~FxPs!EwUvn)8`-)N)KNukhwOpbZL{dWNaC#$TVGN!1UP0>YBI0!R2{a*UNd)NWg z)S^aN<8)j;m3LxK4wTtsQ-aY-CqpcE1n$tKeRVxE9~@~+l#>=rG}f5PKYZvl2{qoKMmC|*41TsXf8 zGXr}sK`Z-E=P(+?)O?Hg2+^ZQgC-5meytL`a`A&T+S`iB>{#b$oHy)+Pe0+}Jw8kp zlYgL3D>zC*;qeKtfcKN4v0!Zev^*|&OO*=L!K5)G%=qO%0_sohC#U*b<}||6gZeCi zQMDL}qoO7o6$jj7pplycQrj0^7xkKqw&A-Ra6t^klIUSbO*1vvHM3KGB@i25rh9Pxt zCg{Wz<$iL8b$Z<627yedZftjNR;&S}xGvjku<>Szib`YqcH?g30bhZJ4mD7cRvG%Y zoT7x7tt1Q8fB?7U`)x3h)bT>bAh7fP87f6TOgRG87Pzm`CLTh7)5%4x?Cqkj7Go z4^yO51A=2Hm9>(BOr>z7t@Wql3;p~>mMpGj^ud>F#XGUdQf$L(nI2(hPuL2d75*CU zaov16xlNF+@Gk5hrI{rLHvy)$+uc0acA_()p7s09P6L7;bb?wgtECEaCT6lb@{ObFlzPK&o zSWyfSX|`KMNq90uNsnr@Gzu&4A&CiL+M1jTfubBv2o!>Wqw~{z&T3O4J3Ku6g|qX( z=c+2o+;Kl~Lwvfi!JqN(DAGyr2XTN#I|1{i+Jv>oaU9Qei2ej+#hyS+&@_8NR_Hh9 z#n^DfUD9ySjq|wuk0K@}hN1x5wZ2C^JR|KJZ*Nspy@Oco0>wsJg0f_Q1O>jn5c#(G zg@wwvEvbX~giAySi+2K6KvHx#L=ni)|0K5kv>h({mYm%xMIU6F{-!v6Km(pYo!TFK z)P{hptg`XKC@(K~yEwi9OmY3}^jIoI>8$jy$AN0Nr=a2IZBM|8-l`Dj`(sH=yVtSY zIpUJ8(geEIC1rD6khGXU_`T3Hk}GSGr^b{OnvUlabrsW2!zVaEk&X)hS0i`(-a%&W zjzQGe)HE|o2tzLC=HBQNX0fj^^KbcIsLrtW+}?^md0kRpUNAtLnTFt{U#z<(1(2FS z**rHK((|Z^WDxTAE_KaP3Xf4mG9f>o%bXU6=FVBLl0oCnIDt+A?4d?2lj$Vf!g*m^ zIGA+lmU{S11on<7%!wL1wCJ$W1FjYglZopE2Xl(^QzxU;ej*bvg&ida{d?Pz3sQ%| zS!u!%P}X-Y9DlG{138~#Z+|%wy!U~qYR0`CUe`we2qDX z;s}~uFb_>`GrSBbk^M9^Hk?X60LdzeL?;*O$@&dDYR&~NqAt#gTC3)56j~Nl#0T7d zw?}l{Ds$|Z@61d0-?4g0P7r^{oa?eOp?=4$$gel|benT(mwiAf!%l$6c zrSdjYJVwmey)CL1_ofE`dZV|QT#5d?E;5zAQIo|!+PwE!{K!lH2C?Py-gA93c(66wooYM7YJLX zi5|E>0X9Sw*86w{ll4c>`)4p!{3lB4Ggdmve19NO8YKD5DWtPH_>RzyKcOGTg@0Y( z<(?~QCdkL<kO(_xiDzExWai#QBSzSBnbzWfw9Y-x>W6gDLy=A42bq(^EtC zw@=2v5q7~JK)`2S$)wms;qce?xN12}+P>YsXbJmk39*XlXL18~&OIPNwUM#w!SVEB zuZ;g&w^6`H)n?Vo>O@7nCt|?y`p^de$onBoxEZeAU9rFB*s0%@o$2b0kX~bveZtA8 z2=;pZv?$z|3X99ClmIFST#|@(if%y1Egj@p^WfZ&PY)6zJIpZ(6k0y5VoO_t+=o|( zL-g^J`67zDV3q(=K7dCMB42axTD=W$DO<)vw2qh2Jhn=zQ#AZNyR*MiFq6Uw_|XRv zfWeeZvr_*==}Tivb^s82U>ICq%aS{`Fg?0sGy(qo&J^wBF;s_I7ghEc8i7vRjjebH zf9tWji!zwXWj)ZwL+Z*FEDzf`tY(xCg+pq6H2|a;i=GhGHGX90!GeKWZPSOkcWOK+ zR<)-|WPP7pg{B4#9&lq7Jpf=FCSc@a)sThUWg}bD9yp;g4RNX7uO?pV*!aRPNX4R} z(osdVYPwP?&R|dqM!p5aBthOJ#S0FrEYp-ARL`(9t;0+N@CLs=uKia0NKB=`oC}8B zFdzl){as^&7PpfQ!7Q~Mg8;HX)k5LX#w%BusxPfXPp(AiHa;w!x-(m2GXs{t80T^7 zlWzlt)Y0)3w_R;QuSp{si}CJ92|T8>v_m}tGuPfFe_^o7%#wFbxo;IpOF71Mb(%!$ z=*(4SWd?b8`lpqiLoxUS8}juL6)bQI?3&RLbv)Up`GQY5BpI<+8)a~7q6P&uBVZnw z-?=djE2krh@EoN7GB6)sMn?H6)_0UZe*ALUASvnq&63CydBy%z62a((!+C{4U=rwH z&#MO`FXH$Fg#noGhSaQ`IL`5HT!1`UJYgbsMeutsJ5R51P;c}uzu2g($5Y!=?{|;9 ze_ok#wU7UNQtGMUg5BRANh{9*y z()^tzfeX@iIOf#NNOC-T$nM@WH%;NafeWbCcew5UDOYXEbFZ9tp#SSp50S!~JB!6qO*ZZc5-9wAv@cve?PmFF6WvIci)j`K4kMSOLK-J< zgZTKusZlP^O-*wpH0 z)f5$bsTK!yNJW%IpAliXB0cnRbhuzn@yr6eV0kK+SM#pobxhsckud%5&iU;CWm)VO zlcmGTRQG*zApyB;IYBrh?ANB>o*J!ln`gjZEn*O#=4T10XBTH#h{zTVKHfG*7|GYC zegvxZa1#S*4_WD=;v4i;E?S$NkcIdlVU^=Q$7IRBys@gCsDyO~DJmYTAc1b38|{-1 zF#fK_2KtRF#-H|mga?n_qM|wf8sU8Q53e5E3-REgsUD4GbEZ@qZ@c+ry7zd(WLgn4 zSd?8`$G}cDxD!w+U-kjfX07jNrTofh%eLb=C%w%d>SRU`=;MO^;NMh!K%d2&WdE+?4z31=tPmr8XT#$wrlX$io77fh0xBU80Pt!xUmy{#g# z*7m|hT)K$2Zm*}?DH55Mm_v|Be!)Laa$N8S34rRa?o8T~@g(U@9edy@Su_h>XBlVz zmv|wVtxa+Ne1$BlF^UcC-{%uUvnvn<_WwZXDpqWo>Dg>bmNL9I=QiH`s*)L4loViU zmI}OGp=?)m`*Ur_CfvHtoQZ>_%Ybtv{L-YA2nUH?)-5!!CSf8J0OXi_Wo`^$wSfT) zrcD+*A)uu^=IqpfW5bBgiwPeX)|V! zjYj3>hsH|cmqpaK5P}cZ=FFgcGo5Y%o+sMDD$j07M#kzbN#kP9`6}Igz+c(6E9=Ty zIEer%f|~CcrCKUoo{p*WEt^U&e9WW|zm+W!m@qNu)phurShBk&Q}UaAVjD7`L6ONW zcgvkHqDWl@W$j+ciYZ=K;W<-I3s4&b6aV-^dQ^IP$oy^;PHCH#5;=(`SH6VErr)zRQWIB6BVBVukA1 zQpY>tbeIGP`UE>HXfh3W9MKDYAb7<9y^JBdG;WWy+q?`(t}epD#1Zt9AjZSh@d21A z6t^tMAjYT@8P%{)c=9l^S918e30wy&%Pr*N7!Obdi=&nzCjFEYSU)WVd)@N5#qCS0 zXFfFhu#SO)I>Eviz{`Lr!}g8DsXLDOXAbCcek?9yR@8mm}`Hi(OaJFS#xTs}+KYJ8HV5H)9H) zrT%XO+rjg-BNjlGi$0z68{j^nD35A@jkNxpz2x{#wF$gWo0^QNy~e*0Mkh#ZYPzP1 zJ-(xTDQ4j0%5LKAlIlJp+{M8gw2#^lOEi*>dNocngtT#f|Fvtbj$Uh`XuLiu`Tgo3 zPg|n?SW(qVk26GG9>8DGx+J7qs)oKdXQP(z>^r|y`Wop`WuLR%$;(bM*P}2-T zT}Fgu9?eq{E?A-TwcpI@oAz8TUqnVG$QV$Kg&lr;rkTT6oKIeu`1*(akp_8I{Q71h zUUeh)wvagK^tpazN8wH3P1W>Ko8Ya&ez+6J{Z0{VBhvhCc!@$52~*W3c;7=&lQ*5& z&3aGMP=P~dn&qO60XMHdQAEc78vz+P2Y+Z(%aKK&_yshfiNs>Pdm-%ueCzbCG--|b zqn662E7DfWd9(uXdlUr%5Z};!Lx)(dTmaA)8hv7v(k~eFjPXzFO`jSzFfziz-lD~| zOsKia6mVev$FMx!NTvB%vA_>*sbDBB)ap}pK8fx=3zTiGLx)MQk}MA;IKsv!ID-l8 z4P?b-_|u@m3`%@}oC9CQvn%{PP?da1C;Rz}^icJrg8oBYvbB~3D2Zp8%F_^6lTYS` zo=u-{AJy_6yl%M~2|Ta;YyJ4w$5yPh88xgy6*14FB<+fSJ!~@7??6xBjzOs7K>qSg zd}godcfh_~#+6Bu$$#kDW-kVCU1`JPQldX!B#YRR)&KKQ^n1fdcnH%b7QOhnvV%voy<~CNW37H zvc|HMfvN-eA*V(X$@)lMrx!oo_AOyyp&vXl^jChevCDftXE(9T%CAk^MK;hJr`tRV>N?!sYN7(bcGE3}tAkSl>IYpceM<4HV4rc-Y2mOS*qYN$bRUH!$ z6_up%1YTe+y(w{DJo9;O(R>>8u>$&;rYaQ1+amazE+cg2P#7!x86W;wiQARBPVbOiTt~JyGbjTEc^b zo*ai!4Ks9vePwCTIID_43P!J`>YLyi4|uE=jdB^TqKQuoqx8nrDvYOMioL3fbd-3> zZ{B-Wruy9)$&TC=I1BlwzJ3Lqg8jt|v2#L8Y&py;xJPSwdGpVYbt-g5qBPH_+i^xB zc1Y}dCGE-(_EHqD**xPr4o-R)!rqrA2Lz~#1MIE3oO8tu{kF-CIr>UF zW)S!egyE{`m=K4`cHPyrQ)1WkYqX=T`axunGg4jBHEiw3(J&m~wcq=_)Tk2!epI6txTGl?Xk)D>OUpV~>+y(k*=Zsh#18uYnIpDSY?a%=XS`GrTFK zy&9NwM<*Zd*}4+Q;}n&&m}S3%m=hgz^XffRsl8jk0FddK`o)W*iU9Y5SCc& zgQ4=pe)cn_yfl@pu`b6Nd=eb`Vrivu z51~WMiU$Z-R`5P^dZNPyjV#gA;&cpIg*y5fOSbJS630=)v|E5P|2ZozdQ6;|>!;BF zc>y955+ZnU-~d@d8%e3VlZG>6VxAWONp8n&WIxJfS}!jO zAaS{n5?tW)Y? ztXI5jA?4ywMKoR5(rX!KxaAe@jbY^ifd;hALfA)h*yY4eKd>6AmOwk)V1(tMvoYVC%y5Ks~J zzIV0`f}cWwnncpEw5qwil5Gh9el&gm;tLkQSq47OXbJn-<&$~F<%0$2RKBh)NunJm zV*?`J5tw8s_97ElY>gW0y$0L;|FQJlfmFWl|MxkL<2cr_WgdHvgoJXeY$0T2R0>&H zNycN86&)fOA)}0ngvdI`$lfxtGeRUQ8NcWK`F;O;{(SD|zMt#9uGjT?y)Gmp#c?vH zW!pRoqm%cF+DoV&;e7EePyhEh#GgMz-zKtZGCF{=QNU5eNvf9H^!o8ov4VPVMa<#! z4o}ZO`xO{J=ch6t11Rkiv%^ZKq+9MyX-)R8uzS~n{>Fd<0J3}zh7?Cx(_CvP2Pg-8_Uuzt3)~*mJT_u7}=FliqjoC?|plzS+gI@e3-m z$({9r6|b@ZP(tdRC-{6+*Cwn!@^IHXPioTLLTBOe(^U<0%Ov@PLJ-|8@iH*T-a;TV=FX8Pf}3z?CMOBYiEX0%5`BC>31R-ArAtMMb`D1QG_#Q#oyz) zs^9zboKicz*`@or#QusmiYLcbAK^v4t$}qo1=hh_eq(PL)IYX57a2!`7-WtKkGC<; zwje9;;^g@U2$aY{f%;V@C&=n7j7z5&t~Qts-Ss_V=4z_+&Bm^(BqHn;&$|&SD|2S@ zp2rM)$YfeE{ZhoL%1ZBCP_IdpH!U7m;qU|{@QZYk)MP2?RXtRbT`%n&ulZNwTNYme zi3+5esIL_0L9U2`L&ei9-!qHL`&NoU`kk|vz`TuStAA&-T6jo*p&?U_hALw9>i;*$ zxJhL|32fi74ZUYyV7uO0fM$4pN-9L2ageMBnzWXI2+sC)djNKuEDBVQ;8RjyW8JN5 z^x$#K<$E;gxBDLYqT~({A&9fQO4QcT;fI;BziioDF4|%#V$yS>F#~?MEMW8)YRXE- zYpRtG_3d#G&ty6U!LL%j8pore566M{ubFVoDjI3U2fQCW!d79H^J!gRtkOoNU1{X$*Vc5w z)H{m77N>%kfYSpquv@cuDhvpwATaqEG8#BMZ(tgNgIe^kFSm%Q6KQ4CgGX9eu(l)I&qmSfN zK8-Sutl~qxtyx|m;U;aVZA}C;h5^P!1IX&165DUfx9`*Ls>c7JGl4$6aY{}-s$F0r zT?Js_w@(a!1^Y?QFQ(hmniTU`k0c&VWh2B9>H zq}X(8@R^XwTNcGE*2^kCBWxVR!0h%9o63Pg3!f3*Ue%%^q@cpf)P$M4KTn@3gRSgT zC+JYfZLv=tfCLRzmn5}xg~LQLuPrJ+Y$JUG$4Xb!@0ru%nW56gkUFKo)?#yyN=PL7 zk3F-CW7|h0(u?pU)!Sw+nEQ%!^j#flN97dCiL&wP#H$CG4u= zsbBMnQ2a;?M&$TeqK``KC6Vn7sz)D?*?3MP6y|lKP8II)>`jI6GgCxXMqCdE#x^7bGVx zTF-v7hPQ>F2v#b_wy~U$3hUYD7xWRy02-NFUP;zK?__Hr*S|%YUq%5~`&+($jQjiZ z;V^OJb8*%g*RS5+9n53O@tNSN!~&r$7{wM*NW_utGKlvOa9?b6&NmD7YAey{m4>15 zgagDgy)a^|qETDg@0$gB4ibF%>NPpQV-UX5o3W-2I`okuVP@D!L**gkJ&$Xi$tCkLr0l~xqD2kG+{Ne=17tW{m)eJBq`m-4?AE}Hy5cU}f zk=>>T2Fuo=BKynT;2b?|Bgf)2$O5mHz0;Lr@~F6pA6ngrGTb3`&N4d{7GGM((> zLg-otMqCVeOF#?HAA}GiR}iOlnfu~7XzU!NM;~=tlRf~E9U^wC1vZ88Y?v1|Y(m0O zG8RKhDW^6z1rB@qeQ7VZvCc>NlLq-YV zwB|TKh4;c=zqh9u$tR*%_h2&hlk`K{E&KBr3em<3Xk>=U%%V1(C`XX9M20L~iO|e* zZ#9TuZN`MjMG&nd?02~*9H)(aUcugC4eYv(PetfVd$8{(m$Hh)NGmJ!5eWEBC{XAkT zoJ{>${;IK($VQYX$Cpo~KEWTah|d#fIZG(ef@)mpG{4g|(YG>^ac#q-xt>+KGp~XK z@C4I)%HSi{-YQRyv+7%3szXUW`9kcWWXp==U~})j?(vSWIT_hAnqn>fXH_k^A|0Ez zHPQJSWh#6)#kvb|*}j@AFR&nh29&{h#MUKk5WUry0l)bXD^n0JIVXZdf4%nO_6Nn~ zyZICfezo6687Os;%_5Y=kBl$k zVe!T5KB)A!b^N{-@2i%KjhLIallNNGOkY&BysE`ZM%7nvU6zztLF>fLaV0X)7Ki(? z-IAK@OuN1lr5RlI&fsjB)dZ`SS}p>{3qb7gQw)mM^VhsES2_7>BguZB!1YTEmA3NYks z&h#16ua5*t^0uaoh&2@cP;xg7tRjrTtQ{;fVuuM5z|1=RUKw-9$`hTvc26al^)WZu zzfU3pz5zaUGrV05Z@+a_wM@`?9cnDSZl}xt;gzZq21Q71x_l&z3k80pnZG$a$xef4 zGny~Z`mo9*p3-}|yB|siVGim4L2YwfK}Y${VJ#ITGX#VNY#mpb7gFO40ueeqP&qH| zUwh3NV*sXR8*#M2;A}2J%LYJ2imn~8c8h>>$w_6mZ{k{e==I>Orgq)CE?;BQ@lX2l z72aB2>jGp*jPJz{B(P~ z!NIwYFy-_}H!eE>7KMv}viEAD<`$38m5bVWbgh3Q-Y-)D9HMMA5<~bURuBL6`^ZaD z*+SPT5_9xpHr|-3JDcz$Z~Y=@WVfx@w5+1#Z%h=Pe#N6w*3>?6%@pSu?f zKP58lWn_pKVlH7nBXp>)6q9E?z0_UDJCEr7ME)8L^0Tb(D2AGs76#$PUzQyTQ?o;) z4+)@bJL={UIl~82?7^e6=@`g;k`qZU3iR+W&izbj(ekp~%uH$hM-3g3|MciRuk}6` z=`r+#-neqiLKypKjICLU9aYP&(F7Fg^2 zA|qt4!e=92{3*QRlf*7k*qsoycluH!V303n{~k!{7rs{E3Cte#m86_2$cYsbGdF*d z|J~K=XmJKdX3En`2@a5HCYg1{n4(b2uv>HT7gzn38oRWB2a5-z~po zLXw_Jb#m%S@@p+8lCLUY@UJKFFDdRR<|a|9;d%*_C>Ep@Zjstp$11p)ZcDUeSk9kI zr9xjD6Yk^+#bEHD9KYw`cz;z&(M3u#&XJb_t4n;|vVCqmic@3?lx)+^99Qw=hc5+wo@Q*}g`zx-Clq&XHO z^b}0OO@!!lygzHM!&4$v@1+Xv=f&XGqu`AF+%tr6m_;4@!CgFX@|GND`FM_oXISPm zazEtHDfYL_Wk7eQVg5~B&VQ$kVZ{XcS$y{Wytw~Y`gwm1lQUb9#WSj z+3tT1;Cd69wYKWF<8Hq^bzXoOx|uXgLe9CI8KA{HJ)T)}32I-y=i0EAi4u775Q`Vd zAE$eX8oAi^P`3GZHH9j4oGU5#XpvE==Il$qyR|nj%;`|8h+gZW&RUl9puKDg7!WUD zxy;%8wrJS&wJZ^W=sNB+C`ara@78}FwxCR>WyZYnzr{Sp+Jq;^>W{#DN7&*x*YpJ{$3lz+|n87&Z? z-0Ac3$AjRChH0riKTb|gww3D3KLG zf=2TiWv|E_6;E4QWy2TY1Uh+-Qd?pki&j$^B^|^Q9f+S-b6k&oE3=TV=WtC7yMn0E zNNb`sBXK>;hnw+PBzn%8lWC{iXpkcNiCZK$cpF5cPxis&s$|C$>%-^z@978$eBBR?a8+0ZH6Ts8_ zPwO=Y>Q8EcuW={2E?K_~5Ov%~V;e@6~UYvCI;IeqIpz+GP?~f>E2j6#!zwXyp_}Ybm_IY{?Q4TzS zh=KIY&m*CQ1NpR{XH#cPR62G;PnOHB?C8wYoGaWL{?s-4k2x2akBTC?>kc`<@e++9%rl>vVKJEKr!AjIfBcRYmirY`W)P7Zk;Bks6&>9)ylc31 zuztuA$MjZw=a6R;o%%f)cmTUF7Q%76>($WcO?lH)-H6hZye z2Mr2Q@H;AK0u^%*d3qBy+h4lC_$Ms?Y4iO(*2V*^!&=podnWOh<22DLe9m*oMLE{; zS7yZhmqO%z>6=4E{f@*WHM^Vnrlcs>uw$6)Ly1y*_4Ro6@9!_)_Ays{-!kX;hmqy7 z;)9@ery{%wP`KHxAvmJmwi~Z|s7dqB>gQqSgyY3NAM3*9@4u{#Ug;=2XH8&6X)8Jk z&*i;AgW{1(=QAA(P@ttiV4ufydMD8tZ2chqR=kFonxC)HqQr4R3_v6j%9PavX3~A) z-)%mf+%Z68MtXju&&-3M#=jYjx&gz=Tw@*GIgXVcWoEWA7t#?ESQFz4GNJP3XWmWy zftH;Vf1iAY5I=_p=p7nS`B$7RN zN2AZk9TuTMYS2*q@;W%9rr$rn#ihvpk!IzG4|9o3S!URd-!A}ft{d~$Msu_e=%?WY!--@X_thjBTFj_BF!##V71=r>1Y?Nb{;;9gE}dI% zEN4tVRTbzAb<4VhcvT9VA}Z*m9z___!46EtWO}-DTr3*OgZ4nO`ME-aR##Nj4x@>X z=UP+qujXb4*z9QeH21>KbD4ag5DBOO)PFNcBFsZIzveLn{Y3!96FAZ% zea*oSw1cg(p}xkD@3wzOO5ehMH;pCUXFx8wQDcrGpV`I zyjXSWTWO8GdNBSSauGvwwtOPL#@Opff^f5D*3nMuRi4ARM?k4H9w0X&9)o`?6d1*R z$t9P#<)^DW<&Ut7EPpE8SCv-St~zCH?QOtr!h+b@7-aQ50lWgMQa7bCZ??QSAet^k zCJ2pHSjob7lrmfk3UEH`il!yZ-OnZmq1xElz+3xSMCl3omrLhr4v*{6`GJr;ADi-( z+Hq$MVSXjr!3V^jfYc<)*=@zyV}eetcwp)4kyd15%KGnQyWu?WpTO)-x4091q z0suc7DbP{)9UWrViN4FH@`X~b05Fr;?P;AOK%`rlP`JyK^6l??6c;b8%0o&rze1;c zbp}DcC$|sdIG?PB0JPU)*AZU9x8&FL`1QigH3naDIj6_vH0m|HDosxc{}b()Fdgmi zoV+p~Ti{#BdFGuotr{==n;YO>G5!)0HMkuKt!qaLs`A~sq>JE$ODPkpza=&ZAo8a` z6BN?Y{Vw6ywPakH^g$!l4^Fc-d#)}VA8_cOjb$GLuuA+zn`B6Hey$7#1+ z%PZL3s`9pGL?MnK7cD~V{#d^Um@wUv%ECy49F~so?(3CRByz|6P8y^!NIdn$bN z2txY&6`y~TLjbS?B8-R5KJf>3d?4<@lGHQ$f6--QKOP`~b%wMFS)Cvt$Th~i_V2_H zP{8NkyY!QojemCbd4ETR%+H^hQ=p%oct@PQVlrP`J2m`L3$81ECKrz;GT8}FQHv5y zqQg|${oX!@pb)MJeo0O-3ZZlaJ*YdfRc)uCA*3pT|C^lWY z=4VvzH?AFR|D@t+E1jg5q5nRGG9q%fqVcnq*QrVu9o`^;^MmxrZNbI&Vzsrp!dIR% ztmR_~oT~KDUjVviQy(+IyHL7loe;VRSa4ineV6`8glT!KUUFOe{@$I#M~tgx2>hnW zjN4)Q24zW&kR@Xd^~4 z=~B)KM^hHTZbE{Q?LSNv7Z)( zy6Ja_Ou%XMC0xBMmMDfyHAwfN@i3@T+%evVzJuPZs6~|@aLb=Eta?>ClfPs zr`t~XT(KQDF7Yj7DlUgMY@QyU?#;KxvA8(?J(@r3c+Fu2;2wtk%dBTTr*xQ z96LgYZ!Oy_p<3$Gvhtce2Uo8V?!N9(+MlkU^rz{v6Kv61Iv6*WJtDaeb5qctWIC)a zE*l{f%qMq4RU(9plS<8a?C=-`412VPO z67&jQ2B?Y~a%438sC-Dpq%R0G2|rTXD_q+5ivt-qQ6TJBUBl;=a3A;0(yA^@4-Llb5uDbkHzDr0XI4j3`e(?E&gFgqfz4@Dr#Z?GB>qCz`HP%&5x8$=~j$U=-oAdt?K2Y#mKISNGV z+WiB_UcT|*P>7aJ`Rw8I8J;c>wSA`bX7hVeKOikF`I?oAcOv%lzBBRWR6P7EhXhhv zhItEp5*^BW^z=}&7#OPaS$67wXo6OB+@CBwo@&_-1!U(vrlQk(Uav|@yr?mXf(Z4Q zf?Q(c^H_r>F@aIBz@50>+CLNQyi{2f)R`0&eRR2Gjy$>KybQ)F2}{_Z8fymv1GP!m z$#XcK7ZMhTeI%(kV$_xrH`YXEa6p5XE}iX-+BJ{%i!<-X+&St2f=;VucA#S9TTo{Q z0MGnqyeF<-lBWj+p5Ev51OYrr;ano}`Bo!YPpbwVAG&BDz#=z)qR7j% zaXxZmK62u$!)U|$EWo3EA52{Z6)T1w3MORhWYCIGK4+)@f45ed>Hr|{UlBX*E&Q{* zEB<{(*7Haw#s1s&m{z8L@c7m8wraCsNjkq9^aD~R8@Cjs$GPW1?y$b~ z&PR5`{46$1c$0bArc8(CIen_w0AoQSN`3%b*@2D4c&K5)QW^962<@S743sNgK7MQ( z%1zFg`D`|-m^zt%h66Mmf{%3>of|jb3EgnmKa;Un#J%!DZY`&OntpQ5-7*}B>UaAc z+!&@dJm=h7b&&kZKI|14Bqnuxvif=9@FG2wgD#YQdJfL&0K`Ptfjv>b^qvC{8`v6% zd=0*c&P_p&y>)$;h&GxTY^?JG(wOO-c8o;SUy!> z>!M-2@B5g~LE&BfBQ}h#jJj^W2GdTHsp2P=$07k5 zh9n^5hen(SjP>iS;fh3rPmCikWo(^Hdv9d0@fqrNBSo?&CQq(@qb;%U^YmBf(iv0w z%_3qDmGC<8^6J&cXkcMcJg~lQEpP);zKAKh?)SF>0luCtn*jLI#i?$7MFZQ!#^VP^ zrru!_`GLcCCtsAGyDF9;@pYnV^n1l8yMz6-!|^_WPgW|AL&?=EAq<9|Jz;5%0{81m zV14z^XK&|iZB2SD)LVfAVL=|UqA^Dzfq)oLGp4k{J!+Z?hY7r?Nlgw)UlyewBFI`7 zYV8qLucEx0f`&LB4p2Lj^>+MzXu{++6ypAy72u=aKmk<7vTRvbjYKlWpVWWPb$41D zadj6*Ye?7U%XX6g_!uWgy6;(%co4~pgqQ)zO*24r!nyJ_vmW%~hYkv2f`pMd?NwOl zIgKcsvqma=9x~7aMHmS4(ge0e6{;WTLD2e0d91WsN%cFi0_&eQZ1@>SurVbm+2zgs z&9l+h>#c_cpMJsJbD#(^J}U#rBBS#BIp|-x3U`+0=XSERyt;%T-2|IdMJ$R}E(r@` z56f6_#*Xue$v{AjXAqh9`|6ceD;zm-$I6(YTVs!11~S@evdcwT=kem)fA_gLV{$|Z zE=}x6^{19)DhYMLZtos&wx<|zF68qfgRo77I1#h7@=yx{bJ2#T% z{c@+=4*;Rlt4Q$T$Z2=eGhOks3q3Lr3+fE8vlA!_1gte0sOhcO8}_hJwz7@qv;QC_ zrd2i8bz>y%+{l{0d8w_%MO`X^k{egvO!;AS!#MCyGX+GR-oUdbhOMMrvlC_P&WJ7C zSQR_}D03_M8*OdSplaU<@|}NHjZ0z?We|{Xl55X=mWR(w_ACWuX2z(X&$aO@YB&#$8|Bkr?^MOVeo&h~?~z^=$eita zb#kR)I`d~pHMQ$=s2N2|v5o7FT*KG<;Eia{g9U(crKThc0z$QDw@7F^Kcy8dS3V%(3dw6Kk>E1_a_ zFI)C++_O(mV?6__v9&sr&FgUpDB3%Xb7b-jp4{t?3z#iJc6^mjI~!lCdN^<*07LqR zs_!i(;@9iOzEX8wu!xLhkp0SBJDc2bQKKNTo$+OTWlw&xobT<7*YDX=MuU8+Z2gBy zN={mStO0~x@_W0UJY?(5!fPFu4OivCQu-e?>8w;h8{egY8dgo9_Pd&#X~u_t+y@ z@wsY9v@zAXK9(*S)=V#9Bic4|FApboK$6!oobFm1x+A+E;w-4o)4My0mR!(2h zEy}qMA%1ggA*sXLp)K++525<>)W+XRdL!fBA780`oh>|?zITc4Ox|G%vV5#5u$m54 z#%^Kw>mnhH#W0LZlxKLteHo=zO{UIeX5Gy1rm?PWk^*thP$x74z)2M*IlPufn>(wT8(UMF?O&cCuV z4`J^sk;^{DudGUq&k}8Dn*RCDoo{LYC!J_i8pF^BeTT@5mD|4R(@h1o}s zTs}VYFj}?y;|`z>L}M@(0P#>Q6ruC^WbBUVsv>7=Xg)T8ON>!-j=nH9P+GG$*wq7zXk zw#!LnL)0tKErOSuHdEv_=4sBxaR?m2sX_VWeD#T{cxgxSim! zX;VmzLl(pAOytjy7pyW*KCEAm{@T$X$wqVUdO;F&v+u*(lMh_Cx0h$QYrU>uF&$xG z^`+l6Qx3{?l2PfMt`+QNo{(jW6FkXcXlUqyNVUH^kwt{igpog$@n9DfmPG>p`+eyJ z1zaDeW8V1Q$*ybULlP(*X2BCb?5sGz^CQ8yyXPQ3e8oAhXT=A`_3pD2(G#FkUUyp2 z7#049moXi>*svsk#tYOKHn(TA6-ky#?sl7Sm@){7m`rY~_}9zb)14^rb{Oq_^Qo$8 zkdOL;Y+m2=^W^^OlRb|Kj(dzMnoM%oL5F_2LRm_4jS*qwHc9LrV<+)wmG_v1mUI7Fg+IIpsi=5UjX*AlBqh63#)3RHIztfmGL2QoacQP zCns`+oQ)X`^w*WIC$eVg4ZR(4b%HJ9jr`pi#IqZ0GC0?2wNbzq0E0tyV3v*{i6VgY z%nb&98r*k2^0GX+qzs|)j9au2fE3FEE=4c!7ja9Q@a)QJ+>gTmO#zMRfw-|6744S> zM?G`o&Iv8tRpn|kQ>(#U+}?vBy0r?}ICs_*V~L`w8Rt)vJPoHIQUYcNSk5)D{e*|R z?aZL^&;MrP+#Ez!dh3r2>Ws|4z1CIn{^RRx@>vslq%dht&|wx6z)N0Cpr%HtmA=*> zhq-!mUmoD7<~cbrs)Po$hC5{!7mAprm3_&Z^RqepcH~jBWL_IS_nU0BjEl)pg;5W$ zx;?JBQ**u`mynF=$@;WTv$u>Rr%R>F{X3|oO)#Zyy{Y-0WDKB4GLvNW>uxa^(&q=& zjj9FK2_ucc|Avt;|Bz@E3Ek)f8`JqofDS;hn!l{7xiudiWy|=#p`KafIu1(~C8JG2 zG*DXR>=cGds37JjMB2r^xcz&fblY>^>cM)3$n;aO@skS=Lr&k6l#D` z+ zBiAc={T%jXvn%Gmd`gnIYhM@e0cL@m?l(*3P*RmX-Rw8g-W%m5gZ%!?$4UR}JAeL- zEx!|=mnWl7;If$}u>3pJ^9U0_B@Jb~wYZ<+S2jrnK*2wE=J8KokFj%C0qJSAQB+F; z+2$W9u8J;vL{rS|&06b>Oyc6v=d&R_8O}8B6YgRXRW~=Q81wvZC^sI@=(9uG0HMV+ z+kt+U}fD5iy}fSXO(ZWKO(HvM0>*8ad!i;>H)54s@-FD5D;@R;UTsph_i(!;KX)U!v&|E^}Ol;$x_wNSC;bE2<(!eg_HRXMPL zn2~6l!@`F*O*(9gPbo5xpINdCj&jN|z^EgG79!s_nS{psP9p#w39$eth#YiC`vA~J z|HH)d>Mvnt9wgFEP*sAlVdZeQ)xNp>y3nzMTeB9kq)!&(jYu{fKdlDs4^N!uSv<8z z%{&>IF#{m`vqCFUNAHT&PAYpcyM(K2&lc96{t1~j*TV=( ziU>wNc;KbKVJb=Nwb@vH;{QkB&9V-KWdF1d^*{0nn_L8ygmCK>$P9Uc6v4`#`M?^% zYj_JXZJu&BuHuv3s_XGt37$$jv!4Y)2waY>aYwkp!7Ft_lo&#HB&LwKg^X;;3$Ej6 zce#3pKC!NFQsMi17(R(a4c_t@qUXgCW_9Q&_~z*|U4PThc#%JbEBWLn@HDzT<8yA^ zw)M+<(}_o_>mC-TZ)m^^n}Y)Wthqfi_Ko&?Rr?vb2`~ji#^9(zJ|YH!uKiIw1}Giw zYnl!bF_bCV4|-&+bk8v5tAkeAVieqVD@?sdtwuCHE9Qj3e4QCcy**3cY#MRD$v9!p zUH86T(W+n9>ua7u^(k?z4JUl&IjCQKl94vhio)dO&!>Bo1S*?P9zy* z;{3E`X5y@+Kj_uq6q(l(|8uT%a`2($-@v={E*Iv(alj-so<*C!EBne#BewyRh zu&YhY1$5YRqPV>J(mt)4Z_0R)0n0O4xfn=xNr9j4F$Zy^Jirs4@3nrqquQI|8l(AO z+R-5(1J;ddWAXOKblaaIi0=#z7)-u)J&Q~eNGdSp#n)&TlqoP@xGMCZh?a0kaXsZO zk&j>;tpg=9Fr4wayq);j#QXCCUr^LD*M|!~{B4e%=9CWJX~!=-ATyM(MvTp2-rhaK z>VN+O=le==U3PP>=PgnSrdSan4V@@$M;@Wzj_{fsT(f$Z+{*HbBtS+->R^XFf9}vg zYP_NCqrO1=m-sO0-?N{HU)p_((%a1tz+^oP2m$>u-V^#kvtW@P)LsJ+0?06|QqsdY)6t zHq1k2SR*_+m*=vi)_V#1b5bvQOYK*eacjhP85`PBr|neP=8Lzo2hk&a&XZimhx!X=Ud-2n2;wm4@e_Y6utoE}h|a>XUw{YiOYE63FV zC}pj3#EO?la4>mR1j?r-U+ynZ$V%Z&Py$;?3;`SErCr&a5=wB}3^Qku^_+^iK_!_p zrDjleJfJPDAw|7NYT0*Gqg9ztIL81W5kl~%yE9=wQ?6j&U_jYnHJA3`^A`x+>u)uI zo?xx=SAefdxo-@uefr3vju(Ya7Nz5k2owRX4kxcYRAm$rlhn{$mS5S27=G~bnJ5%$ zwhh0dGBLIg=xF1FK=$no#qD~z-Fok@`=5Kx)$6UASj3#WUvl*Ls!!pFU5)zTt3sQT z*OwJzLRrU}JU-b>Ooa2{Y8hsgejWT$xk>RO+@g~_wR((2Ly2IDxN%<61;K~(Es++b zL>JA44fH#lhm;0olCYIDIIKc%LB z6)Rg$WbZJWP)^;k6HOheb0vs9cuxzdA+QY^HZ;rtkIBdE>d2FZSCJqc173ypaZ7{C zFDAS3ljHzTtB;x$g?-4b)ZlfR;sm|~PxbZA^ zSgf0!)6gk&TYGo=<5cn37*}j~*3YwJ(mWEy7YjX79t z*p<;#qmG7MqYh|;HN`NUM-pP>&2|b1Wb1;meVDPN3|P8xftsMbQ_n+#5m39Z*Dx1P zNw`je%xF98z6=>3OtoSHS#xKNYU(O#D=X=M;==7aV^i8Z$H{$-)&PRjRt*Z^{p8WLC-PoZn572S8B#_vi0WwhC^K*g4QA!LPxnqe{De-#-UpFrw+_@qLbe?6)oMAj1 zQ=L21dAJM++%r-;ssYdP{e9p`vFMn69~C@5xy{uRv7)f&i>D7la0t8>^cb>k85a2V za?t25y=!=ysGqorUWL`}=)#}tyMMA--!5*-^mESHXgum5Xy*^DI$K1}OB>79(q2_E z|9QroZ^MGWN3#;jW_aKzbfy?|tGGXjCUQh$Vsdb@EeDhV*ZH0B1rY&MOz??umFC@8 zV&}eKB}1{Azj|w7ra6nl!i-$Q3506su|4CZXBiBPaPCE0&~Y%KJ*%Hj6k5F5=r$Pp z1rH2tGggj?E97_0*gC604oru3;c>;z2ypk|yZb>)X$KTFj=M`HC;f~^5@}DoK~9Pp zaw_2o+@V)Q{_MDsO zD%3ld)MC^q#@ecSe1$jG{iNz_-R)1UOeDQH4SlGy&$Lyf+6B_xnecd*_c74zbEOEs zlEW~=YulNHhB}?6#N+)HMm}j3at!7WF{>@g%5)6P-&46Zi~Hb7D&f_`?=|a{{$Ujg zqG#M*V+(%AaMtpNoW)J9Qr9Z~+Be6kyiB%0*2j17C5k-20sPak zlkbfg-ZlUTI?k2xC2yDku(;uo7r+X~1;-a18%81kGqlxu8szt$i zH+Ftqv^dw*)j>7Wq3q2oeU#bKKhU@V(@=HqyB6Qb=qXO7RcC!``D2MM?rqujvif+= zpF69JejyUc*=fqnt@xI8(p)V$s_u82eJ-l{j1ZZ%J3zK^g2G9mD`Znm zC2x5UIKy>H6sXa+spgV8+2rXiklbZN-#ieCxG34-=9QEK|dXin-MZ)Hc)OZ+E)pTK^kEI7PZWruD;bM^gd+x~y- zP7zi$B~whR)fcAF|8mt7sRJdABAOW;=J(HqiHJ-g4D|pn?}_9Ll{T>VJp7VlO^6PM zQ_4T`dyd^|O$kDVvybRV7g^=V*iA2eyT;6vgjcr<;{h(XWwl>gEEbCN)(YQAcXAAy z2-oy5&+>=Tva>h$_{kzZav<9tG*I~rZn6sj;tYEOPler;;2m1aSz(xPC*nte9CX)n z@Sp-YEgq8&vAiJ12s=A}iwG#5sTO6GY>MwT9!r0(=}wvXTK9-zOORpq_kKvCBr^`T z{dA|&?mgG+pJ;-y)HzKw9_C2{MXg?6ygaoCp>sGkvk0Jy_+(s5nZ&QH^-kKb(K1gX z+h?G@Lz)QJFz*^$*XKBf*h1OO^kNhL*dtlS&xMqosLj`~eOG=6tQqeJcN5d0-WSJc z8tdp$3M%1-etlSfa7lzGX!NR>-Tn@I_9Hb==}Kqr)_sY0LJPZeyQ3Yu6lp zO)?Q-$Jr4cjd7={Nndg0zijdC(BtFdB;zE3`0SINHx|X+u{tE4P5%}&m|LF?TzeNN zd~;h>9=>4`ry3(qR=W`x4Cpw72f@Ae7s7%dFL{HLvC`{fr<;2PH4-!>r}s0d;9+2w z=FtHRPcx%^ofptKZpQcF7Bogil>SE2^G-x_A_Khx(d5A`NY}B&vhgdZP?K}Wd#g10 zZrk>Gj)d)+$Apda(Z9D_EQ&F=gI;f9Mvzy!A5}Tbrklb)o?-DcJ#(4URDmn5=f&1< zHXJ_ZyM!%Q5v?VIA)+n6;OIqTB7;LgdXT8(mVxlqx|O@75I~IoKbp?ME2_8u+V=!7 zl0!EP-O@-X3^24H-6bKZlqgCK4T>}h1|^LGA}KYL0*Zv7h;&FODV@Lbectu1HUGez znRCZy?|tp=!wQGaihs^TZX}qYY9sL5=W2lss`f0%d92<5@!1F1&WS z^i^r|YQLrBLo7Cx^pNM3&msWJirR=oKT^Do3K~X&B|w>&dKhpScY1ER*>?1s>K=bo zM}O^uJw&MM(FaXKtuvL2C1?LiT(IR?fE(#02@CkuvN*`Dl!Cdq$)2i06@^Y$0TKDp z6RtUTqzK;8*D9k?gWW&X>Cs+$Pgz zSM+f9p#&H0C4WEeB4pD@Z;f<)$t}rZRXyx3Vwbz=H(7+>${x`%;?p=<J9~Hd$W|@$kp?7n$eN~ zOLIFj&Xqqup6(rwP@JtU_r3Jm%{ra(1q4pd-YDUSkkOk%s?TiM1|lu{D0>}WBtT*X z9UYOh4~Fa(4#7Q^khxw{%^UC9Oy3EA`?P=F{|yOGOy>*-L+{!% zRt%Ud&X21u6s>G*Ufd}(+ECQi#md7AFMXwEUP&j~QyewEAbgt5u&Z~wP~eelilxKH0C`NzyOO{*HW*Vv zKxnMqi44FanKX#S0V_91d+tWH_o!K7S(-n5dFH0mz>{1Y zX;4-&4D`;uz`+ZDs|+fUQcE;a%)4j`WAWg^0Ais4c|t1riby=@TgzeoG%;Q zpSee}ue^&#AJ`tLF6$H#U}!;e-Y)L|56@ePSEdiG%1l34@vPcL%@{oimg=*irtVZB z3EXwc++QG<+Wvt^|WOvWZRiIS4A z)v!1LaC1Q?6MVFXk5C}(z2k{WN#4nBQrkW@WVlPg8-vgp>Yyquy`zrBZdQ!JX~lSD zXwui9>uMpag%jZY)Q1tkS77D8S;sLYyT6w|4BK`*ldD|Set0;2)$5iYD0~9VqoZBJ z+plwRuHuZg49_J?Nu2_o)21G8+)|^XI~th{Ht4maBl>wvkL)xhzRFa=vb?r@ph9ya z0+Rm$oD@hDS}kq;c+^1n{@t8eYosP1vqt<^%|JD~CNAEciW+7__vJG(+jkbF{RkA~ z^^%D!##|di=;o+nGD6R7`NINGNV+lj;E(Sl_hwb=Vdy$-EyGrv)6LTDlrkRJl*|88gR z$csWL{xiZ)=)4}e^HM{JwiC9Z1)lD`S`U|c)kOC2HoHYV`46oqis~+)TL8L}0QsE@ z0SsPnD`MRj!i_8eaY)3NB#z<1?twgfnDE>ueZrSwxjWwk->BAxv6=PLl0VN!y$`1UT(PR=+kU3o)0wZv zWM5BRl}^#VG-%Q>G9!|72B#3Nj3Qes<+H{T!}R+M`B57BF$?qC>s8oXjJB9r-tTBF ziBl(W)})B&gKhGaXC#kyuT+G=P$|gFFqgzIoXxd+TlZ^))+zdlUYGvlqaVt*^)29Q z)1n6`$-flOZPz|gX#vgokoJ5|=!|(Eazp(ZePbXBf|4VAFHRvY*4f*iPZ)lqUbL$l zCJTb}_WjogK#7R3H9o{+n35tB%bvn`J}0a95S)oiK6O&1Kr}DWuTlNcVsqo;*@4u8 zR!&6!=CJamLu7~h-#WHid8ocQG!@MJp+!P-?bk6ep**qbtEOWswPu=Ro~bNpe3QI> z>~|jTo-J=)k_eTog$z$68n|x6O#M{>`^9 zXVTi+<6+$=@qX}0tnO6o+sg)48Y@On8(q>>b z>0a!08UblkBykNUc!X_{`-%3;PA-fqx{Sf4$lTaiOp;A^|66T(>GYS{H5l??Oxo-} zxuMi{aR5d|1ldj3+RqyHjG=zux5m=yb%ex6E}gpsGB`_Q8_l@owgu;ZeKk0Gs00Gn$|^{H*@NNDpUG=Tw*hRZft$;` z#eMFdWXya!O4)-vARPuQsT`VbO;1e|gS-06F<(jtzJ~~`x9Zz(NIhQJhJmBAw5lPJ zIW4As1!|q>D4c$EyTz?!Rh0&gSb4!m5lsbo8rRT+il6)zjaW>B$P3r~O+C9<-QS9f zHIQ-Tr)Nv%%-I~%*5E1zYhX!-adLrPMdapPCJ)Xjh#!dyZ-fDH~wI6O$O#4igqg+02wLWCVLEBGx0LM=pN z=NxZigj$}SkQ$DNxVBEl88I{j^Zok%*3<3Yy_yj?&+r^2!1r*Q>)pu;y+d+cDalUZ z$(vx6k^pL$j9(51u*A zdo_DFQ2XJk95rAL%(;HPBig|J@s|7>`JEwW48NaAU65b8s>y+v`juyC3AB6<57$pX(v=WmO4YaQWnQs#8N=(L|9 z+z@8bPFAkVz|x{=#*40UuMeL?rz&rc!VpYk(dDRWOmQThlJ^wfl{%2hl$^Z%kmHBe za#>T}mQekyD38V$k*Z1Nlt9UYk;2te_49Ld8$rFiMn1My?-q?cz_vZ%H~roi_=jP! zvo9zS7Z=O|f&dnRb))d)&1%^jai9OUxO#;!gAhv4xWEH|``r;h2<8kyzZDmG-z-Ht zAa4EsU9xZ6;AN%F%O;~dj>*~tCTNMea!eb1b2aDYR=zXM&q2M+osdFC%#f>bo;BOdZ0|c(>Zm= z;{Ma8*Lz^78qu5laclXy?3?M0f4&-N`X}uY6!@9N$hnv)|cxbQ_N!s|v+KsPY{#Kr@ zS)eZoEJ)JOu0iaB$?C@LON@?aSc(h*qUD5jEt4PLC#QxLn2x@FTECh=OApyws-;vo zbq>Stg^EvnjR)@cvtJ}9%+SJ^)WOz(GgR1B7=r%B^@?W6@y56j7GL0mW#x@wA43d3 zeea8`osqme!JpcczH3?{Q&LlW`8;azh^auHx@5}Ky6n+xr zU%7xO^+Ur@0Na9C zUAnOP=6&0qMy6eZdkP@ghMifXaVIS|v28mkV3!yeins>X1#lapHl`Xy+1)<~O7rjQX`hBJ>c zqG`!@=3!QhkX&~tnbX(|SsVfCmTnss=nm4>MLqu1&EllTL-Oi@Q{J5lLUaRN;SKn<(`$t z%&8)=5P$}9grW0HsA2Jf*WRVWfuU9K!D*MfbQ8Mn^+TE4&yAcN22OICuZ!)u-uc|n zC?p<$X!HMj|0y|%z>i-fg}igby(8*5Wbd?*dj5Q>kUQjbK*L`CnN-hx!Y1w36fw#t zMP<6sF{DeVxy-D_qSL)MokP2#{5^-t-}2mx+a2`s`v(86JETC2{W$pAUE=WzJWLp5ITok9rI%IZBE3wig};k0BnFqxc2tFUz9jQ; z8(wWYqd%m%0wGG!{`4c$D3W1@+etzjhRKbahU9c5s%L`!o>Q85#5*7HvRB4W*X`TG z?5?UBOf4+NcB}ZW@)8Z*{VgSui-tM2F;Wuv?j%MO%PrxLwwY=P(CKY%a*(GVs8@Q- z1HuD9@Er9n3sS7a>8F1^N#Y}NoFN5xT|nHlKmr7Q`av5%mMxAL)2B`h%U4x4+Ek#>Ny$GB zSI03rnwy(*b6qNcwz1S#|LX4X>AWsCrND^TKG8QX(h^lA4~c*+T(ygB_2w3PvqcMq zu|_(p>Fc`&XTHQWO69A~ejZln51=M3fXK}RdzHNJ2h>6l`gD3_<9@7_w$qLOhP8G+ zm>dWK!tj+o zlZHl1pI3@t>rJRIw2qn@s->3`*!0D`Ub#@`aZx6SPLYl3qAY(Gtb9tHNOj|ep7Cya`aq0tAbIuzPr zG(tDO#6)&iXFbO3@-}uVJ{Eb|zvvk#IOy|woI4z7xJ}b_IlV^pR}^}MZZ2GaFOsbG?e%jv_zmnXJTfH( zMH(Z6jR{jze&AU#;EGZw4`c76cq0{m} zB3CnI|6QqjK_-m~PJD@P8V>o_XD%dOpPgVEkoLG4>UQ81^`0jk1cgz z=znw$>sR3ta%~eg5MXI@hgLcFE*LV095u3j;z_>)(paRY0l%?!6zxf zghBigC$#BieNH3Bii6krsz=6^!iQN(3)EF1FPZ9G)648_T#ZFjltVIC)VRb>*Gr-o z9%$vfR&h}fb<8ub=y_`{yJlu%RP+L8Rc0cs450=Yuz)o18!n7jV+$UF|92N11pnKr zsYh5|id6PRE;eGw!cOY{=%G}aHV;u;r&F1`Vq_VEPo(ejkrMW%zcJs56rM<4n4b11 zC1>ISLwrP-t57bXNs)~jf3>|wr=VCV7CP(X&hWlksq~|P4gK{^rmudG~?_Z>J-?vCOx06FTHf9i{h}zl$Tu4*_rYEwE?k<5j}CU zG?$zGOiCKMcOSh(yGGqoWetwVPf2iiXTdlwo+4Ln#LicS7dFDPPzYfh4aH=~!?W4s zX`IjF8}bY1064BpoC1}>X{3&)ABXgPl(d^%XMVP|wX{6``SY0`#iz9}mV~buHvH7B zO(_EpsqF(E@X!i{hr^Glf#g>v|D-?JAJ)@RSV~Yx8^Ij_(3zw4PYT}ZK$eOxK2P@t zTbL}ayeQ%j!siSy++~p74weT*Am}NF#>KO%t`6FQ;;c}eDEn=7R8+5P^tJSk`f-YY zZ-!=$g`Rm!#y{$p8d*!;+7AlA&@CUzA)R0R1e(tzt63jfJ)gtb^NhgzWo8|Z&NrIxh`=qM0X-&P)Uhqibv@vI#%nLf<&e_V?4A= z@PcKJUTI35#<8cKwuh&OIpDzg;ehxeHUW+_0Enf1uL(VNJ!hZ9^TG2hCMGw@${YGCU(7cZt{S zpG~^Vp4wL2uu!ywp3OYJAYY^!n!G=<=@u~WE+krHl0YBA;H2@~+8LPS9DmXMwS|Hb zsW1Czg1!cR!sYKYw!^F(iIY3zIxwlE$GT#z%s2u|Y|XtIZdZ);U$$>?|MXVM5eEZx zb1C58&_&)xpePJb<5RTyVUX*HrdihNzdg=0uxWH`il+DqS$2R=UJVg&+z|(a_vCjw z$^aUAOg85Oakn=Y0v_11@C3n(j3GiamAjA7wkQlwTGjcz$fYaBx82^6ScH=BH>4h6X8{o+bf#(C#Suw-!uA8$k_x3M&41U8T zb(NjI?62wY{BU$RY-1#07BK1R?LGy7$^O?&Zte`rmD~Hj?RDe6 zXS%O)UJOc|@UM#;U0i{jqoNkFOxfB!KxD5i4P##N=Gf$z0g-G_l$dfY6}FaT)r$Tw zN$vq#lB1Tk5{Pc0W}Tzx{_{`q*QC8grJRb7+voN`sHdj|@AU)eLYF+}0OKNMkz^vJ zN3f3~-43{&ua`afmA69DeT^2e=$XMV*!0C&vGBKHCG9ZBJC#@l#f`qOd|;BTPLwp#5EQ1z8v1y-!PJ!h!>{!+`HeNr zBCqv@>BdarBsP#Ys#AEg2XiYsG(`KalQ)z(-Lk{+!GT1PH!IcQ+XNU;0np_Fh`N0U z))CPCeS6~OQq>H`O>8b)GE~?Y%-p+5?%!psieA(&a@5?nJLgWnP@H}63hyKT@j8Oc z=^fXt&6>LMIyzF#g6rsmvftZFPaj^PR8kSD6(4?jutIZCY9W2VLr&Q4Dz=(c5k@K@S6 zy61e^^NEee>ULj^S4Ad zXqwD*XXW+l*Vfg&1W+BKzk3mW{LQ`>&p<<*-&-k%m`u zabd$RXUjs)p3H!!g3e(RP9jckX16EztV##7&YMxgpzzn_bS zkniwAJ!|aa?V$oRVwI|tjGMn(vxIslub2GswzY#eW(%GqY8n{bep0BswuMw~tSYUf z7P_PJHfHU)SS4%P<}sztnvyGL_<5he#ooUtn*eew0fhi(igpskSAJ9D-w}a~C%9N) z(ATAlbcDvPxiEl!9q`KkIudjH7g0v7;C3`(cCUyV?)zoIih~)gFqe3O!eV;>s}Np` z?J-4p@1?38ma9WtXk#HXb=i(xLsN?AZ5gjW*`+9s72?I39^IHyyl*dMN3!#|P|v6E z1^OY2QVbsBj${%Q{mbfAl5S8E_+4XPG^75#DDEq4|Le%~T-J@hoO)y6p$JO5dh-`$ zI3FLHpT%+T2~1&(L_T6hDA6;Hkb46}3$Mas{vnV%kDBpk0~BY@`ITTao-cXE!U z2oC2`A4<*BK1Q|rHx!cW;pN^6#ZQ#>zd^r^x_p3g2EpyAS|L%9O`({=26>mmwk9!96PoI%t zdxAG|k=98+PYhKt^p3@sk>$_9M_RLeKTpK2TLi_=hb?pH+bkvrQh`7!l z%1nrS3eM2vkM_#UgGf=5hJOtqV5AlLov zYu)RCE?BF_3KCcsu>)C5q1r%|0W)IM_q_N7}VB;Y0`su?JrX72D(5sCxXn7 zMVu1Oo>aPV?+MSe)|S@*_l zP#*Vq>~FeJ$hP+<|{ zWB9)qJ>6`7=AVb5p>}fL?pTzMm6zSJVhoQ!oy;Xl5tyYpP(%>Y=FMDl_a>$JhUYIMt4kEuG zC1(hPBhmCNl`7|unSbjHBX*rFZcUZ;@vxz{{uqmi#sm6GV4?F(){bHD$yivnwc zU%_s1`nbg9<8Ftw_FkGroAm`qXetLRUTL_%EAyzb`O zpJR*#etzp{Kq7}?gN+LJJ*NiFY%aROQzc5SYWnA~wm!Z#DNXZ3^(#j5R+6OLlBMw7 z5k~EQw$+*rm@}TIU6xeA!bCD{a8C|2$^jo*DJl;sXmk&>Elj{Jd)tYece~Qc_ZiLT zRm#ymyFXjg)t)7$HO=iu13tW&a%uO^v}L9-aBN&~dISl;GaFI@NcAo%?^p}}0`P5v zK8+;myBun7Q{Gl1`H3WS!0cq}g|(1|$&x{<=~FuF(=rY7i_a<7T<4#SUAVyTTu)2~ zck7gyDD#62!qT6F-k2PUA9)jV?AC42%l?>ejWSn&e5JZ5drDlD;W`)D$I55-(pNd~ z;yo}aQ?#uEO~PDf;8ym;Y_vUZWt2`@_n$wNrk7don%nj@eRUc{6Xn@TBqO1eyM%V| z;|_ExFh&#-9pgF*bDz>vhd2%ONegCV zSUdQy^q83}YgiSjBrzDdC_OQEmB%iYFc>$;o2e zz5n3yr+`+ijbvpsWf*Jl?#Z>vVX^%Noyf@o-mU$Zm{l7%SY*|tKqj(4s2vVU!ZR55 zD~!pBbk-&?sf!x=zKzK?8NN{R@wq;6&%m>%PvtbNF!MHN^Hsr;z|lj;OjlCmqOyE9 z9vCjYn+>Ta|0kae2z!nik_x;8o~G(gr(B2!H;-7#SU|)MP4 zBJ7U+rg)G0>`xD1zPBA-Gi`{k?8{2siRWXw3! zVSfAU8eiSjA8Yr&+|1=JJ5+KlxN$K*c(HrG{jf(|EgPB$oMXS~k~)^Bw?K>G}x>cF# zPS9KM|HQb=TnRpF+{nqT#S2^`;?ydOGB?iWvK}(qy{dexw8?PHmS?Y>>)ub1*=IBM4 zm^`HP|JQ`3=%H7EC=+xokU-UjIQIC7(EDTRU6QhQT`$%u#mGO<}jYu2kF=T0k%uLAH`cE*R{!|p8jsMyIijsjzOL`K za7y?CJm(HEdn^i@0)Ki*Wfg(R{`$mkAt^!qpayald9rL2l1Xl_N|VWToq+e|=B9Ir8rGny z@7z5LH4j_Vv$uV zYYcvWv%JyXL2GRq-IlOmti>OAr6=)9k#i%=p8s4~XQ-L^V>>f95=F9Vwc#U75|YAF z+`6P-hPdH9eZuXtU@eBBJ;Y0h^yB?sj+CfqEG(Lc*6YAlZhS7^^?2G?pIneLBewS@ zbh0_{&v)%!L^1=|>fkW11>GX&b?4FI)Og+$*e7zJZ72Aum5Lb3-m+lo^65>Wx?O=t zMD<~)XX3*;;Wt~4YK&yxw`wdG{Lom=cUXgvcbm!vxw`_WBM*qn^@1#+AkUoyOC8YAE6lk+UKuauf(98uQSO9WB?b4Ke$?ogzYhoyZmxWK8%pMk z=pWb3kQi-UWx5n7mv&B5LJMW|;&B6Tr%i>;~n%k0I8N3T{y2y`GQWn`a_> z!n;ZXL#MvY_d+CMpm}>1K*C8d*N*`{Y9X~rylo%1gTn7SY(1(z)>1iBZof1W*lt8R zk4{H|a)7@#Hr`ksYOYT~4gR>>P!PzhsUUjInetiOS3`4^xZa34rY^2>lAy&;aXOSh?W9P&q6wl^`B4=se=Rezf zEH1bEmC`j@*G!*BDSdT=*=-oYm_;*YQ;83eTppTctleIQMLw>{`}2&fztdoZY$0Xh z%=xX~iZZIK0QhJTJ@{`_c>F@Mz zJCl$f{Thb2d#AT3rs3ynw$cWL>3rpfv_aJ$XTEELs(045Bp4q}dGZhPtKAd#-Wyce zZ0j`q^!mkX{iXb|esIIVQ29lQbQxLNY(N9#W~6?@Na*;ly2;|X{^5fw-2L%Gjsg~7YT^bo} z$x3+)afHG6$VnN$yR`niAzAJ-tF?2wMQ2Ll?URN)7)lu$MhGghf0+ z7pxe%5k5fXLEM_jv)Dtw8<|u!=d=Tm)$JwqBxoJvl)uN#K^GsX#zf~xz(kMac{!Qs zxkeO~13pz+S?7L|o`;QUm+~trzIHYJu?tj>MR7m^Gn)0d&w>hyPD9~=^tJx5w_f{R z633BQDgF%Hjxto7cvHOhEqh$FI{_on&2cg}>58uF6CNZ&n=*-LK;HHUI`V3w6v=VT z`TG~C>F957m0s?!e?6`L+rtUY(r>etv6mz6UALYJ{Wrk*H!)Ii76k($za`R6o}ut7 zUF~ux`t62oB48g5+ZMtBeg01yAzh=0khYIUNRc!PeqE>G8m~j7<;hdl+|-;AG}74` zsq_qy7i0{9!(+b|hJ6$XD0h%6WvH&V-yf^}`#v#Em8SsvO@2|w4D58U&_hjQI3tNI zq&&len?!zwM#{baTGH@8^n|!By*9iYUlT?N|Cnz*D|E#Ym$9MvdP9Tb{F%Sa>sur$ zj{ufGT!*N45!1xoM|%mZJS#{%4c+C1<8^R3@GNgA1K~SRee9-c`T1oeIqy;UPXJf= zu|UEzQ{Hn)`Gh_wjTEIDS@VuXO&^WLm?5~It3AXABMkF|xb8Zsw&+BI9N-%L;5l9} z!nMbxUfLyQRbANx;W)!j{Y0nX6y9;^x1u{z^k2G@ zG&at^dW)Vbi|>}8j!@VSP@^f_mS9ygu=Mg{eknkM@6Y46#unm@I|MM8EV3s=AkU|2 zXwc$NU*zRK#?$ZgjZ|I)CdpCjE7|rho=g2f!{RPKl7(WYne8|jFPw0DY8eC#XK>&E z5}A0sKm`NFAOq%Er=0L#^0t)d`&U!uFN|hSTR#ry^I_w6w3Qfv<7n{Szn8fnfAA#&rPFyQSQ{hh+2qPD)TDG?EeHr1tknDN^m>E7`np_bLJN+oofu$B;*)*uo+d zz+&tP|7!dFS_Pz>^6JEjG9N%`^(X!223W<`{X*gE$oQD{M2 zhplne2IRd7`KoZldd9sL1^B}s#eeFu)jmEf_r_0{h5b+m>*e>)sm~sasp9KC)GAsS zRSJ{Gw z2>@Y!z9nwJS|0o`?1(}tsP8Hs~!iWj|YQpj?0MTND1_VpYqsVzl z%rqQMUU=OX4cich_uP~yMDlV=#FHj=tL^6n%Iao;amRdiQ%OXg2DeRu={{-oZ&+Z4 zh$%dtfndnV<2Tnv3V7iu7SR2dn9?LlhF~Z@E*37jO#c&H3yaHz`QlitoQ7@j%LSyX|+6Hs}K z5S6wOB}}`oYJ@%mykZI-b=PtC-CdKbBsGX^)DFNEW= zO0_8xwc{R;A}81G%@LZJA6>g8^C%K(Tjjm-xl>yP!OMrns%ld#{#KKfWSmzwq>Z*L zJ-HL5EJ{g2)7uF>}D{ZZdCfxCwu78~GU8jR$RAq0lCduCN67 z5tZMXDxIPBW+LaWDeo8yD0C855v3-~~ZV#1mDkqV$_vEPvXtaNerC$TPr zv5=()Ub1kH@9RXpwU0{MH*ZGWNS<#F#{t(lE;ZiO(HIyRux@(mW%b63iD>lAK1%g9 zCMzBBlgz^q70Kom9ThEKYDnWU7&i(d3OrUT<(LhG(#EsISC>Qhr?$0MiSlb={voR$ zY1B{WCr|UuA1SOc-4DqK-B5a^1pV(1h98ITyN$WD2MF!QeFHQs-wR+vB(Mb(1caoB z#KJ+ZGbs%BB52C;nkq!%z*dnF~{rx4=zi)E;j05`^}zv%c8 zOjT9?Z)`JAs~v3}r|crz62rfTEYDA_Y_nbLX)}$X$e=z~shSTH>7Fp+pRup49hZYY zpFnwpgu10Gp~Lw)N5W-zssXo?6CJ12Am7W;hduW!`-ye_jSgKelcN9evMV-A8-&r2 z87pf$Smq5du1K0vKr7!E0!}K^AEjJ~AWmLJ!e(}*+XmVnn-r70A)Xbc7q2Oi8Jcmr z8T`3`!tqyd!^U*02)&egXd8!zo(S$C#E2k zUhzq*%pehmNaQnIu|4lgmr{ z-#4DQx3K{>9IQo9{fQnu;Tyna<;E%+#^Y%z0RBKRP;ZjFiUBx|J8xKqw2$gM{%k#- zPT9-ESg&28T21o`Y%^i?4NurVQqCd&T8hT^co+u3BypE zAGa|80`$pp9iQVy)=rXuqr%*O|GB;~#9T{w9E_hH@KywVxmhyQ6}zHNN;rVw$wV$J zR?jq$j;675sY+D65xQ=>)P8I(=_9H}l;kd0?FcrK2RG}qHZUnf%!de7w6WD;^Hs(q zP}C6ob^IRpQdH%$uh%Q4r;hhB(o~QB&P)Ck@!czbu-WyWHuZrSj}NtYC8hl8qk{h< zW7YVGVY-+3O@>_fAc%v^c3Vj+9Q|NUVfMw#F#s??2d8RU{E(XJ`9jIdo3zvlaFXik zof_4fN3TXhek5CR;br5UJT8Qmk8BL)ui&$1%$@gs-B3QljUaZISWxn1WII~TKW+lF z&Y{DDGUTD;K<16p8|AS7jxXvg5UUu90l1Iq8b**7;c;+&K_Uq+mE1=)k4(XJu1k=Q z)|QqVTtAD97 zMh#bwCfwG%JTW^^AT?h7ZY?9Q;l;q0`=tyk47L%e9`~rJrQ$TAM?2MiHvFRZ(JMt+ zGep+YXx;j5!~am1q>LuZHTIbfXM{HW^*BrKB{j8v3rre~%vK?BY0IE2!oa0%K@V9A zE#!D}ZcF8b7d}H5VOh*vihQx3LInd#L4=)FQARC5NPUXj)rPASd!X5LWC1)tV|tE)M?7aV-2xhU+sLH(KYwYAT3#ku!`E{_1|y^WbOyV@oN z_JJ?n8gCgY=f}+Hnq91$?-tYLbKwWUt!U%Rhu8SOZ~kj;r(#O!=|0f7n;0HP>zl>u zD+P@U+)_D@OBPNPVq5d}0*x8l`4#uP&evz=i=^AzcBX^h9;CkCh{E>~gQfM4QjDv{ z|8hi?Uo6{cRKyDcRl~aCfQ(TVJ<=9$h2QldNq5Ssx z!NhGmRs=f6w#oe!YBpQD+2-M5HKq=gicrIc8QtB}#C-h21i4~cS`_VpX-hQsiR~PAn#2~je>@^SNU1_c8a~yX<&_a z_dILD>um>HdX7#0s+`gBib1hNqFKwcI8#FMxPc&%FWbSx?d&e7q_W;=c2JKfz#-zY zvpBbCFR52ybSeWsAD-LBki}d6_Wq@Q8lmcwqO5qlo+5L7R|2=Jp~|;xsdX8smO0KP zZT=tLK$Ro<*akb{S@`o(NIhWpv;CSG)IM!fJmDe)TbBL6Y|u zLJbg-7NQz~#T7*-ACv40glV3@P|#R)t||cu9XcGUPLJcr$ez^I$zHj3ZM`hgw+p~t zlYwZV4OxRcF1Rl#z*?R`(ko5M@!slc(0Xk!^szm;=%Eif7s1>NxoPvbUNI>u|88~1cBLSRf8v;gld8XHx2o%Lv}$}5F-`uQ&$R-$ zQEioNb82>>-P-rtf$uyRA1<$JRaDd)GK8FeROr9owgWlL1s~CDmh_iD&t%r>A5R?Y zqOz==7R55yW*B#11pfMa+?)u{Y3uOPCKEJU(;^=CsxQGsC#{*1%!MQ%ht>-V$7b@x z!#X>v=EOscVIb>Xv!sfO50~Fp`3 z%?2+g?D3=*Xc%x6+N2m82VA>JL_NetX?bmOzbsYQ8f6yf@DwKD36mnOVR8o2EOrPbGDb2$T=euo~-z?{k%sfSZ-w;}1Aj7(PdrMRp z3*NdK4n|HV=kYs=mvMN-H7XyKe5`*il zYjyrVA2?sU;xnSH=|IOe{8TXQe>lBect1G)Nz3Ck*;qIKy9wxcZIc?75W`zv=S+V2 z@*Sq{{>;waZL+YozMlevH+`S0PKK|oVVtvd%|&Y66*+jb7?O$Kn+}CXGu`tSLsP$j zx1T4nmOMaJ99@RpUwjzatkOQq1+`P+W!}Ga?QL#B`sE*E!Ir?M0ggus9`)w3yQm(! z7*XIEyXY|t)hFiA>d+$62S{FUXL86BPyz6nB1awoatH2fpe)|+PcH=^-7O}4e#MYO zX$C$EqnqISWkq=hm)^uweNQ+@rgKKEHxx9!2F8Sc@Q}~!iu5PbxzLGw{Mdcee{99g zMmu;D@(r~W6$lB~Jx+mNI-aTW?;hBPJ}0&@0jcd7m~;ks(tU21C^dmXKt-t&z?0(auUl6GRMBBXlLT>S3H8*0GL7Asl{0ZyK_LU} z^B-px{3?yVn|N3j$5pQvgTo4Y0@-K6ylaIbfGRdcNEnK6~C3qUwEP ziq4NRS#i#m!}G^aC}aCS>9%tnIWe(>`$X+<-X)VQ%cVKB)y!y1rqfd!GEl(tjF<1_ zPW3RGy7B=KwlJn8rSvMqanr`55gh>CqF!xm+O7T$-Xv!Z^28te%8zpTjrIT# z84smGykZEvO^jED1Ac{w7{qSJ0E+KXcU4b`eeSDYO2K3#?Iik|9In9xTr_{iK%dZg zI+9mkLjGKiWQa!ejt4wd%DPU9e?hYUW;S%RH}%JDompN|CK!soC5wbTnb0QC=F2kr zjF^L4SR`WTS>MGi?9`>iZZ(6vwI0+YV2H zZqN8L1m1zww+D}Cl2y?^0Xhj%GC7v82(F?sQ~2W`fQ-Q51E!z-_iv!YCcftDg-j9>z5S>^rs}$4yFf1K19VZ=1MeyZ0 z)H5jq6cze`#yck!GF0ZC!h<=N8aPcd(Hl9CYSr$?)V6X)8G@liDn1P|C?olRgVMmC zMhD!21vDWbBuvzr!UB`mpfHx#DzS7Cr^)23gH9qA>Tlh#v%Y>lK8gqR$1F(XOt=D} zkgtL^fMZid7CmC(_=~K>SB`OJXXMhVs>^0_?N`v5y=hI{cXFC0L3dOwR9MoUN7C#j zSt-xH;Dfbo#ovq(3$sLl^J*h!K0LQ`d72mYOhP2w8ZqGq(N>a9L<$BT@7lWnD>2~w zHu&~JR+ohP>wjlNaNC3}f)_0YHj^>HpJeeVkvZwU05! z#zD|dI+@FZw;$q;5lp4dY;SU4$t0hWMV%wBe#-GeGy@T_<3HysiY94h6s+p$H_Qv2 z4!hrVv&c|BX>~rd2=_LkKWn1&ys(YlIOV(ZqLG_pat@n5*N;$Sm#fH)e;uB>g{7}N z))RoWw%hYd+*(2Iq!eCdzgiXR&WYy9936&r}ATd$$H{ zjo-E})!p`@wAx;YJMkv8{}P`m-FRgPSRx`?#EP)NU9KhKfEEaxSx|sCZYUZM-TCAl z>I-DRVQSMw1g=VE?Lq;DB*o4?!#St`xvL_9s<+m^zL+clzFxcNYde_59tIrKwEi?| zgFHTK;^dtrAOA@fe;?d_kql+x%q08)=k_L+2={M4i%`Z8UI@J0BucZZObbD zovR2O7dg(2b9;5uVV>1*+BG;qkP6Ob>Ie)OLxsi#Zl|=T_1Q@=_%pT!`l{==+!>IG)0CltNfx zfrFN32e?g=vHKDYG1KIJmS5y$OD60Vltfwt|LEV@Ij)!d$3i94)n*$5QiMlWo7)na z=JcI?3jbXgQleH~ei=pP&Tb9~dZHyub;0co2z24{6PrB6A4$%yc$Sx;z?u^hYfQ`m zMLpPkEZ}DV<-qD~?(kc7i2Nkl!Cq@J17N;`gVF)FRXt@VSMv4xxTFg+jme^7|{T=U&wokoYyiN3-~vf#Kv z(JY?6m;cz9B%mExja`N#cbIrz1lP7JU#1#UG62$mZg@DGEU*LKGQf#8V@GnK%D08k z>9`75p@5?nqXrc=#kSI+MIj)olPO3HM)L{<2LccQn5Y(5oVLRDZsw$C95~p#HcN@2 zMBXC|8eQ z&VRzS^G70goUjrs{gk)73}~+0GaL_!O3N1pyAi|6)orbIj>tH8*QQlANLJkw|G)*- z?SA3X;7kyd49GD-(*e()W6kZ!kTj+;N+cW<;2{uRP^~QhsZ0jw1W1=U7fc_DiU!~- zfP?bf7*@h2w%i4fP|5r0D5F(CIpBI%DG?$EBgx}9RIxEZJ&SBascCb>|5x4eh%&r; zukA0!YJ_v&zSZ!uET{3^&glcO;Gp6rx5^u~>=6;oMO3XQIHuK(z7?FhJ32akd?7-{ zt2H&4I?v-w%X6yGuh6M035iGzoU8&&lCfzqkH5?Ftvzs z&P%rsi=?o2NYDS0YGaMa+@Hf9g%FxU&$AlOW(lmr3qul)if#V?+H&nH#+kq|09ctl zpVz-=;)KEpdP=CuPeR%S$2$G-1+XRqG!kGSiKyhdP(B*6?nsygyXIUoUNigBECPZ3 z(MWDUqYW{Lx4mM@jTn`M>5bxBxsbl}?^#hLOeJdt_(CS8htQaXr(AKmk>4DMVr4K= z77ivO*z_^;jM!fhx@%gv$>I@O&!3^#lL@M$|7Ktii3+afF2C=j%JREv#CE$TEr(FC zD8*@BgD;>1;;A|By(6fFsu+Jp0r}4k z%myn#AtzBV&;bL$llJvBAp91q$KFkM<3GbZt6vb0U%dWzrRT<)o&8q)JYWo9vVUOU zLRX2Uw&#IipoaA7H<526IDl%pm^dOVAp>T1SGA_z#21gjbD#cQ^8;djv+7We z3KU^(5N z%W8QGc=(5b*rNi}9iRS`bmLwQmcrgJmqjBQPliDNP-jGajE9&`XDA0<4{VQeknaa72sC8EZQ- zpGe1XMDqjr3|KS4bM0^68u4pdVj`a6yKkz4$d;NYUQpHwbfq~qG+iFU9klm6MlLS> zj7sT@`Rz+rX5=fd^f1z{+HocB5zS*Lf>w-%W1rq;nAax31W$eu`ZJFkf?6j+iAH$s zQrR!f2ts618?s&MrT3waF3$A2<+96@kG0>iunwjq(&&f!;}y5CmrzhJHJ|kK0U4l* zY~#5ZMFsZ%dj=EMM6KT}7Y%w(1I~oRK_(n$C*|a~8mZkwiDGJ`g{QHRGC6|SHQk$S zy$OTJHX_m8v8q8y5nd#VK9pzC;ubKMg)6Nx3VGGJH{aaW+KjGuE;ifV)nhoC&{5*M z`tN)@_kz7kQ=cR6g{x@8H`n@}uz5LkC&NhJy}CyU0{^*ftdjf4O2(CtaA1%T5o_bb z@#GxgKADI9WYF4eDX*t9O_b#K>XIh5cA~;D0cnt!Pb`adU{R44(#%rj^@INspy($j zoRm(KkGM(n6G1RDY7dHO21;o@p+tpl*J>wvIpD4ImT$eQ z-Q%{ffk9<%iyssmm{k0}tJfAHrXTg%BWu=oq7v(8Qeh&&cI(K$p)I%nhSQ}ZK?njN zSrD?{_&EbQo@g&B2j^MBbGJAFf!cb1jCXwBIGE*=JN0J|ZU(U>Nvj%{kB-iFCb^RT z-^spj2RQJry1r)x{znkE4U~xkZZhyKefe_mL;`qnt+(*PXzC!gVBfN?>r71~nE1~G z`-@P@tC~iuulUyQVY5IJTGEO53V{++Wq}i)B?TU2qg&|r9l;I%RtNu)xfoFkEDXPU z^$o9a*k&t@PHnx?IBH*&Loz9<@KS}LTqg4bqMM)v@KWV&^wk+qZ`7pUN_AJTkHgj z1;s7HIEA<8LqFMH;FK2W{SobK72&$Q^cy&#q39)cUet?)!a0u{JArRdPX}cr@vysi zNteE~Y=_Y1?^Z2MFSqv!N64H0;MjX{R1-|{&#t*jUZ3sjb1-BW+h`DZM$zX*^~Lo0 zK!k_5!)g=GyrWO-{xjm7wEO1ua*MqC6nuH=R-Y9s z13d5ZqA;q^e|B%qssG-D5xj`@FHXu_!qv#~sK7cDd~;{Ja1Lfgr9lK_K@YIJSPr!R$9Oyxi2pG!L#~5b3 zsiuln4qt~VB|%URzdpEJI2@%!5|g0gkSvQ<4;z#EgY+&CM6#DW>2*Z6rQqS$wG6_1 zC;@S(Oq*_J)N}UMtMU=E6_S$!?iH8ud|OAo78T}}$c*q0CKf@xjV>Q&PLqo2?LK^c zo$@`QeK6Y#9iDw(ZLfv3|4p^$Vr1uPSy^}PEq*7xv2$%}YRhp0&ct2A5rJ9@ zc`5(?HW41b8j1Hf=?gXdJm!zVU?~2OMt?S~T73k`ZAv*tLclZ#Csy88gu<8sr7h{1 z*uI50_(=gi*pt32wyT0$F9G8Z>I6$=Yf#yJ0bO!SG;IT@9z^JSM-1kM8PLriUEJmEx@M=6i^+_h{y`#TV3q zIxcGxQXV5g7ufYDg4er_^3q6IUvLCDK*ErenoGRPn5UcX0Jqa16Ba)p8%+gsKPP?l;eWa zQKg(h5Mhi4s+SIK^F9v-Xb5bIHNi3}r>Dqx_`VHYK#-I70K&XzgSptcQVwm!xi|l9 z+=dB;i47s1`a4vOg-za%F?tu~wOlWs7N>mp;>O|<94?7_+%V(DTjBfl;R9WoEBPA~ zb>A%CPhqQ$_JdAah8g1xl5(BTdL*IlMpCzm+%yJ6O?a%rVyf>%aM+hPT}zgs(Wmn! z^NLRG%w>-I@ZRW+nSk5-yAYIKP~{!eV43C_nEN07m7EanZqfQ(p5WXxp0^Qg z`is&}Nkq;ZoJahhXwN)MZIpLvRa`l3ao%e&bqkij$F(+lz4*0|HiwYRU$UoW@XE6y zFg_J2_I?XH<52TfC;q;tEDv61oTC;cnwHPfH9tg((*q?@Wj92CO%YTzxPw) zue5hNpMMcDr-C?C3TQG>)8Si^@7(?c6T&BR|_* zo5*+F8m)trKYw3!DWm|46-R!3__>hYDZ>O~X>NBZ@m+KRlFS|tX&P{}igT|2jrNG; zK$fAL$l&i8uy!1Up)68hjvoqWATUAH+ZKt(+U`bBhrZvPr7=|yB5-K8dkX@E@}SY0 zH@{PY&tcz5PQoj2{o+puo9xwL7Zhan8M(BguX#OG0Pe2?(vlx)vou1!|Cn-pwjkGY zy5uKjh+80iv4_y~^`Z?#lUInw{nSPID@oxCu!OwzsCAB*S0i z?nOAZQA(Xh2JYJzi(L|pwAIpN(pG@~PYaNxG}Z|qsFPgAb}S`EVM9a({)Lx>qlmDN z+hfBCgy#mX801ltQo&GPohtIKj?Jr-D$C&2jspT%t3aRM2@tgV5p+$Z6#vC~95^R$;j-<)52y%Ef_AG|&WVa}C$<6;;)n3vl>aW$i8?7sI=!mDa>p}DcCNro7F zMRP$+igSnv$EUy|H3C%IK|P^7LW_W?Nn81r?gxHL#~@<>hy@)LDdhzbDg+In#NWb`lvUU9}So zdV#UYRWn>CaYJ#2)$R+94JnKbD-;vXjM?t*f~{@`bGM1griUvyU~(7hLsr-sA*jf3 ze3H`3pC8#;=a);8en3c@+F53seTwI)HW*byDn%>jSNkjXBO4#BXWNIr77HSNLLcn& z+FEbzEdw8~4DVZ~u!g6!9Q%H=bQr&9J0UTrZ8Ff}3#L9wP|wJBzy_*Ee`Z2Ng;q8f zI=oS501B7^VD1`*g11Y=PlXCmWLG%CuP|!O{mmZs&5^_L+rL?abD`n>VETj7t(k{> zCayvKE^HNSpW1UC{MvdhK)=s5an7Mst5Lz1B%kUw9BOoke%~w29OdeJSFG4c zB!+(HoV!QYKPiv;5mCWra}DMka~U`%%s1!RCXf+r3x-;b7rMb!auPqCH9L4fE7L)Q zmVP>^1r)&|2Uien!jBORC@{)WyS7XjQ=7N^?^`5d;!x13R;V)!A>%Tj+NF<0>}^2a~0^^4hQFD=P{CpL@uMELzhG&adBYuvoj%w;IF3 zhaakjZcEE;`23E0ssM|+Q7XRcMa{1CAfv9X`*{AzNaaM*2DJFK``mf=j}Z$Gm$`Ra z#z%i;V*EeJ#8+7sWSzgJ-u+a!bnRu|oqOB&Z%%%q{qKvqpv;@WFTc+$xw+9fYriXD z*V(3dLbP?ZATdztvX3X$G~#Gj3S_b4UZp5vS@l!`jG`ixfIilWV{s}yn|{xg5lo%&!mq;%F6d{+#2GJ(Y%dui*c}k>afwR{1uu)%%ynv}sWba-umrm5 zQ+1U#I>?`W-YZI|7d3kAvyTtckM2vC{8IT{*V59`Fy{QwslO`y z`I8eh0}0O0eB(v0L=roiUp5nou&4fOcvd{VOMCMsN9XUc=4QnLf2&6WW*{${XKiB} z5vSW9^c*{&&6ehhss*Xc?S@2uieif%qRVX1g89K}y4CAC!X&8*TIu+1$J@M`0Zx?Q z`On&1$Qwf9pt(VZ6w)|V6?_?eA6d(?cnQ#p*LI2lT8m_n1`q-bTzUhYMAD zS(--v-6d%r-1*It;~QnF-MQ{r&7hR_kGNPUpGk>Iw?^cA$HoIU&RHp_lNCp z>T}MqU=kJ`d)BzlHT#Nrpu3_qQsS9=+;`^)<6b`^u(~aL>t|-6@1D#V^-;AqIW9C+ z>G*JNWMntlho~kmjc-OmE#tA*#~%gS-!QIdq(?1$%JKCWpU`fAf8!fh;s=pCGtK@IAWyRodkMGMh{8o}ABD*#(QH zKBJGbKbw&JpmZmQdB#q1&ly18e2;Zl&)Z8f(r88mGa$?)gs}_u={hJva$wI0KC<#hGX3L)Nl6$uuSc48b9 z%TI3$g_v9xzR?>jnjjK>UdPvyc$xA;(&s_2pxda^!w3A+$MgKr`HiU8wywM zxeM&h*8$2wE?7!u13J`i!&)Ny9D+()-n42DC+vhClx>^bn+b%-DB-0yqa%B!c~J_C zQbVg&al+yBY@>2QKNf7!=w&S%wi}N}HB}mCZr8f|)sD?k*H>zU5$HTCEsQ(oTy$xV z%vsx}%URDt?pQeVQpsR{VRrUGQE~CyssC1pJ2ptXG$EwZ(wogI`zsk04NU|x<(F-W zSRJuNI4!Drog%z#^_`mG?nrdt$0&fFHV@_-WU1rSaX6bb3k0b6efl_8MK3KJKrHzz ztiY}_he!8$MYAq*6$+ik8@ttLHrvpDX*n5Bm&g<`N(}rca-bM4`3RunAsVDO(%bQ? zF!1upeldL>4}^*uR6l*S%n0-;H~@#LDSA-=Lcp zd>7d^n6Bd5M02iM_S3@1bkVV?ovixd=HbKs`fn>9%{ag@xU2 z|L`$}=)Mx}VyjegaH+uFs0pS^0oQlnaC!V&Sjj5dG#wt=FNT$BxRO2cqr38merbZt zb#3YJC|0Wp#a^7aDFEHjZK^wfCXt*Lydjl22B>xjCk@Ra9l^+-PKWFR#}JgrfS1t| z)Y^f66+ACvN(Sax(Cl6EL|ER~1Va-0%zQ)TkiwupuBKWqBY7=x_nO6aW7@hjr}yw6 zdteUoSg3(6)2-+#)^E;yQVb3BJl? zINRmrY@W#R)Y~jkcJ&x!xN*nV+i)K{khCU4E1ig$zqI@Gfi|?Ie=`xw<&&{0j zyPK%-drzWT2&?a--Zib`&iSKQ+v;65vv>a`(5dw9Fsj)TkTGUR30!YI&AEg(tArZ)8 z=^S^zhNkw13|lHRMed3+?x(;%?)tiCu|HaeY*zS~tu#U>54F0fUn$)xZclu@KVfv_ z!?yJ#OeAyu4qcn(_e|rFxt`i775Z6`EAB}A%_qX*JIpYYG8;hnyLv%-HmB7-W@{Dh z%2(#B%*lmRGg+4|3?|NtJUq>s$jQYD+rDZwS$z6In$}a}{Bchj*TDT3Y-ZI$G~q>IPt3pb6ZKd4)5F&D%IE8;z=6UEuk9oa$06s}iDS;YY`eGuY7o>G0-aE)rjsEw^ z5cf3W3&-I*F)V_C7qv$MoFNZ9d5p-cJ*Saj+fw3o{1^n(c6?zd1sTCnyXDPQsEefH$RtB9Ei z_oQ==$LYZ%8TY%^#{DcG?r|I&em#k~yd(*sxk4}fn*3QW9e&6kp6Kf8Dmpk(WX_pe zWUPTn&Acy`ocPh?YCAjTb11oH?VH?xas1~NJNz~zz&(WW<+I-2G@CNQZ;Y(2x1zOg z`^yXei?TKz_pV?qUbz17^{a8(&Hdf!dY5GGMDoe}PqnHu7n-IFd(1cHQ`JPRRzqWn zw1Xdnm!C%-gigHrOK}Bh>k6s3)f`FFAg^ZNyRM<%vQ-*42Y~?7ZtwsvS-)%USyuW; z9Mr<@7~!)l{b1|O1TQke*C3b~nBX8wbhThIsVCN#pwh7#&wRRUY1lhpQ>eN1z$-TA zkqm)7sqYs!%M>NhX%}z8hL@xNDz-8z5i5R+F}bvuoiX?o_nxLKtmNFRCD!1N5(fVr zll`Hyx_I>N?XLVFDQUAm(f7R?RQjz(TFEb-zju3XbzDZ-vmkbt_-HL0w|44*bGUVY zYwPnmSPOMueIz#6d`~$1_I1`NWy+2RfiK47Pr^2@xGoY_MKG?S+gzBhtc*4(??MkX zggjAbQ|m|(+IJU;3zfG2O=%nrxlX7Yxh6`+qB|PxfT5?BxNP%>ap(G%uE_r!ComN3 z^J_=p1DvGbo4VPe57jc2`k`#c+Mtoq+FJGiA;71muFgmwFH(ZX#8m2@Jf~y>Xkw<1 zMD@@gMZzy|G=yWHW1D=t_~8Yj6hEV$p8^5E7y@3&n+66C6#7EW{$6uWb|jQk6IKO^ z-|RRp$GpyeapBY9cTQWo!iJlox(k0HT#s7#XM1P*&YVwX7T0)xqs6!C3-y~;v^LoS zS{jV{U5jnycaB_&BpNnC6ST$S!|7o@3bi@SvB_5*+a8iPD`OMcu{mE49S?QAUoZK* zh7>3Yg&CjTYa&I4ya@VYJY{>UN)qAGU8IP>Ea0cA@Nd|;Nl*uYacoyrfpMLn|M6Ds zf1{`J^B#L_$}GqQWqTk;+hA+)7l#Y0ALcw6+{{f=!xH8^aZr9G+b}3Q-U8BEJnr<( zt(-jWrsviPISZ3Lp^y><9HoPnD&Hc;!g&maOlaZYU*#Vm2<2m9PRnDz1x`RLPh zi0A6?dNP2641j7d!L4a*MSJ$(Q{ZnVkac0~SpXB5J7-wePGZB(u6!?? zr_M*@{k`FW|JdCo(PlK0nnxYXr@mS3kj*$HC%k#`YtOYX$ilXH`RZehRv zwlj<%`+N4Ep~M~AdQ{pN6G6r|$0-?uU+?}6yLp=)tAxDqTDLJlMWopzQs>vM=Te!5wsfFi$P}tZ%V#5@6shd5O_$Bno^W4G3+k5%V zG%!d-zIzFU2$H0^?q=(M@gh@&apaMJ!kC)a4eD$#fW6+g@5lQkoMMm@!EklSvG}KI z7X<-YVEl8jp&^>EFLMZN;Ym!Qi^B$T)_}&jg&{taFjF;ql|QFs26f4dtHaOYfi@w< zYB7@g%qPi*-j?J6;mRnHLY6uZ28pBhCGF33ocfNE=c?AY?k21@x^iJ^qW<0J4oR53 z;g2MfpZo|V<~XlWul1WTYfSPzoV)MXR>HIP|I1k?ivp_eoKdjplxIfI4b~5I>{54O zzQ*?~x@9|ZN}ZO}H6qhn<~zZsU-fdMuhd^>I~+XPiz^LR#OFk%d{DLY zJy1%9JqqC@e;K(@ruQg$%8p18H^%J@Q?>u`U094gL$|>+`jQg9?ASY(YLn*A(Z8bj>$j3A6l(xgG6`UIUkT zuX1X?Ib`HQh@9~z;cXA&@bG2rU^lLd(mxATms@KKp(Wc4<$Zx{+6-@M&L4f)MqMjC zQv4S{ty6ruINyrbvpou8Ct0C{L@ZpbN;{Q|4LCML5;|NR1L6BY6mZ173*CfXl zr7HWmtEGRJ&1S#vUOum?_vqV23~+im@9~~|BPhsSgUe3J^XJdA#+B6fz6HOyNSHmE z=lFT~8XhXZwS?jF4^N}(%?*l()!V$f-o#{+ZRHnUe|aE47TzjysuDe^_=NMvtt4mV1jd5DNq4u?3hs1~I?~JR4|023QQwk}RsMkhsOHwq{ za?O1W#vryNsC*n^&l0M3R|tRsN6QOHyd7izU8?Qurp?BCuM1wj7KM2-fi6~Ptp-6U z1ds<8FqAfacNH!!!t|_($QkEFPk{b#Q$WpY@Pv&3L(eIO9S0~0=UZf)D9!ccuFOu@ zK^GiB8!k6)u1IGq${|mkN5|%V;a7@$A;04$mMK|d*%jK9 z`|;>{Jv^U5uBP1;-{Xk~tJ9rhN>1K|eK6hU+sx`W(n$UcNVl`fLQ1x)&aD0l{}Q{k zu`qvMvqv01!idaz+j@?itlFKsytdq+%D6Cv7<6nQjH&E=*)BTuI$|q=PsxE2vv-SW z;AqLn$R>7v{)Sb^M_Z<}hxjFt{~hAlX=)dyH^I_P`Zubm0(i+6eKM#P5WQ3|wFghQ zxj6AT6QY#4io!bDee-;xdO`={+$d3UDroHt5-C;G%&%V zSv}W;@G;on@KX<7a>+1C4D%bI{hufM54%Edl?Ps&f4W7@{9W)rHoqL()gn1WS)~ld z=~W+-oSvld*Q;+iM;Q`uthws}#eKK1R+F|=InA4nwMieSi2fQeX*f|ytwSIALdcI8 zDSwER%9QKrX#VHfl9ru)qHaVYd3u8o!UO*VJ^8e=S?Zz}zf{KW^vplH2e%wcxIn)+ z9p?P)d=EiWKOP{kj^h`AUj&(9 zd*$UFpaPI*Tucb!CCd0;1!wnTlQm_O_PK}k1jDEday1U~>&Xq- z!;j#e`!5k;He|R4o6|#+#>bx@H2j%w{BWnfa~r4J)F%>3Nscqz)4mx)6mYs-X_U<# z{ri@T?uxUON$YQwdQg0q;+nG=@aKn?7Oh9rxb}M((wo@pj5B5OEf)22cY06{ zCCT(j?aF;TzNmbt$Ns(_?B!)(ZAS@W3GKh-s>F*Z7`i9CL;}R6K$vtud?KXl1}P;x zNDDlvZ9Da@f+3yI1X<9M?CvC9U%743{MWcr9_kbx7%AJHo%>KPW^l=db{i`dj#gS) zv!Uk9C8lTR_&E9{Xj(w9C}oF56j>+l7xt+|Ca6{30mFWIS3XAC7@@EkI@(R(^+#OC zlZ1Quk9hiciN$ic-ktYJxUZID;DP3sHhKJKKi9bE<;=z}^WQD-ASTXbR~$9ZPJ=JQ zQFHhZt5nQpK&fxg{E81pB?0)8;~)sTgvcXKwOdBt7?YQAbx-O zG?4WUL}3+WOJ;2hL3TC_w!{mZC7nj!L#EmiqgA1KNVE)0lqui59U*t}YjM!0<~&_y z0=O1n=4=g1pFa`D8r5w?&K$m-D*seQeAGN6mhEoeIHK0pm{gB>chOvWZ&k5TY>&2t zsqT_w`Ci+s!K_B*<4YZ_9)+oS-BIT;gW=iS1G4L_L>pL`RESKcOoro%&bwU2JXDQ} zX6jg|sQ7O8nW7L@V3Ql?9ByQJ5$2CSVh@y^f6n6Z2tW%IH1`{=65ht^;#1S$6~0N; z3#KGl+y0sA+>Q%yO6;|@r!(E{`;>q0XC@_mZ)jMx$}8BvTG&l{A{z+MMtJE&$o)s0 zMbQMIBMF`p2EODBQ4z$BeW*Xr#cg=Og5+9DicS0V(~v&su>|0Pq;t@S656qSCD=FI zv_3y!yU;5wW;fN^+-Yne=x`PPD%DiRCE4f2jMZYy)z0sx@@7< zk19&uNTCzLvv(!0B@7Io{lZEN#nF4keR}+kRCjx4A-@sfbW`#WtI)fx?HPI}VYjVg z^MX#K@OzxCm8c^VjjQ*rgi&#zdA+C#TUrVN2dLg!)BNyuSgd}@`r}FM#KwcY+jr(~ zGJo0>1*o6x;p+e--Eu=6O7O#Ipu$cvpfpHEkOxf)==h+ixqCjqhM0qJfV|axiA7ny zw#S+Zg^p=nUb;^WM7iX~P&#*?^)!1JVgEeHaQWk#LiDJP?6$6wt3|FyOZP?6+b=EH ze#9jq(`^JLNXvf9xm@_5hoU1myH#_RGF$yzz=mGcJu((PYG6Y>@!Tjybr zA8SF^WxrgGP*XQk4^8^)(5FVfVim^Q%8%rKH~0gOSIIlS-5H@!-AY3G=rwhZMb7k^BL5*`!!R9MqfT>=4TKa& z5pXU^PT&6XtS=n8Pqa=(FSqJ9+bCu3-Hragh8^e5<925&AuO(TVfSax{2G6SzvR-b z$&-z8(J$H=wk!F~++xCk-=F~`GIq*A7#o^Q?_Jk$YX-f9!sF$B}kK#v% zs)2}vKuRi*mZg5tmNMq3pB#>h$!3OZTwTTw6QsKN_o93B%NK)c( zKE4-)c}1u_n$v?{^biOxbdaZ;?F*7LOyK6F1-?h#d;~8!uYz*`asCNW4QD~wvR5hwOmTfJiD4m zcTXHt_eb0brOIcMQ;a_>%#V^pVD@EqH;Byd^DJ9TA1UoD7iUv1=M-0l+MKlsH}AdD zyD#i$c6s~RnFTn2A$J=)m;!IRXCJh=`%ojFRdLU9dn(YyMZiG8TU#>lkx2vP@IkU) z_?eD5s0sJgsO+JJqDqp9Nvw^<0SVyXA;%@aOX$GF4aVxcu{JsAZ?HH<iw@K~59 z5_iT;>{6-%&*k54mnRcPm19u$j9(H&Y;2qxzb};Xyp#`H4SwJFJfD*#5?l}xd|y#P z{p1QYjL_iMO#D_uscrc-_#9TExcxFBSjg3I)TYoUJ zYNs#!cS*?PlY9S*s%=lysWH7=8VygwR0sIOEXH*lll(Gj{`M?nhS-)(KlZpi(L(Py zz)&|QSOx}Toe=}qC_{1B130Z~=0{G1%8L8s96J**`J#rwOhYjV?B znR)2;k)ny1fVtm%R_?V z7(I9|eg6UUtF|))pN`uHG&Koo(St4o{2}h@K|q0IUo3$P`G2_pP7#FH*K6Lb&%V%A zgx*VJl6%2Le_y3L&U)~PUkF9B$h!;IUoEu$H;9~3?OeCTiR zFMFhfUSYj|c(Gy5T6NDThk8s6gxE13k1xiOtTd-bw$umbi-wbe={ab3q7u{w{mxr;GE)#z#pXsUcQ8h*JWMcl5_sP~dDQ z6YDupq|{F^ zQfL^VrD>gi_|RxZt&q(ozqx2pf!ip8<*Q0?-zDDx1_W}ce?7eA zg42Tldz1!XIQr8qD#Ba0rj zUl}R(ZToUz?>n+$<hd_3I`Na5jQ z$B)wtieeAo2GT>Nwhzlj2gNrHT-ZNfail7_6_58|yiExaAUb}zxkP%jNmA3`cDh+@ z-JOq;+NtPb0!86nd|nccZ2{mK&_IQ@bg==Xt4$X`nc(eZt?eMll5vf57xA}ls2V>3 z;xH530|8pNXggsf+-r0Cq;1vw^oxtiuB3Lo183BCc zj{Hm{N$_Bv@zB8>>FEPQ2Sw4{hy!-f{hE>8iA_YI!@R`qEf*~8e5VbQ=exza$Vg^2 ze9`llvY$fn20QBTAIvU--7`+1>w$W@8D;hTWigr?hoWHr&NuGcfNGl@SmzMwg|Ae# zBGHS83uY7@5S>J33qsNo;m<~{+Mf~hfHvaBjoKjZ`%)qZr2R4n`=0_n>xJ2!(8q=; z;%l7!>;+5I!-GnkV)~V53EM?$=g+^qAplBD-db3wk)m4iejl z1VS<|P8$RE=H~(t<~I~(P}EH~)P_6}D>w($2@sC6)V~Pq7~T`09$`#FH{=15 z2gy)!p8|aObK2RnAhaG0NSQdWRRkj#^l294?4VTTpHkua*oeAb_%oH*xfo(aEvMhD zQIl&@9lPqmZk<22*W&!swoeU{zW8in&1QV%Bt()b?W+csaEHeBY2qbM1RD}bG`pV(|Pz) z{rF$}eQi;copCj&P)KFFM0QA_kSnt?L&&)IA}exjA+F4jl|Ao8*-`es_TKAW*B!t6 z`92=M|KPswd%n)=oagD5)WvnIHe)C+i)Vu(_$A%dmfowmBfUrYzjJ4Wf*3K4XY97S zIq%&e=c~_rcFC*MX+J38tPMWM2t0a)eRt;@Nm3PHHG2dkqK;x|fLq1K)Lbc3Vk?|l z*MNGR7zFVK0Gh<}?2H(JL>i5A0x1BDGLypv_gar~4GaskJofJjT+^eA&i~>63$1Lb z2>x|PRkbC(YUt%^4ga~5jb(J;yU50MaLRwrXXTDQGEZhL!ycR9cHjsLk3y1bt;KPR z`L=gE-Pda%*NDKAOZqrHiPGWFr-WjSz@+icGSu0E@};A=Xu)&|EHeX|JLvDC|@^9+R`r8xcj_<8B=L985R)GXa+Kb1T1%9iRD6{+IDrR7`ia9kD2rpzy$E*&J6Gu)k0U4w{nsxs=q=~Cdhf=`+X4r zF}jIm7^hwXPfCfjtynR9Wzst32_vBVncTH!W|%Zi63m|`b*)Km63>ix7qQfN-0XcP~* z+aVL+NEk6)z147FLJ^sb+I(=}n$~A;s0gSZ31TVnK z0=TnNYaxKDY*tAiwpwi6y!vY*fB^x+%u-hY>v>9py#2vf6FB{OfFAB*2U_T%P;r`c zS>8EgxNr77ICYofAu&Z5=FKH;t!I%%4AFK zoiCYlD!E!)Vs2kM^rL?@DF7Yupn2uN78!Zeve@a40%;DMFPJ4)SJRKZ{!w2q|I~^5 zvrMT)pY6D37|eT|`m)`96AGPu>UZZ-b%``;wAyhQ%X4(`iO~;o`;4=hihhL7#2 zx7RLbp)PQ%kV1`T1Hu;&t?)EfAez&j_Fh)_JZPQGp#}tK+);H_yh1zIV!|y9z7NFa zO5+uSA;rk3VX&l!@*~#h7l<(-fVdZtwlffooqb@n9YA#@Jtw)i{oR%|e1FDv$PzZ+!UtZ&p@JLf&xj}@AVVCAb-$B(o>vE8F^-P?96J3a+d zT^Ec%YV#)s;Hv70m`n-)XnRxp-->Hs8<2Ab)LeH3Ge?WyBY^#!=dCL&7!9v~{91dv zA&8sjl|J$z9O*P+z6-f5}9ZK+l4M;g~d8^P|k=RnIup+nSK~LF$9ev`+}ip~Vwp zAS2VqQ8Et_fzKpvp+B|1pEJ&J-eCsw{g;9Q0LyYSzPbaNHAmp1b@&}xY8%N_$}Kz# z9Xk<415C|+aNnJ69!twINd_*Nk}~uXn;LYX?&-eik%2T9RQXK%kPL=yG~j$3zNL5rfSfI zX7~u{P;a>O4aw6EXyOE2WAeQX!l>;*gm1B&`=vTSH>~=r;EDqTy%|T0-Tpk#8wmX^ zd5L&**7W*g)!HD#`{ zjk@yFYQ3+ltQFbb3~jt1S=Gvo5U9@0#`g;A8)HzoME16}62n!lqYyxKixT0Q1d8~G z`8E#(fC1}0Wuu~7ve&4WIg?b%SCdT?TB9s|DX4<~xJ(8xioy;_AZ~oQQMIE}j8$7m zc#5j9Xi|M^Co<3W6KwrP_R3#=>RfqzcC$?O(6lxqFCoKwb5t_bCC;S`WS) z$?WnRog0jfA%V&5@aGmz)%lj01|0YTk8x6eFL#Dl3(M+oPrN<9OtseHS-G80E*S*p=3S^}^>2Fp;-tKaB5 z`b0_9i0tcj%we&#d;Y88DyK1l5+JEY#X-U=_2sPiWl28ciARfnSE&!h7s$f>(lpmW zZKpT2P6w{{pEY`H7T45XITeiGX?_rP-Y;c0*;cAnfj`!uQ|$g zF&-0N--lrg>-Axmtz+<7fbm**i`aRaGBL(Mo`X$=7JFtX3 z^=gKg5K?hQu))Gi@1){682VvXLDh!xu7e}^hJUrWv74Pv@u0qQtzwc-o02&3L)n2N zh$N!$THUPuI)?Sg zOmT_Zn#-#g(mlx7Nm$PaXQQ~<4a+c6Q|{ui`4gP@@Qc86>M#a+MuLY7;}lBVlrI1; zf!099yFgYt2eDGGHB>e=BUi1|0N|s$NCW|PpfGOW7bje}%i_)P>a>12;oT<7(Td(* z#%;23Eu>sl4o9^nywOI}*Rw@gp&vOdna=m+n+hK*&GfW;Hzu#Zl9OAItF=w_`xlEz z?~35~oXO8iDQM!Pi@xCvne=p>N-M*1haywOQmb5fF<2K)v~={C{z72g$*tdD;@9WI zs?&-|h|#{{lVABw@=I$-$TC$sx;G5Pi?p5t59t|;ii}IlRF5f`mAiA- zL(EZii|oJsU^GBQuU0)dKRGMI@RY95DpH1ep^ zQ;}oY|5e3)niZU)Hc5Hbf-R;Pg%({CX|pknIlTVC<)@cY?HZZ!kY0M_&gv|IjOiTn&7LgF{EO2C}H3)DjtNUfO{OKPJZx^6M3;1oAcD{RQ^}d7! z$Wo9DLMh&(0aXL>{9&~0JIH4Y7*V&dY~O^;6WI(;x%k3eiuEyM3s9vk?AGLm+TmqW zoyS@574%H7e;$de54P@h%ep_s%Fqh}HLrbBw#?2A^{5xjl<<^PZp&Jv$jU}pjFpAc zcDB4DP~=?kPvJ;56?|6ws;7zKR0-Wzf_|LIJ5>56_o+M$L7uKn7&qa`4$pzKESPl9zU`Vn{VN~5i&R!P##`P64Q;d`|LmeIp z_K&TK=K5TMTHN~NFy=qDZu#A-^i`HGl^7K1`T3WvFhewz%cAfhv=YYU<;~UGBd(w6 z4m`t!A73_$crtqMyW55adE>+dMT3w#)yl6WJ)i*wDe}VBcDmGn&CHHH&0KnwZ%ZUh zS%jLg`a&-^V8XY;iV#f_Y++O&HYY2W5NHcEpAmUIbmb4G=j9E~ga(^iHgNW%PsJ~n ztYn67zLeBBc>0HO@;=vpH^9jJIQc=dpTL_5nM;+U?6B@)Gq_25ds9Ki_2b|wxaK5! zE$om!|2Z9eCo)q$`J;cpmzC@k2bH>GX*Mx@aZB0b!RD{r-Ky4XPL z?;xGlOjO(}*;@H0C}}Xf12WrBT+*#pSoiT(pg$KyUrcFvJ{BABCq=O@i1%JN2;kW` zS8iGiw+CHiE@vf5G6PmSN`m`k{(!1Dn6FT^@qxGwY^t=ne6FAB zAB_B~GkTZfrK4!~gkfTdzYx3g2)ABjUpulQMb`tBx>Rh?Q-So?7^t2ELt@++G%zCG zH}9;ii)` zaVMYI8mXGlfzKq+q;7}9g}{nOetyU_Q~#3vNU|)gX!XPQ>^a5m*t9#@FU!(bkmVam zmTrX;1J>$2DXTy5%*6Kywa?PeSKphHoJJrpfo;|`m6>pLQN`^*4A(=;u8QzIdfd#* zk4ZbG30pgDZA%27V6=+8-A`BQqfzd#nSeH7R*g2Rx41>ScaFLy@T7q;0yk;*Zf5}Q zK>S%wGDth5eyf_`i1nm>wu_F|1ArgF(I$q6!peT@?StP7YTx{B>Al{}j|&U@n>h@> zjysNkj~@qLzS_-3f<=z#bK=XArUv89tU+2NIM$`z* z(PwPr&2oF7<0tD7cUuMfL#fd7Y#IWlg8!GB+gzK-H7C zrUWiq&;cY2g?g-U;bTZr5DiR+tUi>%qt2AD!C6h6U!C!8hfVJ&@7-kAQ-G_06m0JC>Rf0y7#`|jJkTA_^E4iyjZrY3a=znr#JPUe@5XWN<9sd03O|FTig zEIGB_w`y?GbaaUGJLLm=+|SD!=x^N|_C-al2Ud}o$=~txg@ng@Y3DF^K}@+se{7K% z9eRK9wWI1>fFAecS7pxsRr?rtOa1)p- z@#n`<8+HqU7A}zLn!E*7*xvN@u8JJ%A^50fa67e3D+>jo*Q;L;kLbK$}_vW5|gYFgmA4%7kz*= zbjdV%Y4ty`HlhB7RY$&0-wu3&-w8vuDx}!GdncU%0=Dd5n3p|^-?3U%g7NUIokT2J zx&}tW3sW=cl~nHUGD{Ikbn3yFE~e8&HFVkRnAu^JNEqmBHUutb>M>PU-V-y!!1uEx z?)?j!iwCha2u3?wp|HrUR_Y$BQTO%bMG?9j?tWy>B{+|K&r{?l_1Nl$D?j6f;<&FNBY64G=lsbTXDwk6O%cXup^*LRF8 z0?fJ51E0iuXn?>xn(cyV&w?5TY5ww<;Zchro;QL^l;~lhFe1yhen3Dj% zG}0yJZ>Q$s^f7v^C{-*QUiY|CZSUz{WHm`>f(>AwBI0K_(xR%d6EZU=&e9VbUkuKo z<%e2uj&M;C%)Tvt05e}N{garI(shZd>Yn$RC9h7`yo-(m?m?o>$js=*{-?&&^m|pD!4|Im^k9 ze3@UBmd_kd)TrUG57MW~6xlXA4fd!b|OQIMLd$ywhLDdjYXo4_zFAnHKfP|SvN zR>|F^rh*Y}Tj)obG7NBTrIaL)wY^v7AqWuW$dbTBf)Kn%dFr)y^I5FmG1g$n|)2(1}5-KgepWcyLkX?Z>}w!m?-k2Ac!0W{n)D`ndU}nQ3Aa z9CG(=HsnD)>nR$ys_B2Y@|e1L1Lslu4A0;2nzW+_K~j^wBsCyay78yqUj#eAkM2}h zfik@z$AnI6Nj0!Mu5bmqT|xYP1Wq`Mc@^uP$v@q0LyRim;G-Z)P5KYjSEjVSE{7|@ z6Z0L!aWKeXwS#}peaFLp@g!2qQ)TKVB8v(GiKF9XMl@eS489e0ZQqOKl*pHS0xgXBDo@0MpL za@?jYug;4@EKl1mkG&RjFONhFh|-moXgDapc<2xP_eVd>#I3ftrlqIfFH?klf30f6bGtc-5W#gqU{D z;VUvE%}?$!=0=N0gV~BtKX(Uq%IN=y2#_L6PjASObxwPOGdRe9MR(LLPq#}PDkffO zR66i(oN4yig){s>o{$vk0O1H)>;897eiI>`p@I(qb~CaV$T|Kt+SZyXJ^rsFKvR7@t*64rwX({YehYJA3!Q6IkpVaXKH;|nv6ml`L?!Pg@7G$poi}a%*`Tu3 zFYCRoxS}`ZxQRQ7!`J>M-K?m-zhfKe{tBZ>K#e-3Gtt$BdwO!Pk-H(MH$Jn8RF?SH zB~A+ItWf4RrKy%Zg*-A=RE>oyW4K*AguezMdH}Ec?Aib@I*of2Ap)@8mDO?*YMtyzKgRLMST>>xNN(e&UO^_n;@hkDHOEw(c zYQ~Oj?Iw^6HWgb8Q2wg;MdIpo?DV2o?ZdsO>n{(V+d)cyi%~mC@?1yKz21w7n^MTT z6ss8}szmtu9xE%rG{X1xx4ZygmJEdP0`A6(MUZ@o%M$22t1wV5rwh#WL1(^7m->p| zq62=d?``a<9#Ww-G7Tvs^3?gbdk+%5@u*|yJlhrR)=X*y=*dM1G5ixrJ2z6y@eVVG zpU$4%7IyZ_yiZ#0~48oC>-u*1#_a1RO^MT zs|J3kdHmBy$cZH_jY@-nfr4PNH>8?$dLBXI-nWxEblq$VT`!^F!Bp!)?Eyr|Pyicu zeqQnXbt(_mFKUFh_z_DQOq4duT6zy@HG{hRbAv(yOs3GOCIRtE5-|@M<^aHJ{=J;N zHx)R?M2_9$u3B9&30qy31Hwb#0YXE;6+V>m05`)*c$5x}eL2kn>O|QCYDcboHPo9s zBQa<$?zG|(ZDGNKl`5H%bxmGs+3$hR?V@u8go`PO&)_9fB_jbP7A%&&5k*g(f1K!f zpiD{8=jmbE2#~7vVy0S$N)hfcz`nt%n2OUs3Wl^lj(F!hwl=~z6V)2Gu-w^&sTRlOC&kHAG{;eytu+zyhXobVR>c)frP0@V=CEfaN_uDIr@52 zyg}y2)fe;r=4WjdUd0-xZ)sRWP3LKZTl#n3t*f`meo^qRAa)|Dplp)KnL?_G25j7} zI%c};9$BxAdXumAhZIUE;fElkp=2ibVj^W1Ek_FiRH(2j-QH($)D);-f-(fb4gP-YWsxv#FO5y9MO>{ECsMrLPCh*grv73$;g8BRzBrFtOZ+y~A8e?yRd|N!^PB9JeQ5ln@on{!LSD!RtS>_f`glJ4 zEt^0A6AJg1b!YQl?F7H9>v$QOJgHMtYg(K)9h*9Jl63vmvTNM-e&$Da*zC*wk#Z%!MSr;-J~ zAx>nbewKp(De|>>HtH& zMOw%YHv9j0z(+ECRE@?N8*R)?y`kj*1lt#-NV=O+JjZ{}QV}@-Vr_72YU%VgGqn4I zF}n8B#>8U2nIM$AIpS>GB@uqL6)A6@ZqinB=v>qMbUT}=#>ITegVYAOiZ7e_k9C~& z%9aWVAd8;u(?tSm24>k_MNmcZLj62K9E zn4l+#oWx!UAWsQs!D?v2Dlc7HnO<3OL~8`Nd(7W~dlJ|GXvM3!a& z0N+U&@*;L45lW@HzcA927PkMdmw>bv^~SY@kBdqO0gjKwe|(<?RsgNapiawW2q**GTsmvND@Q#B zHbrbYe|=R5`9e7u_NLlE@%{iurhg)3+G@tWvA-I(va)jGI@2&xhC^0 z;&eo62i>$O<^?bdLRx-xbU>cnmW&7>NU*k=as*WO=&mKvQXObrAi%83AT#R!l{A!yiw$K!DP@d%T^Bk+8yB>zDq+Nzm3?LzghV< z)j!y6@INWX3TJ6s}=uyCl1r($RS=>Uc2O~b+`;YWdS_3z&NtZ|kyd)9x$QFS?>EhnO*w$<*h z0a}G_r&y2hFcqvNv76q{K6I?L^|cl6`QjnDb^Kb>?-+0}IK!4hd;LW}X_566>Q_U_ z^!*9eBdrgaY-(pn@`5DUhAG6>ZYdz9BJ~O*uz|fg)Q?t(MUI3JIt3A{c<+LvI7dN5 z(N-Vv8g^A&9#|iTpBFhcbIf4Uwnu!}26)espPs{rngwk}O3^QHE@l2c`Yt$r*uttv z<4u3GdgmWq{~w_-jXm0b$X~Pfx$9@|(sJHYkqCI;++ZUo=HK2~3=z1F+cj$pX6EPZ zu-bJPiVBz|N1)C^l!d(@iDl;n`rW%?*(#lB{l1S)JZ|a#4qf(DUOF{dNU1XsrJ*`T z)bQc;R~k9321*kO8eIE#Mpyj}HQ#%+Dnzo@dXwL(r|o7wS762siN+r{BR!=ij?YTG zNBx>=Mmd>{Ko&VS;u%*_>C3g15;n5VARo?le~uW>9JftlZ+t7ad3_|JTJ` z<1+es%Q5gFS*oS>u9IRPt)1Uv#Yd&JAG?v$6nmOKi8!4Yg?jx-CU=x}0EXs!DfY%3 zpnBRlR^^}NT{W_ink-XV-kN>-3&~6nBKdxH4v6;bv&Gm6z;sE*L2fnf-Qq(kWzrl9Y>o#`4$;aG=be?kFlvCb7)3 zMIt9=XI(Eae6Y|^Ipq!69Wn)_BD%(n;%DRN>PB+!gTFL8?M^?aRosy?_FSS9gkv zSf2|Wkou$9%npci+qGB~;<6+>vI!S=E9zo14{t4>Cvf1jkL9hcjxmX5uhN1(BS7<7$W&k@GHJL_irlbyr)a=4WFbGP&M`1Gl%%nbPLA%4#g z$vU~dwN86t-Y`!zCEcy%4UBSzEsN3j{6p|)mN2QgL9kNI7rS4boBFUp$G#wY?>ELD ziFzIU4}~B};f?oL!k}7oxW{gLNO|B}lQ-vAzs1nKG68>=mEn&dlR}W4}g>5+3WHF zbT8f~Zl$?1X6_E!Kjl$SO_Q1E1T5ZoG<;t6!-rU03Y+&ZNoipF@pXBF#~g z*D%nCJADCcePibh1a_HQ*#;g!jBZ1U(u2CGSBcbn1`vvI^z!i8R><&#)^{0Bzbn5j zy~f6(eA518b?$fHxEXl^T_i|&O@!L0^!>8qVRCogzAu}9PL&sU2PhTN2%ksnmkokE zgFtdC0NrjfUy(7jM7Yl^b{Ljqx4eBAPt!GVoYH~;$?1YDzrpFMin`2-Jf9Swu8vRz+gd|&pVOI{b+O)FLgzMi+e0Cw1!fvz;;D=$$jAyk27JOM=AYc5WVlji`2XhkULk^e3=oGJPKXHw1_m4bvu1uc_ zYj%t3ncKcsY0>|gq2G=)D#uqBYUj?DI{Um4LJEDwQ2P4U5Z2kM{VyB;Oz!Jkrrq3* z+lh<+XciF4&+NbYBMozbEQKH*A2TiL$(-M8yp2rVNpfkXqe4GWxXPA!ls+* zyzEwT&WJbMYZFd@XdS&{rOm8Jir#BJJsp70?syM*|C4f&6{s(PhjB{<2WAtr% z|8TeDH-xZZphRtB0@QJCUd=DmB=e{CJ`DL;+~>;vgj$PC;sIa6wt~)4gPoD+?{bOB z5QCu$7vxLq{IC)<4U~@ap#qC-Qs9B#o-=vT6iL`V%i;f=N7I6zxj_MUxO1H2692{P z=(Q0O85wV_vkPj7UzftYf7Y)RRUzAT6ug1sih|M~v8<8PT6dpa%>upIvs9K!0momP zwRJA?m@#ULdTRI_Oi}uNQkaaYcp?u?fg!M1f&A3L-zzL&cKgZ z;d|pTf}Rudm3~7q%RsF3B^jPmc$7m^h?FRAz(w!AJX*x7gn72Kk$@Dq-D&+}`9U+C zw{EC#PJ{q3wtemJt7QVMD%diFMfLu8k`1^gP_233RHad2m_X!yHS3bXX|es=xnO;A z+12$W8K3E7AKG|a`T6cCJoV!4mC0*_S?w9c;>{jhizFYM^iu!F6uY^T>NNAkR#obMmW6AX4O=Elmx>WSyB+A=={OT}t7tf3v^9?4j zWxPVKdpQpE$pa55z08<&HYI>}05dM4g|Lme3T%Dn{cL1g*o@4@H8#AMz-?b z7lmRo*Dgwhw^*4*2~gt$^-~lZM9`XYHnR6ok@X{RU`7jUR9D=~$v@*4g6b z2o9sKbiIg1^*hzL^BO1F?q(H!5|jFbQo`g+ymD2vvTH{_$9Ai8f4*nNdgg4fsBpKjWlzm2v{-R@1g87AMrP z_#SVz>kuEQ^FhT@XOohWyriB7cRGrL?O!y0{4IISZP)T&zQ&J`e~zn2U6iCW*?5yB z@n7~1*XN^#qw7UDUXt#&U0-Di^$)o5FQ|;#-j0uX#{VgBcxP~IVFOVl%S#ek%)VsR zRVUg3H2}hg<-3nu=GWZpJ6z-wTnirkH1qzx%y?7oVVzc9;1)g<98vakEhyDjJ4OI7 z2Ch)xO91ujcNqVK)7t7P-~kjdA+#lFqB6|5Fx!VqKog~x|8oW8&$VtsR{}?xj`Qh zf*p6u{wHne_50j0Ndwkn0S+*_jwYDgp7CGt_Z)4RV^sjQsGhShCRO%Lqct!HDMkbf zB3`7cVZ9-;u68_f1i`V{m|l?CN|KxP3KgmSf!BY`ayQ> zj54+d2BbqPZ4No&w6Ejj(>Z88P!Q70u6fQyCAUAXdXrv66|u3CyG_25i#r;MM9@eI z51!z(15?mIB~-96pcS&h3Hi>u`ahf;?Erfs?IYPh!LPe~(VDQGc6XO3?**!p+IanDLc=BR$+p4O! zcj`^qn8C%3Kb@(&cHZN+ScZZokq63^tSU?A1{5M-p7fcs#o8Ur)3ulj(2W3=FHHX) zZ7Q|okI@?P%>rxwZ7T(TA18^@@3VoZStTX#TStrvG_ANI^4g_@v!)H;dMtw zmKX1UmPH`dO6N>BU-mM7{qw}LvU^W2sK!qee~f!ZugaH&?)liLU;2DFlc7 z^}8&zxwdAgtN)6*+g+o@)SqF&4=GAAZ-4Xr>)4CB74Hr=+8(+H9a;}+sIhAAh}S## zI73=8vb!65y7zSC_}ahXNs{nTF>Z>;e+y8bxbqL_d^JeAhf_8RetGo8e-TXjj$=a; z?NxDFjMfUY-j~cGFJQWl#B|LZkl_qzdPyDnR{@;^`)J^+MtG-Fzbac7eu@p!=N2n}Kh#j6*^~c51WweLXvYU=j}q?CL7rxUb0GtL=hlfLbF1Hv zPgPgizY$>7`}Z@1FmoXrWvuW(IvtnU;>!i`>s)^g?E|^e!Sf`5SUj!(qWM{ml{Btp zEO8vLo4_n3;@&H&mqS7#c2NDQ8A~P(9iW@NL@|Yze<`16#x3djytxLy==|9wQahyI z0l7|w%)%D|x0a90Qu%;^hiRu1N|Wv5flA@g_V(?9%}qTy8VeVvsN+FDIl|LA!u+~n z?B@F_&7aMY+TTX)iSLppw#_EldB2n&cFt*6@7C#;^)EUpC})|IRm&_wNz1GsKZ)q# zG%Uj|Xw9vy20pUWOy8NSdouCt>TptIV-8za8S4J{sfA*;zIBt75KsGj`XZakbBS!< z0WXG)>t%OCE~q}dj1WUiQhVMJ7kpi2je%AWa9jMU@D6kp%DBkJFFZdWd5vN2dcpgq zlUqkXBZckhE!=HM*)H5}%|vVRl*N_DcXf>u1vJ8hBWj5fqnSE z%teZ5j=GwF?Pkqqg&FPS3~({WatJrfYW+YXhYxmsH+aLxlsL$OB3*{Ff+PVrS>dhg^~?C39${M&tz~Pd5B9m?cMuMp5lKoX_njxMm+j z>*Thh3|2c_1vlY4k+k#kzEFpXe<~AjLDij3cu$(Y^&)#JTOq5)l8pP&^ zqX9gsg3e2Zvy@cQNS(b*Sn;o~Z1nG)$Q(Zt`<7`vr% zp|YjnO!GrhU`LMF{Ndk|qOWdkV*@uX?t!LnltbyCi`uMnRZNS&tVv&9VZU)9)ha88 zX8QlV08=ifKNJN@z1?QaKMH7fK+D#EzC+8@$nb481>g#e`}LEcSpA!zuf5cINj4{_f^ibpdbjZkc2Km*gQ42{HUhij{7@PJM`@AAYpkDLRSA0Ekh@;m ztAo0Qk~dFW4v|w;TSp+`JA>PlZ#`sz_!hp^J7Aw}xzJ`wLGvl51?A1n&2}p5BO(?q zMLZTCJsnujO^swM^#(pQHPHyrvuAlzxcJ94ww+uB5xShTQr0#tpDtj&s)+2@c3unR@l4$qc!a2GK|MNNe5rIS#H7jR_`_~3@e^k}*!j|xz5+H^X^>*XP29;ZH`90A*OY5POBYq{K~(Y=PMs0pt~o&_(PZiRRqYoOeC{t>$12@ z-v=BQGSRkQXc!PVMX2N9f1&`jLUeAVe+NHiRmHgB7p(6pa$4zi+DahurrDG6eL{n{9bWpx zcs)uJ=C^p?(=3hIwunj99ZOd=U^NNN%0Al*SN0D~47Tr0e+7I|hwg!j<&b<_g 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 M24?!7b)BOA2X?qyO#lD@ diff --git a/frontend/public/apple-touch-icon.png b/frontend/public/apple-touch-icon.png deleted file mode 100644 index c4d863b1729cd94f07ea6194ef7350536b76dce0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20856 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 TAHyVD00000NkvXXu0mjf{SB=1 diff --git a/frontend/public/favicon-16x16.png b/frontend/public/favicon-16x16.png deleted file mode 100644 index 26bd66ae78804663ff62d59f5c7a4c2454429d18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 778 zcmV+l1NHogP) zT}TvB6vxlGvy(|eYp$V0Y3s1ge$4hk(HDjFEKv_3)k80)Ac3LPVj@muSXS7JQc*%s zF9p^^M9@pUR1ZMoo%0;<^@_kNxY7nV>BDkC{kr16Xm&z$qY3QA)2*>gmg4peO$eklg+^0Ek9S zaEH|ItH!i&iE%CiOrT}88b`wSK?S-LD67CFD_5iGb@KvS(B zhK5GwFreThCxh0U_5aCc{Wd$s~Ct~e7c1fUN8nj?Q;tJ zI-g7!5p5e>RUHlyMuAZTfn$K1XW`Q{T1`J2JBA+s2rV9^78x}1EqihbDwP3-_?w%! z)zN*i6v)g7Fv4TJT!0x$S+6x!+A-PE@FSC7?owoiwq0@k{hgcwk3YnTX|7=Ns-BLu z#7xC`3wZJ$rU zKR-~X$4}<=UhMT2*eMB6hD}^mJ~HexbgecMn*;dYB7wZ&0ZoCMbz-(f^|#UhDsjsF zHHgs36W8%)fKWK4>)Nx$ZIpel5Ye77Wj-KDo=ui0bQ1=9IAEMo?1&z=dO`g-yYMLG zJdl;+i0r5l30HwsQY?w9&+*^2+(NFH_0be-kHx~@78Wj2koj=RzG}+`+eMSqbN7n) zsxKjJHXBCd-BN{r0m{q0CET79B48O6@o`ks9`U3lFVI5ZA924cAili(F#rGn07*qo IM6N<$g2d-!wg3PC diff --git a/frontend/public/favicon-32x32.png b/frontend/public/favicon-32x32.png deleted file mode 100644 index f8801a86ea2a7d983c52bfc8df96b53045b8f6d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1790 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 diff --git a/frontend/public/index.html b/frontend/public/index.html deleted file mode 100644 index 5e0e89a0..00000000 --- a/frontend/public/index.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - Dispatcharr - - - -
    - - - diff --git a/frontend/public/logo192.png b/frontend/public/logo192.png deleted file mode 100644 index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN diff --git a/frontend/public/manifest.json b/frontend/public/manifest.json deleted file mode 100644 index 080d6c77..00000000 --- a/frontend/public/manifest.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "short_name": "React App", - "name": "Create React App Sample", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "logo192.png", - "type": "image/png", - "sizes": "192x192" - }, - { - "src": "logo512.png", - "type": "image/png", - "sizes": "512x512" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/frontend/public/robots.txt b/frontend/public/robots.txt deleted file mode 100644 index e9e57dc4..00000000 --- a/frontend/public/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: diff --git a/frontend/public/site.webmanifest b/frontend/public/site.webmanifest deleted file mode 100644 index 45dc8a20..00000000 --- a/frontend/public/site.webmanifest +++ /dev/null @@ -1 +0,0 @@ -{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/vite/public/vite.svg b/frontend/public/vite.svg similarity index 100% rename from vite/public/vite.svg rename to frontend/public/vite.svg diff --git a/frontend/src/App.js b/frontend/src/App.js deleted file mode 100644 index 5c758891..00000000 --- a/frontend/src/App.js +++ /dev/null @@ -1,151 +0,0 @@ -// frontend/src/App.js -import React, { useEffect, useState } from 'react'; -import axios from 'axios'; -import { - BrowserRouter as Router, - Route, - Routes, - Navigate, -} from 'react-router-dom'; -import Sidebar from './components/Sidebar'; -import Login from './pages/Login'; -import Channels from './pages/Channels'; -import M3U from './pages/M3U'; -import { ThemeProvider } from '@mui/material/styles'; -import { Box, CssBaseline, GlobalStyles } from '@mui/material'; -import theme from './theme'; -import EPG from './pages/EPG'; -import Guide from './pages/Guide'; -import Settings from './pages/Settings'; -import StreamProfiles from './pages/StreamProfiles'; -import useAuthStore from './store/auth'; -import Alert from './components/Alert'; -import FloatingVideo from './components/FloatingVideo'; -import SuperuserForm from './components/forms/SuperuserForm'; -import { WebsocketProvider } from './WebSocket'; - -const drawerWidth = 240; -const miniDrawerWidth = 60; -const defaultRoute = '/channels'; - -const App = () => { - const [open, setOpen] = useState(true); - const [needsSuperuser, setNeedsSuperuser] = useState(false); - const { - isAuthenticated, - setIsAuthenticated, - logout, - initData, - initializeAuth, - } = useAuthStore(); - - const toggleDrawer = () => { - setOpen(!open); - }; - - // Check if a superuser exists on first load. - useEffect(() => { - async function checkSuperuser() { - try { - const res = await axios.get('/api/accounts/initialize-superuser/'); - if (!res.data.superuser_exists) { - setNeedsSuperuser(true); - } - } catch (error) { - console.error('Error checking superuser status:', error); - } - } - checkSuperuser(); - }, []); - - // Authentication check - useEffect(() => { - const checkAuth = async () => { - const loggedIn = await initializeAuth(); - if (loggedIn) { - await initData(); - setIsAuthenticated(true); - } else { - await logout(); - } - }; - checkAuth(); - }, [initializeAuth, initData, setIsAuthenticated, logout]); - - // If no superuser exists, show the initialization form - if (needsSuperuser) { - return setNeedsSuperuser(false)} />; - } - - return ( - - - - - - {/* Sidebar on the left */} - - - {/* Main content area */} - - - - {isAuthenticated ? ( - <> - } /> - } /> - } /> - } - /> - } /> - } /> - - ) : ( - } /> - )} - - } - /> - - - - - - - - - - ); -}; - -export default App; diff --git a/vite/src/App.jsx b/frontend/src/App.jsx similarity index 62% rename from vite/src/App.jsx rename to frontend/src/App.jsx index 198d1f06..4b30aea2 100644 --- a/vite/src/App.jsx +++ b/frontend/src/App.jsx @@ -6,27 +6,22 @@ import { Routes, Navigate, } from 'react-router-dom'; -// import Sidebar from './components/Sidebar'; -import Sidebar from './components/Sidebar-new'; +import Sidebar from './components/Sidebar'; import Login from './pages/Login'; import Channels from './pages/Channels'; import M3U from './pages/M3U'; -import { ThemeProvider } from '@mui/material/styles'; -import { Box, CssBaseline, GlobalStyles } from '@mui/material'; -import theme from './theme'; import EPG from './pages/EPG'; import Guide from './pages/Guide'; import Settings from './pages/Settings'; import StreamProfiles from './pages/StreamProfiles'; import useAuthStore from './store/auth'; -import Alert from './components/Alert'; import FloatingVideo from './components/FloatingVideo'; -import SuperuserForm from './components/forms/SuperuserForm'; import { WebsocketProvider } from './WebSocket'; -import { AppShell, MantineProvider } from '@mantine/core'; +import { Box, AppShell, MantineProvider } from '@mantine/core'; import '@mantine/core/styles.css'; // Ensure Mantine global styles load import 'mantine-react-table/styles.css'; import mantineTheme from './mantineTheme'; +import API from './api'; const drawerWidth = 240; const miniDrawerWidth = 60; @@ -34,13 +29,13 @@ const defaultRoute = '/channels'; const App = () => { const [open, setOpen] = useState(true); - const [needsSuperuser, setNeedsSuperuser] = useState(false); const { isAuthenticated, setIsAuthenticated, logout, initData, initializeAuth, + setSuperuserExists, } = useAuthStore(); const toggleDrawer = () => { @@ -51,10 +46,9 @@ const App = () => { useEffect(() => { async function checkSuperuser() { try { - const response = await fetch('/api/accounts/initialize-superuser/'); - const res = await response.json(); - if (!res.data.superuser_exists) { - setNeedsSuperuser(true); + const response = await API.fetchSuperUser(); + if (!response.superuser_exists) { + setSuperuserExists(false); } } catch (error) { console.error('Error checking superuser status:', error); @@ -77,11 +71,6 @@ const App = () => { checkAuth(); }, [initializeAuth, initData, setIsAuthenticated, logout]); - // If no superuser exists, show the initialization form - if (needsSuperuser) { - return setNeedsSuperuser(false)} />; - } - return ( { withGlobalStyles withNormalizeCSS > - - - - - - + + + + + @@ -141,7 +121,7 @@ const App = () => { } /> ) : ( - } /> + } /> )} { - - + + + - - - - + + ); }; diff --git a/frontend/src/App.test.js b/frontend/src/App.test.js deleted file mode 100644 index 1f03afee..00000000 --- a/frontend/src/App.test.js +++ /dev/null @@ -1,8 +0,0 @@ -import { render, screen } from '@testing-library/react'; -import App from './App'; - -test('renders learn react link', () => { - render(); - const linkElement = screen.getByText(/learn react/i); - expect(linkElement).toBeInTheDocument(); -}); diff --git a/frontend/src/WebSocket.js b/frontend/src/WebSocket.js deleted file mode 100644 index dc64dbcf..00000000 --- a/frontend/src/WebSocket.js +++ /dev/null @@ -1,85 +0,0 @@ -import React, { - useState, - useEffect, - useRef, - createContext, - useContext, -} from 'react'; -import useStreamsStore from './store/streams'; -import useAlertStore from './store/alerts'; - -export const WebsocketContext = createContext(false, null, () => {}); - -export const WebsocketProvider = ({ children }) => { - const [isReady, setIsReady] = useState(false); - const [val, setVal] = useState(null); - - const { showAlert } = useAlertStore(); - const { fetchStreams } = useStreamsStore(); - - const ws = useRef(null); - - useEffect(() => { - let wsUrl = `${window.location.host}/ws/`; - if (process.env.REACT_APP_ENV_MODE == 'dev') { - wsUrl = `${window.location.hostname}:8001/ws/`; - } - - if (window.location.protocol.match(/https/)) { - wsUrl = `wss://${wsUrl}`; - } else { - wsUrl = `ws://${wsUrl}`; - } - - const socket = new WebSocket(wsUrl); - - socket.onopen = () => { - console.log('websocket connected'); - setIsReady(true); - }; - - // Reconnection logic - socket.onclose = () => { - setIsReady(false); - setTimeout(() => { - const reconnectWs = new WebSocket(wsUrl); - reconnectWs.onopen = () => setIsReady(true); - }, 3000); // Attempt to reconnect every 3 seconds - }; - - socket.onmessage = async (event) => { - event = JSON.parse(event.data); - switch (event.type) { - case 'm3u_refresh': - if (event.message?.success) { - fetchStreams(); - showAlert(event.message.message, 'success'); - } - break; - - default: - console.error(`Unknown websocket event type: ${event.type}`); - break; - } - }; - - ws.current = socket; - - return () => { - socket.close(); - }; - }, []); - - const ret = [isReady, val, ws.current?.send.bind(ws.current)]; - - return ( - - {children} - - ); -}; - -export const useWebSocket = () => { - const socket = useContext(WebsocketContext); - return socket; -}; diff --git a/vite/src/WebSocket.jsx b/frontend/src/WebSocket.jsx similarity index 91% rename from vite/src/WebSocket.jsx rename to frontend/src/WebSocket.jsx index a5ae12e7..39ed0e49 100644 --- a/vite/src/WebSocket.jsx +++ b/frontend/src/WebSocket.jsx @@ -6,7 +6,7 @@ import React, { useContext, } from 'react'; import useStreamsStore from './store/streams'; -import useAlertStore from './store/alerts'; +import { notifications } from '@mantine/notifications'; export const WebsocketContext = createContext(false, null, () => {}); @@ -14,7 +14,6 @@ export const WebsocketProvider = ({ children }) => { const [isReady, setIsReady] = useState(false); const [val, setVal] = useState(null); - const { showAlert } = useAlertStore(); const { fetchStreams } = useStreamsStore(); const ws = useRef(null); @@ -53,7 +52,10 @@ export const WebsocketProvider = ({ children }) => { case 'm3u_refresh': if (event.message?.success) { fetchStreams(); - showAlert(event.message.message, 'success'); + notifications.show({ + title: 'event.message.message', + color: 'green.5', + }); } break; diff --git a/frontend/src/api.js b/frontend/src/api.js index be45dd56..4ff9348f 100644 --- a/frontend/src/api.js +++ b/frontend/src/api.js @@ -9,7 +9,9 @@ import useStreamProfilesStore from './store/streamProfiles'; import useSettingsStore from './store/settings'; // If needed, you can set a base host or keep it empty if relative requests -const host = ''; +const host = import.meta.env.DEV + ? `http://${window.location.hostname}:5656` + : ''; export default class API { /** @@ -19,6 +21,27 @@ export default class API { return await useAuthStore.getState().getToken(); } + static async fetchSuperUser() { + const response = await fetch(`${host}/api/accounts/initialize-superuser/`); + return await response.json(); + } + + static async createSuperUser({ username, email, password }) { + const response = await fetch(`${host}/api/accounts/initialize-superuser/`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + username, + password, + email, + }), + }); + + return await response.json(); + } + static async login(username, password) { const response = await fetch(`${host}/api/accounts/token/`, { method: 'POST', diff --git a/vite/src/assets/react.svg b/frontend/src/assets/react.svg similarity index 100% rename from vite/src/assets/react.svg rename to frontend/src/assets/react.svg diff --git a/frontend/src/components/Alert.js b/frontend/src/components/Alert.js deleted file mode 100644 index fa843400..00000000 --- a/frontend/src/components/Alert.js +++ /dev/null @@ -1,26 +0,0 @@ -import React, { useState } from 'react'; -import { Snackbar, Alert, Button } from '@mui/material'; -import useAlertStore from '../store/alerts'; - -const AlertPopup = () => { - const { open, message, severity, hideAlert } = useAlertStore(); - - const handleClose = () => { - hideAlert(); - }; - - return ( - - - {message} - - - ); -}; - -export default AlertPopup; diff --git a/frontend/src/components/FloatingVideo.js b/frontend/src/components/FloatingVideo.js deleted file mode 100644 index cc162c11..00000000 --- a/frontend/src/components/FloatingVideo.js +++ /dev/null @@ -1,98 +0,0 @@ -// frontend/src/components/FloatingVideo.js -import React, { useEffect, useRef } from 'react'; -import Draggable from 'react-draggable'; -import useVideoStore from '../store/useVideoStore'; -import mpegts from 'mpegts.js'; - -export default function FloatingVideo() { - const { isVisible, streamUrl, hideVideo } = useVideoStore(); - const videoRef = useRef(null); - const playerRef = useRef(null); - - useEffect(() => { - if (!isVisible || !streamUrl) { - return; - } - - // If the browser supports MSE for live playback, initialize mpegts.js - if (mpegts.getFeatureList().mseLivePlayback) { - const player = mpegts.createPlayer({ - type: 'mpegts', - url: streamUrl, - isLive: true, - // You can include other custom MPEGTS.js config fields here, e.g.: - // cors: true, - // withCredentials: false, - }); - - player.attachMediaElement(videoRef.current); - player.load(); - player.play(); - - // Store player instance so we can clean up later - playerRef.current = player; - } - - // Cleanup when component unmounts or streamUrl changes - return () => { - if (playerRef.current) { - playerRef.current.destroy(); - playerRef.current = null; - } - }; - }, [isVisible, streamUrl]); - - // If the floating video is hidden or no URL is selected, do not render - if (!isVisible || !streamUrl) { - return null; - } - - return ( - -
    - {/* Simple header row with a close button */} -
    - -
    - - {/* The
    -
    - ); -} diff --git a/vite/src/components/FloatingVideo.jsx b/frontend/src/components/FloatingVideo.jsx similarity index 100% rename from vite/src/components/FloatingVideo.jsx rename to frontend/src/components/FloatingVideo.jsx diff --git a/frontend/src/components/Sidebar.js b/frontend/src/components/Sidebar.js deleted file mode 100644 index b873d879..00000000 --- a/frontend/src/components/Sidebar.js +++ /dev/null @@ -1,182 +0,0 @@ -import React from 'react'; -import { Link, useLocation } from 'react-router-dom'; -import { - Drawer, - Toolbar, - Box, - Typography, - Avatar, - List, - ListItemButton, - ListItemIcon, - ListItemText, -} from '@mui/material'; -import { useTheme } from '@mui/material/styles'; -import { - ListOrdered, - Play, - Database, - SlidersHorizontal, - LayoutGrid, - Settings as LucideSettings, -} from 'lucide-react'; -import logo from '../images/logo.png'; - -const navItems = [ - { label: 'Channels', icon: , path: '/channels' }, - { label: 'M3U', icon: , path: '/m3u' }, - { label: 'EPG', icon: , path: '/epg' }, - { label: 'Stream Profiles', icon: , path: '/stream-profiles' }, - { label: 'TV Guide', icon: , path: '/guide' }, - { label: 'Settings', icon: , path: '/settings' }, -]; - -const Sidebar = ({ open, drawerWidth, miniDrawerWidth, toggleDrawer }) => { - const location = useLocation(); - const theme = useTheme(); - - return ( - - - {open ? ( - - Dispatcharr Logo - - Dispatcharr - - - ) : ( - Dispatcharr Logo - )} - - - - {navItems.map((item) => { - const isActive = location.pathname.startsWith(item.path); - return ( - - - - {item.icon} - - {open && ( - - )} - - - ); - })} - - - - - - {open && ( - - John Doe - - )} - - - ); -}; - -export default Sidebar; diff --git a/vite/src/components/Sidebar-new.jsx b/frontend/src/components/Sidebar.jsx similarity index 53% rename from vite/src/components/Sidebar-new.jsx rename to frontend/src/components/Sidebar.jsx index 6aede6eb..e1bac892 100644 --- a/vite/src/components/Sidebar-new.jsx +++ b/frontend/src/components/Sidebar.jsx @@ -16,31 +16,68 @@ import { Text, UnstyledButton, } from '@mantine/core'; -import { useState } from 'react'; -import headerLogo from '../images/dispatcharr.svg'; import logo from '../images/logo.png'; +import useChannelsStore from '../store/channels'; +import './sidebar.css'; -// Navigation Items -const navItems = [ - { - label: 'Channels', - icon: , - path: '/channels', - // badge: '(323)', - }, - { label: 'M3U', icon: , path: '/m3u' }, - { label: 'EPG', icon: , path: '/epg' }, - { - label: 'Stream Profiles', - icon: , - path: '/stream-profiles', - }, - { label: 'TV Guide', icon: , path: '/guide' }, - { label: 'Settings', icon: , path: '/settings' }, -]; +const NavLink = ({ item, isActive, collapsed }) => { + return ( + + {item.icon} + {!collapsed && ( + + {item.label} + + )} + {!collapsed && item.badge && ( + + {item.badge} + + )} + + ); +}; const Sidebar = ({ collapsed, toggleDrawer, drawerWidth, miniDrawerWidth }) => { const location = useLocation(); + const { channels } = useChannelsStore(); + + // Navigation Items + const navItems = [ + { + label: 'Channels', + icon: , + path: '/channels', + badge: `(${Object.keys(channels).length})`, + }, + { label: 'M3U', icon: , path: '/m3u' }, + { label: 'EPG', icon: , path: '/epg' }, + { + label: 'Stream Profiles', + icon: , + path: '/stream-profiles', + }, + { label: 'TV Guide', icon: , path: '/guide' }, + { + label: 'Settings', + icon: , + path: '/settings', + }, + ]; return ( { const isActive = location.pathname === item.path; return ( - - {item.icon} - {!collapsed && ( - - {item.label} - - )} - {!collapsed && item.badge && ( - - {item.badge} - - )} - + ); })} diff --git a/frontend/src/components/forms/Channel.js b/frontend/src/components/forms/Channel.js deleted file mode 100644 index 2b5d84e2..00000000 --- a/frontend/src/components/forms/Channel.js +++ /dev/null @@ -1,491 +0,0 @@ -import React, { useState, useEffect, useMemo } from 'react'; -import { - Box, - Typography, - Stack, - TextField, - Button, - Select, - MenuItem, - Grid2, - InputLabel, - FormControl, - CircularProgress, - IconButton, - Dialog, - DialogTitle, - DialogContent, - DialogActions, - FormHelperText, -} from '@mui/material'; -import { useFormik } from 'formik'; -import * as Yup from 'yup'; -import useChannelsStore from '../../store/channels'; -import API from '../../api'; -import useStreamProfilesStore from '../../store/streamProfiles'; -import { Add as AddIcon, Remove as RemoveIcon } from '@mui/icons-material'; -import useStreamsStore from '../../store/streams'; -import { - MaterialReactTable, - useMaterialReactTable, -} from 'material-react-table'; -import ChannelGroupForm from './ChannelGroup'; -import usePlaylistsStore from '../../store/playlists'; -import logo from '../../images/logo.png'; - -const Channel = ({ channel = null, isOpen, onClose }) => { - const channelGroups = useChannelsStore((state) => state.channelGroups); - const streams = useStreamsStore((state) => state.streams); - const { profiles: streamProfiles } = useStreamProfilesStore(); - const { playlists } = usePlaylistsStore(); - - const [logoFile, setLogoFile] = useState(null); - const [logoPreview, setLogoPreview] = useState(logo); - const [channelStreams, setChannelStreams] = useState([]); - const [channelGroupModelOpen, setChannelGroupModalOpen] = useState(false); - - const addStream = (stream) => { - const streamSet = new Set(channelStreams); - streamSet.add(stream); - setChannelStreams(Array.from(streamSet)); - }; - - const removeStream = (stream) => { - const streamSet = new Set(channelStreams); - streamSet.delete(stream); - setChannelStreams(Array.from(streamSet)); - }; - - const handleLogoChange = (e) => { - const file = e.target.files[0]; - if (file) { - setLogoFile(file); - setLogoPreview(URL.createObjectURL(file)); - } - }; - - const formik = useFormik({ - initialValues: { - channel_name: '', - channel_number: '', - channel_group_id: '', - stream_profile_id: '0', - tvg_id: '', - tvg_name: '', - }, - validationSchema: Yup.object({ - channel_name: Yup.string().required('Name is required'), - channel_number: Yup.string().required('Invalid channel number').min(0), - channel_group_id: Yup.string().required('Channel group is required'), - }), - onSubmit: async (values, { setSubmitting, resetForm }) => { - if (values.stream_profile_id == '0') { - values.stream_profile_id = null; - } - - console.log(values); - if (channel?.id) { - await API.updateChannel({ - id: channel.id, - ...values, - logo_file: logoFile, - streams: channelStreams.map((stream) => stream.id), - }); - } else { - await API.addChannel({ - ...values, - logo_file: logoFile, - streams: channelStreams.map((stream) => stream.id), - }); - } - - resetForm(); - setLogoFile(null); - setLogoPreview(logo); - setSubmitting(false); - onClose(); - }, - }); - - useEffect(() => { - if (channel) { - formik.setValues({ - channel_name: channel.channel_name, - channel_number: channel.channel_number, - channel_group_id: channel.channel_group?.id, - stream_profile_id: channel.stream_profile_id || '0', - tvg_id: channel.tvg_id, - tvg_name: channel.tvg_name, - }); - - console.log(channel); - const filteredStreams = streams - .filter((stream) => channel.stream_ids.includes(stream.id)) - .sort( - (a, b) => - channel.stream_ids.indexOf(a.id) - channel.stream_ids.indexOf(b.id) - ); - setChannelStreams(filteredStreams); - } else { - formik.resetForm(); - } - }, [channel]); - - const activeStreamsTable = useMaterialReactTable({ - data: channelStreams, - columns: useMemo( - () => [ - { - header: 'Name', - accessorKey: 'name', - }, - { - header: 'M3U', - accessorKey: 'group_name', - }, - ], - [] - ), - enableSorting: false, - enableBottomToolbar: false, - enableTopToolbar: false, - columnFilterDisplayMode: 'popover', - enablePagination: false, - enableRowVirtualization: true, - enableRowOrdering: true, - rowVirtualizerOptions: { overscan: 5 }, //optionally customize the row virtualizer - initialState: { - density: 'compact', - }, - enableRowActions: true, - positionActionsColumn: 'last', - renderRowActions: ({ row }) => ( - <> - removeStream(row.original)} - > - {/* Small icon size */} - - - ), - muiTableContainerProps: { - sx: { - height: '200px', - }, - }, - muiRowDragHandleProps: ({ table }) => ({ - onDragEnd: () => { - const { draggingRow, hoveredRow } = table.getState(); - - if (hoveredRow && draggingRow) { - channelStreams.splice( - hoveredRow.index, - 0, - channelStreams.splice(draggingRow.index, 1)[0] - ); - - setChannelStreams([...channelStreams]); - } - }, - }), - }); - - const availableStreamsTable = useMaterialReactTable({ - data: streams, - columns: useMemo( - () => [ - { - header: 'Name', - accessorKey: 'name', - }, - { - header: 'M3U', - accessorFn: (row) => - playlists.find((playlist) => playlist.id === row.m3u_account)?.name, - }, - ], - [] - ), - enableBottomToolbar: false, - enableTopToolbar: false, - columnFilterDisplayMode: 'popover', - enablePagination: false, - enableRowVirtualization: true, - rowVirtualizerOptions: { overscan: 5 }, //optionally customize the row virtualizer - initialState: { - density: 'compact', - }, - enableRowActions: true, - renderRowActions: ({ row }) => ( - <> - addStream(row.original)} - > - {/* Small icon size */} - - - ), - positionActionsColumn: 'last', - muiTableContainerProps: { - sx: { - height: '200px', - }, - }, - }); - - if (!isOpen) { - return <>; - } - - return ( - <> - - - Channel - - -
    - - - - - - - - - - Channel Group - - - - {formik.touched.channel_group_id && - formik.errors.channel_group_id} - - - - - setChannelGroupModalOpen(true)} - title="Create new group" - size="small" - variant="filled" - > - - - - - - - - Stream Profile - - - - - - - - - - - - - - - - {/* File upload input */} - - Logo - {/* Display selected image */} - - Selected - - handleLogoChange(event)} - style={{ display: 'none' }} - /> - - - - - - - - - Active Streams - - - - - Available Streams - - - - - - - {/* Submit button */} - - -
    -
    - setChannelGroupModalOpen(false)} - /> - - ); -}; - -export default Channel; diff --git a/frontend/src/components/forms/Channel.jsx b/frontend/src/components/forms/Channel.jsx new file mode 100644 index 00000000..9e7b72f1 --- /dev/null +++ b/frontend/src/components/forms/Channel.jsx @@ -0,0 +1,416 @@ +import React, { useState, useEffect, useMemo } from 'react'; +import { useFormik } from 'formik'; +import * as Yup from 'yup'; +import useChannelsStore from '../../store/channels'; +import API from '../../api'; +import useStreamProfilesStore from '../../store/streamProfiles'; +import { Add as AddIcon, Remove as RemoveIcon } from '@mui/icons-material'; +import useStreamsStore from '../../store/streams'; +import { MantineReactTable, useMantineReactTable } from 'mantine-react-table'; +import ChannelGroupForm from './ChannelGroup'; +import usePlaylistsStore from '../../store/playlists'; +import logo from '../../images/logo.png'; +import { + Box, + Button, + Modal, + TextInput, + NativeSelect, + Text, + Group, + ActionIcon, + Center, + Grid, + Flex, +} from '@mantine/core'; + +const Channel = ({ channel = null, isOpen, onClose }) => { + const channelGroups = useChannelsStore((state) => state.channelGroups); + const streams = useStreamsStore((state) => state.streams); + const { profiles: streamProfiles } = useStreamProfilesStore(); + const { playlists } = usePlaylistsStore(); + + const [logoFile, setLogoFile] = useState(null); + const [logoPreview, setLogoPreview] = useState(logo); + const [channelStreams, setChannelStreams] = useState([]); + const [channelGroupModelOpen, setChannelGroupModalOpen] = useState(false); + + const addStream = (stream) => { + const streamSet = new Set(channelStreams); + streamSet.add(stream); + setChannelStreams(Array.from(streamSet)); + }; + + const removeStream = (stream) => { + const streamSet = new Set(channelStreams); + streamSet.delete(stream); + setChannelStreams(Array.from(streamSet)); + }; + + const handleLogoChange = (e) => { + const file = e.target.files[0]; + if (file) { + setLogoFile(file); + setLogoPreview(URL.createObjectURL(file)); + } + }; + + const formik = useFormik({ + initialValues: { + channel_name: '', + channel_number: '', + channel_group_id: '', + stream_profile_id: '0', + tvg_id: '', + tvg_name: '', + }, + validationSchema: Yup.object({ + channel_name: Yup.string().required('Name is required'), + channel_number: Yup.string().required('Invalid channel number').min(0), + channel_group_id: Yup.string().required('Channel group is required'), + }), + onSubmit: async (values, { setSubmitting, resetForm }) => { + if (values.stream_profile_id == '0') { + values.stream_profile_id = null; + } + + console.log(values); + if (channel?.id) { + await API.updateChannel({ + id: channel.id, + ...values, + logo_file: logoFile, + stream_ids: channelStreams.map((stream) => stream.id), + }); + } else { + await API.addChannel({ + ...values, + logo_file: logoFile, + stream_ids: channelStreams.map((stream) => stream.id), + }); + } + + resetForm(); + setLogoFile(null); + setLogoPreview(logo); + setSubmitting(false); + onClose(); + }, + }); + + useEffect(() => { + if (channel) { + formik.setValues({ + channel_name: channel.channel_name, + channel_number: channel.channel_number, + channel_group_id: channel.channel_group?.id, + stream_profile_id: channel.stream_profile_id || '0', + tvg_id: channel.tvg_id, + tvg_name: channel.tvg_name, + }); + + console.log(channel); + setChannelStreams(channel.streams); + } else { + formik.resetForm(); + } + }, [channel]); + + // const activeStreamsTable = useMantineReactTable({ + // data: channelStreams, + // columns: useMemo( + // () => [ + // { + // header: 'Name', + // accessorKey: 'name', + // Cell: ({ cell }) => ( + //
    + // {cell.getValue()} + //
    + // ), + // }, + // { + // header: 'M3U', + // accessorKey: 'group_name', + // Cell: ({ cell }) => ( + //
    + // {cell.getValue()} + //
    + // ), + // }, + // ], + // [] + // ), + // enableSorting: false, + // enableBottomToolbar: false, + // enableTopToolbar: false, + // columnFilterDisplayMode: 'popover', + // enablePagination: false, + // enableRowVirtualization: true, + // enableRowOrdering: true, + // rowVirtualizerOptions: { overscan: 5 }, //optionally customize the row virtualizer + // initialState: { + // density: 'compact', + // }, + // enableRowActions: true, + // positionActionsColumn: 'last', + // renderRowActions: ({ row }) => ( + // <> + // removeStream(row.original)} + // > + // {/* Small icon size */} + // + // + // ), + // mantineTableContainerProps: { + // style: { + // height: '200px', + // }, + // }, + // mantineRowDragHandleProps: ({ table }) => ({ + // onDragEnd: () => { + // const { draggingRow, hoveredRow } = table.getState(); + + // if (hoveredRow && draggingRow) { + // channelStreams.splice( + // hoveredRow.index, + // 0, + // channelStreams.splice(draggingRow.index, 1)[0] + // ); + + // setChannelStreams([...channelStreams]); + // } + // }, + // }), + // }); + + // const availableStreamsTable = useMantineReactTable({ + // data: streams, + // columns: useMemo( + // () => [ + // { + // header: 'Name', + // accessorKey: 'name', + // }, + // { + // header: 'M3U', + // accessorFn: (row) => + // playlists.find((playlist) => playlist.id === row.m3u_account)?.name, + // }, + // ], + // [] + // ), + // enableBottomToolbar: false, + // enableTopToolbar: false, + // columnFilterDisplayMode: 'popover', + // enablePagination: false, + // enableRowVirtualization: true, + // rowVirtualizerOptions: { overscan: 5 }, //optionally customize the row virtualizer + // initialState: { + // density: 'compact', + // }, + // enableRowActions: true, + // renderRowActions: ({ row }) => ( + // <> + // addStream(row.original)} + // > + // {/* Small icon size */} + // + // + // ), + // positionActionsColumn: 'last', + // mantineTableContainerProps: { + // style: { + // height: '200px', + // }, + // }, + // }); + + if (!isOpen) { + return <>; + } + + return ( + <> + +
    + + + + + + ({ + value: `${option.id}`, + label: option.name, + }))} + /> +
    + setChannelGroupModalOpen(true)} + title="Create new group" + size="small" + variant="filled" + > + + +
    +
    + + ({ + value: `${option.id}`, + label: option.profile_name, + }))} + /> + + +
    + + + + + + + + + + Logo + {/* Display selected image */} + + Selected + + handleLogoChange(event)} + style={{ display: 'none' }} + /> + + + +
    + + {/* + + Active Streams + + + + + Available Streams + + + */} + + + + +
    +
    + setChannelGroupModalOpen(false)} + /> + + ); +}; + +export default Channel; diff --git a/frontend/src/components/forms/ChannelGroup.js b/frontend/src/components/forms/ChannelGroup.js deleted file mode 100644 index dd4f2ee4..00000000 --- a/frontend/src/components/forms/ChannelGroup.js +++ /dev/null @@ -1,94 +0,0 @@ -// Modal.js -import React, { useEffect } from "react"; -import { - TextField, - Button, - CircularProgress, - Dialog, - DialogTitle, - DialogContent, - DialogActions, -} from "@mui/material"; -import { useFormik } from "formik"; -import * as Yup from "yup"; -import API from "../../api"; - -const ChannelGroup = ({ channelGroup = null, isOpen, onClose }) => { - const formik = useFormik({ - initialValues: { - name: "", - }, - validationSchema: Yup.object({ - name: Yup.string().required("Name is required"), - }), - onSubmit: async (values, { setSubmitting, resetForm }) => { - if (channelGroup?.id) { - await API.updateChannelGroup({ id: channelGroup.id, ...values }); - } else { - await API.addChannelGroup(values); - } - - resetForm(); - setSubmitting(false); - onClose(); - }, - }); - - useEffect(() => { - if (channelGroup) { - formik.setValues({ - name: channelGroup.name, - }); - } else { - formik.resetForm(); - } - }, [channelGroup]); - - if (!isOpen) { - return <>; - } - - return ( - - - Channel Group - - -
    - - - - - {/* Submit button */} - - -
    -
    - ); -}; - -export default ChannelGroup; diff --git a/vite/src/components/forms/ChannelGroup.jsx b/frontend/src/components/forms/ChannelGroup.jsx similarity index 96% rename from vite/src/components/forms/ChannelGroup.jsx rename to frontend/src/components/forms/ChannelGroup.jsx index 407695df..93741ef1 100644 --- a/vite/src/components/forms/ChannelGroup.jsx +++ b/frontend/src/components/forms/ChannelGroup.jsx @@ -3,7 +3,7 @@ import React, { useEffect } from 'react'; import { useFormik } from 'formik'; import * as Yup from 'yup'; import API from '../../api'; -import { Flex, TextInput, Button } from '@mantine/core'; +import { Flex, TextInput, Button, Modal } from '@mantine/core'; const ChannelGroup = ({ channelGroup = null, isOpen, onClose }) => { const formik = useFormik({ diff --git a/frontend/src/components/forms/EPG.js b/frontend/src/components/forms/EPG.js deleted file mode 100644 index 232a2791..00000000 --- a/frontend/src/components/forms/EPG.js +++ /dev/null @@ -1,175 +0,0 @@ -// Modal.js -import React, { useState, useEffect } from 'react'; -import { - TextField, - Button, - Select, - MenuItem, - InputLabel, - FormControl, - CircularProgress, - Dialog, - DialogTitle, - DialogContent, - DialogActions, -} from '@mui/material'; -import { useFormik } from 'formik'; -import * as Yup from 'yup'; -import API from '../../api'; -import useEPGsStore from '../../store/epgs'; - -const EPG = ({ epg = null, isOpen, onClose }) => { - const epgs = useEPGsStore((state) => state.epgs); - const [file, setFile] = useState(null); - - const handleFileChange = (e) => { - const file = e.target.files[0]; - if (file) { - setFile(file); - } - }; - - const formik = useFormik({ - initialValues: { - name: '', - source_type: '', - url: '', - api_key: '', - is_active: true, - }, - validationSchema: Yup.object({ - name: Yup.string().required('Name is required'), - source_type: Yup.string().required('Source type is required'), - }), - onSubmit: async (values, { setSubmitting, resetForm }) => { - if (epg?.id) { - await API.updateEPG({ id: epg.id, ...values, epg_file: file }); - } else { - await API.addEPG({ - ...values, - epg_file: file, - }); - } - - resetForm(); - setFile(null); - setSubmitting(false); - onClose(); - }, - }); - - useEffect(() => { - if (epg) { - formik.setValues({ - name: epg.name, - source_type: epg.source_type, - url: epg.url, - api_key: epg.api_key, - is_active: epg.is_active, - }); - } else { - formik.resetForm(); - } - }, [epg]); - - if (!isOpen) { - return <>; - } - - return ( - - - EPG Source - -
    - - - - - - - - - Source Type - - - - - - {/* Submit button */} - - -
    -
    - ); -}; - -export default EPG; diff --git a/vite/src/components/forms/EPG.jsx b/frontend/src/components/forms/EPG.jsx similarity index 95% rename from vite/src/components/forms/EPG.jsx rename to frontend/src/components/forms/EPG.jsx index 93b0ca5f..4fd46bcb 100644 --- a/vite/src/components/forms/EPG.jsx +++ b/frontend/src/components/forms/EPG.jsx @@ -116,11 +116,11 @@ const EPG = ({ epg = null, isOpen, onClose }) => { data={[ { label: 'XMLTV', - valeu: 'xmltv', + value: 'xmltv', }, { label: 'Schedules Direct', - valeu: 'schedules_direct', + value: 'schedules_direct', }, ]} /> @@ -132,7 +132,7 @@ const EPG = ({ epg = null, isOpen, onClose }) => { disabled={formik.isSubmitting} size="small" > - {formik.isSubmitting ? : 'Submit'} + Submit diff --git a/frontend/src/components/forms/LoginForm.js b/frontend/src/components/forms/LoginForm.js deleted file mode 100644 index f7b4445e..00000000 --- a/frontend/src/components/forms/LoginForm.js +++ /dev/null @@ -1,111 +0,0 @@ -import React, { useState, useEffect } from 'react'; -import { useNavigate } from 'react-router-dom'; -import useAuthStore from '../../store/auth'; -import { - Box, - TextField, - Button, - Typography, - Grid2, - Paper, -} from '@mui/material'; - -const LoginForm = () => { - const { login, isAuthenticated, initData } = useAuthStore(); // Get login function from AuthContext - const navigate = useNavigate(); // Hook to navigate to other routes - const [formData, setFormData] = useState({ username: '', password: '' }); - - useEffect(() => { - if (isAuthenticated) { - navigate('/channels'); - } - }, [isAuthenticated, navigate]); - - const handleInputChange = (e) => { - setFormData({ - ...formData, - [e.target.name]: e.target.value, - }); - }; - - const handleSubmit = async (e) => { - e.preventDefault(); - await login(formData); - initData(); - navigate('/channels'); // Or any other route you'd like - }; - - // // Handle form submission - // const handleSubmit = async (e) => { - // e.preventDefault(); - // setLoading(true); - // setError(''); // Reset error on each new submission - - // await login(username, password) - // navigate('/channels'); // Or any other route you'd like - // }; - - return ( - - - - Login - -
    - - - - - - - - - - - -
    -
    -
    - ); -}; - -export default LoginForm; diff --git a/vite/src/components/forms/LoginForm.jsx b/frontend/src/components/forms/LoginForm.jsx similarity index 100% rename from vite/src/components/forms/LoginForm.jsx rename to frontend/src/components/forms/LoginForm.jsx diff --git a/frontend/src/components/forms/M3U.js b/frontend/src/components/forms/M3U.js deleted file mode 100644 index 37f8bf27..00000000 --- a/frontend/src/components/forms/M3U.js +++ /dev/null @@ -1,246 +0,0 @@ -// Modal.js -import React, { useState, useEffect } from 'react'; -import { - Box, - Typography, - Stack, - TextField, - Button, - Select, - MenuItem, - InputLabel, - FormControl, - CircularProgress, - FormControlLabel, - Checkbox, - Dialog, - DialogTitle, - DialogContent, - DialogActions, -} from '@mui/material'; -import { useFormik } from 'formik'; -import * as Yup from 'yup'; -import API from '../../api'; -import useUserAgentsStore from '../../store/userAgents'; -import M3UProfiles from './M3UProfiles'; - -const M3U = ({ playlist = null, isOpen, onClose }) => { - const userAgents = useUserAgentsStore((state) => state.userAgents); - const [file, setFile] = useState(null); - const [profileModalOpen, setProfileModalOpen] = useState(false); - - const handleFileChange = (e) => { - const file = e.target.files[0]; - if (file) { - setFile(file); - } - }; - - const formik = useFormik({ - initialValues: { - name: '', - server_url: '', - user_agent: '', - is_active: true, - max_streams: 0, - }, - validationSchema: Yup.object({ - name: Yup.string().required('Name is required'), - server_url: Yup.string().required('Server URL is required'), - user_agent: Yup.string().required('User-Agent is required'), - max_streams: Yup.string().required('Max streams is required'), - }), - onSubmit: async (values, { setSubmitting, resetForm }) => { - if (playlist?.id) { - await API.updatePlaylist({ - id: playlist.id, - ...values, - uploaded_file: file, - }); - } else { - await API.addPlaylist({ - ...values, - uploaded_file: file, - }); - } - - resetForm(); - setFile(null); - setSubmitting(false); - onClose(); - }, - }); - - useEffect(() => { - if (playlist) { - formik.setValues({ - name: playlist.name, - server_url: playlist.server_url, - max_streams: playlist.max_streams, - user_agent: playlist.user_agent, - is_active: playlist.is_active, - }); - } else { - formik.resetForm(); - } - }, [playlist]); - - if (!isOpen) { - return <>; - } - - return ( - - - M3U Account - - -
    - - - - - - - - File - - handleFileChange(event)} - style={{ display: 'none' }} - /> - - - - - - - - User-Agent - - - - - formik.setFieldValue('is_active', e.target.checked) - } - /> - } - label="Is Active" - /> - - - - - - - - - {playlist && ( - setProfileModalOpen(false)} - /> - )} - -
    - ); -}; - -export default M3U; diff --git a/vite/src/components/forms/M3U.jsx b/frontend/src/components/forms/M3U.jsx similarity index 91% rename from vite/src/components/forms/M3U.jsx rename to frontend/src/components/forms/M3U.jsx index 1567bf2a..65c43f98 100644 --- a/vite/src/components/forms/M3U.jsx +++ b/frontend/src/components/forms/M3U.jsx @@ -23,6 +23,8 @@ const M3U = ({ playlist = null, isOpen, onClose }) => { const [file, setFile] = useState(null); const [profileModalOpen, setProfileModalOpen] = useState(false); + console.log(playlist); + const handleFileChange = (file) => { console.log(file); if (file) { @@ -34,7 +36,7 @@ const M3U = ({ playlist = null, isOpen, onClose }) => { initialValues: { name: '', server_url: '', - user_agent: '', + user_agent: `${userAgents[0].id}`, is_active: true, max_streams: 0, }, @@ -82,8 +84,6 @@ const M3U = ({ playlist = null, isOpen, onClose }) => { return <>; } - console.log(formik.values); - return (
    @@ -126,7 +126,8 @@ const M3U = ({ playlist = null, isOpen, onClose }) => { fullWidth id="max_streams" name="max_streams" - label="Max Streams (0 = unlimited)" + label="Max Streams" + placeholder="0 = Unlimited" value={formik.values.max_streams} onChange={formik.handleChange} error={formik.errors.max_streams ? formik.touched.max_streams : ''} @@ -136,7 +137,7 @@ const M3U = ({ playlist = null, isOpen, onClose }) => { id="user_agent" name="user_agent" label="User-Agent" - value={formik.values.user_agent.value} + value={formik.values.user_agent} onChange={formik.handleChange} error={formik.errors.user_agent ? formik.touched.user_agent : ''} data={userAgents.map((ua) => ({ @@ -157,15 +158,16 @@ const M3U = ({ playlist = null, isOpen, onClose }) => { /> - - + {playlist && ( + + )} - - - - - - Search - - - - - - - Replace - {resultUrl} - - - - ); -}; - -export default RegexFormAndView; diff --git a/vite/src/components/forms/M3UProfile.jsx b/frontend/src/components/forms/M3UProfile.jsx similarity index 100% rename from vite/src/components/forms/M3UProfile.jsx rename to frontend/src/components/forms/M3UProfile.jsx diff --git a/frontend/src/components/forms/M3UProfiles.js b/frontend/src/components/forms/M3UProfiles.js deleted file mode 100644 index 24694811..00000000 --- a/frontend/src/components/forms/M3UProfiles.js +++ /dev/null @@ -1,133 +0,0 @@ -import React, { useState, useMemo } from 'react'; -import { - Typography, - Dialog, - DialogContent, - DialogTitle, - DialogActions, - Button, - Box, - Switch, - IconButton, - List, - ListItem, - ListItemText, -} from '@mui/material'; -import API from '../../api'; -import M3UProfile from './M3UProfile'; -import { Delete as DeleteIcon, Edit as EditIcon } from '@mui/icons-material'; -import usePlaylistsStore from '../../store/playlists'; - -const M3UProfiles = ({ playlist = null, isOpen, onClose }) => { - const profiles = usePlaylistsStore((state) => state.profiles[playlist.id]); - const [profileEditorOpen, setProfileEditorOpen] = useState(false); - const [profile, setProfile] = useState(null); - - const editProfile = (profile = null) => { - if (profile) { - setProfile(profile); - } - - setProfileEditorOpen(true); - }; - - const deleteProfile = async (id) => { - await API.deleteM3UProfile(playlist.id, id); - }; - - const toggleActive = async (values) => { - await API.updateM3UProfile(playlist.id, { - ...values, - is_active: !values.is_active, - }); - }; - - const closeEditor = () => { - setProfile(null); - setProfileEditorOpen(false); - }; - - if (!isOpen || !profiles) { - return <>; - } - - return ( - <> - - - Profiles - - - - {profiles - .filter((playlist) => playlist.is_default == false) - .map((item) => ( - - - - Max Streams: {item.max_streams} - - toggleActive(item)} - color="primary" - inputProps={{ 'aria-label': 'active switch' }} - /> - editProfile(item)} - color="warning" - > - - - deleteProfile(item.id)} - color="error" - > - - - - } - /> - - ))} - - - - - - - - - - - ); -}; - -export default M3UProfiles; diff --git a/vite/src/components/forms/M3UProfiles.jsx b/frontend/src/components/forms/M3UProfiles.jsx similarity index 100% rename from vite/src/components/forms/M3UProfiles.jsx rename to frontend/src/components/forms/M3UProfiles.jsx diff --git a/frontend/src/components/forms/Stream.js b/frontend/src/components/forms/Stream.js deleted file mode 100644 index 714876fa..00000000 --- a/frontend/src/components/forms/Stream.js +++ /dev/null @@ -1,151 +0,0 @@ -// Modal.js -import React, { useEffect } from 'react'; -import { - TextField, - Button, - Select, - MenuItem, - Grid2, - InputLabel, - FormControl, - CircularProgress, - Dialog, - DialogTitle, - DialogContent, - DialogActions, -} from '@mui/material'; -import { useFormik } from 'formik'; -import * as Yup from 'yup'; -import API from '../../api'; -import useStreamProfilesStore from '../../store/streamProfiles'; - -const Stream = ({ stream = null, isOpen, onClose }) => { - const streamProfiles = useStreamProfilesStore((state) => state.profiles); - - const formik = useFormik({ - initialValues: { - name: '', - url: '', - stream_profile_id: '', - }, - validationSchema: Yup.object({ - name: Yup.string().required('Name is required'), - url: Yup.string().required('URL is required').min(0), - // stream_profile_id: Yup.string().required('Stream profile is required'), - }), - onSubmit: async (values, { setSubmitting, resetForm }) => { - if (stream?.id) { - await API.updateStream({ id: stream.id, ...values }); - } else { - await API.addStream(values); - } - - resetForm(); - setSubmitting(false); - onClose(); - }, - }); - - useEffect(() => { - if (stream) { - formik.setValues({ - name: stream.name, - url: stream.url, - stream_profile_id: stream.stream_profile_id, - }); - } else { - formik.resetForm(); - } - }, [stream]); - - if (!isOpen) { - return <>; - } - - return ( - - - Stream - - -
    - - - - - - - - - - Stream Profile - - - - - - - - - - -
    -
    - ); -}; - -export default Stream; diff --git a/vite/src/components/forms/Stream.jsx b/frontend/src/components/forms/Stream.jsx similarity index 61% rename from vite/src/components/forms/Stream.jsx rename to frontend/src/components/forms/Stream.jsx index 456797ec..a01cbae8 100644 --- a/vite/src/components/forms/Stream.jsx +++ b/frontend/src/components/forms/Stream.jsx @@ -1,18 +1,21 @@ // Modal.js -import React, { useEffect } from 'react'; +import React, { useEffect, useState } from 'react'; import { useFormik } from 'formik'; import * as Yup from 'yup'; import API from '../../api'; import useStreamProfilesStore from '../../store/streamProfiles'; -import { TextInput, Select, Button } from '@mantine/core'; +import { Modal, TextInput, Select, Button, Flex } from '@mantine/core'; const Stream = ({ stream = null, isOpen, onClose }) => { const streamProfiles = useStreamProfilesStore((state) => state.profiles); + const [selectedStreamProfile, setSelectedStreamProfile] = useState(''); + console.log(stream); const formik = useFormik({ initialValues: { name: '', url: '', + group_name: '', stream_profile_id: '', }, validationSchema: Yup.object({ @@ -38,6 +41,7 @@ const Stream = ({ stream = null, isOpen, onClose }) => { formik.setValues({ name: stream.name, url: stream.url, + group_name: stream.group_name, stream_profile_id: stream.stream_profile_id, }); } else { @@ -50,7 +54,7 @@ const Stream = ({ stream = null, isOpen, onClose }) => { } return ( - +
    { label="Stream Name" value={formik.values.name} onChange={formik.handleChange} - error={formik.touched.name && Boolean(formik.errors.name)} + error={formik.errors.name} /> { label="Stream URL" value={formik.values.url} onChange={formik.handleChange} - error={formik.touched.url && Boolean(formik.errors.url)} + error={formik.errors.url} + /> + + - {userAgents.map((option, index) => ( - - {option.user_agent_name} - - ))} - - - - - - - - - - ); -}; - -export default StreamProfile; diff --git a/vite/src/components/forms/StreamProfile.jsx b/frontend/src/components/forms/StreamProfile.jsx similarity index 100% rename from vite/src/components/forms/StreamProfile.jsx rename to frontend/src/components/forms/StreamProfile.jsx diff --git a/frontend/src/components/forms/SuperuserForm.js b/frontend/src/components/forms/SuperuserForm.js deleted file mode 100644 index 32eb5e14..00000000 --- a/frontend/src/components/forms/SuperuserForm.js +++ /dev/null @@ -1,128 +0,0 @@ -// frontend/src/components/forms/SuperuserForm.js -import React, { useState } from 'react'; -import axios from 'axios'; -import { - Box, - Paper, - Typography, - Grid2, - TextField, - Button, -} from '@mui/material'; - -function SuperuserForm({ onSuccess }) { - const [formData, setFormData] = useState({ - username: '', - password: '', - email: '', - }); - const [error, setError] = useState(''); - - const handleChange = (e) => { - setFormData((prev) => ({ - ...prev, - [e.target.name]: e.target.value, - })); - }; - - const handleSubmit = async (e) => { - e.preventDefault(); - try { - const res = await axios.post('/api/accounts/initialize-superuser/', { - username: formData.username, - password: formData.password, - email: formData.email, - }); - if (res.data.superuser_exists) { - onSuccess(); - } - } catch (err) { - let msg = 'Failed to create superuser.'; - if (err.response && err.response.data && err.response.data.error) { - msg += ` ${err.response.data.error}`; - } - setError(msg); - } - }; - - return ( - - - - Create your Super User Account - - {error && ( - - {error} - - )} -
    - - - - - - - - - - - - - - -
    -
    -
    - ); -} - -export default SuperuserForm; diff --git a/frontend/src/components/forms/SuperuserForm.jsx b/frontend/src/components/forms/SuperuserForm.jsx new file mode 100644 index 00000000..66aa5ced --- /dev/null +++ b/frontend/src/components/forms/SuperuserForm.jsx @@ -0,0 +1,94 @@ +// frontend/src/components/forms/SuperuserForm.js +import React, { useState } from 'react'; +import { TextInput, Center, Button, Paper, Title, Stack } from '@mantine/core'; +import API from '../../api'; +import useAuthStore from '../../store/auth'; + +function SuperuserForm({}) { + const [formData, setFormData] = useState({ + username: '', + password: '', + email: '', + }); + const [error, setError] = useState(''); + const { setSuperuserExists } = useAuthStore(); + + const handleChange = (e) => { + setFormData((prev) => ({ + ...prev, + [e.target.name]: e.target.value, + })); + }; + + const handleSubmit = async (e) => { + e.preventDefault(); + try { + console.log(formData); + const response = await API.createSuperUser({ + username: formData.username, + password: formData.password, + email: formData.email, + }); + if (response.superuser_exists) { + setSuperuserExists(true); + } + } catch (err) { + console.log(err); + // let msg = 'Failed to create superuser.'; + // if (err.response && err.response.data && err.response.data.error) { + // msg += ` ${err.response.data.error}`; + // } + // setError(msg); + } + }; + + return ( +
    + + + Create your Super User Account + +
    + + + + + + + + +
    +
    +
    + ); +} + +export default SuperuserForm; diff --git a/frontend/src/components/forms/UserAgent.js b/frontend/src/components/forms/UserAgent.js deleted file mode 100644 index db13429f..00000000 --- a/frontend/src/components/forms/UserAgent.js +++ /dev/null @@ -1,144 +0,0 @@ -// Modal.js -import React, { useEffect } from 'react'; -import { - TextField, - Button, - CircularProgress, - Checkbox, - Dialog, - DialogTitle, - DialogContent, - DialogActions, -} from '@mui/material'; -import { useFormik } from 'formik'; -import * as Yup from 'yup'; -import API from '../../api'; -import useSettingsStore from '../../store/settings'; - -const UserAgent = ({ userAgent = null, isOpen, onClose }) => { - const formik = useFormik({ - initialValues: { - user_agent_name: '', - user_agent: '', - description: '', - is_active: true, - }, - validationSchema: Yup.object({ - user_agent_name: Yup.string().required('Name is required'), - user_agent: Yup.string().required('User-Agent is required'), - }), - onSubmit: async (values, { setSubmitting, resetForm }) => { - if (userAgent?.id) { - await API.updateUserAgent({ id: userAgent.id, ...values }); - } else { - await API.addUserAgent(values); - } - - resetForm(); - setSubmitting(false); - onClose(); - }, - }); - - useEffect(() => { - if (userAgent) { - formik.setValues({ - user_agent_name: userAgent.user_agent_name, - user_agent: userAgent.user_agent, - description: userAgent.description, - is_active: userAgent.is_active, - }); - } else { - formik.resetForm(); - } - }, [userAgent]); - - if (!isOpen) { - return <>; - } - - return ( - - - User-Agent - - -
    - - - - - - - - - - - - - -
    -
    - ); -}; - -export default UserAgent; diff --git a/vite/src/components/forms/UserAgent.jsx b/frontend/src/components/forms/UserAgent.jsx similarity index 100% rename from vite/src/components/forms/UserAgent.jsx rename to frontend/src/components/forms/UserAgent.jsx diff --git a/frontend/src/components/sidebar.css b/frontend/src/components/sidebar.css new file mode 100644 index 00000000..fa3756be --- /dev/null +++ b/frontend/src/components/sidebar.css @@ -0,0 +1,41 @@ +.mantine-Stack-root .navlink { + display: flex; + flex-direction: row; /* Ensures horizontal layout */ + flex-wrap: nowrap; + align-items: center; + gap: 12px; + padding: 5px 8px !important; + border-radius: 6px; + color: #D4D4D8; /* Default color when not active */ + background-color: transparent; /* Default background when not active */ + border: 1px solid transparent; + transition: all 0.3s ease; + } + + /* Active state styles */ + .navlink.navlink-active { + color: #FFFFFF; + background-color: #245043; + border: 1px solid #3BA882; + } + + /* Hover effect */ + .navlink:hover { + background-color: #2A2F34; /* Gray hover effect when not active */ + border: 1px solid #3D3D42; + } + + /* Hover effect for active state */ + .navlink.navlink-active:hover { + background-color: #3A3A40; + border: 1px solid #3BA882; + } + + /* Collapse condition for justifyContent */ + .navlink.navlink-collapsed { + justify-content: center; + } + + .navlink:not(.navlink-collapsed) { + justify-content: flex-start; + } diff --git a/frontend/src/components/tables/ChannelsTable.js b/frontend/src/components/tables/ChannelsTable.js deleted file mode 100644 index 255c97f7..00000000 --- a/frontend/src/components/tables/ChannelsTable.js +++ /dev/null @@ -1,1149 +0,0 @@ -import { useEffect, useMemo, useRef, useState } from 'react'; -import { - MaterialReactTable, - useMaterialReactTable, -} from 'material-react-table'; -import { - Box, - Grid2, - Stack, - Typography, - Tooltip, - IconButton, - Button, - ButtonGroup, - Snackbar, - Popover, - TextField, - Autocomplete, - InputAdornment, - Paper, -} from '@mui/material'; -import useChannelsStore from '../../store/channels'; -import { - Delete as DeleteIcon, - Edit as EditIcon, - Add as AddIcon, - SwapVert as SwapVertIcon, - LiveTv as LiveTvIcon, - ContentCopy, - Tv as TvIcon, - Clear as ClearIcon, - IndeterminateCheckBox, - CompareArrows, - Code, - AddBox, - Hd as HdIcon, -} from '@mui/icons-material'; -import API from '../../api'; -import ChannelForm from '../forms/Channel'; -import { TableHelper } from '../../helpers'; -import utils from '../../utils'; -import logo from '../../images/logo.png'; -import useVideoStore from '../../store/useVideoStore'; -import useSettingsStore from '../../store/settings'; -import usePlaylistsStore from '../../store/playlists'; -import { Tv2, ScreenShare, Scroll, SquareMinus, Pencil } from 'lucide-react'; -import { styled, useTheme } from '@mui/material/styles'; -import ghostImage from '../../images/ghost.svg'; - -const ChannelStreams = ({ channel, isExpanded }) => { - const channelStreams = useChannelsStore( - (state) => state.channels[channel.id]?.streams - ); - const { playlists } = usePlaylistsStore(); - - const removeStream = async (stream) => { - const newStreamList = channelStreams.filter((s) => s.id !== stream.id); - await API.updateChannel({ - ...channel, - stream_ids: newStreamList.map((s) => s.id), - }); - }; - - const channelStreamsTable = useMaterialReactTable({ - ...TableHelper.defaultProperties, - data: channelStreams, - columns: useMemo( - () => [ - { - header: 'Name', - accessorKey: 'name', - }, - { - header: 'M3U', - accessorFn: (row) => - playlists.find((playlist) => playlist.id === row.m3u_account)?.name, - }, - ], - [playlists] - ), - enableKeyboardShortcuts: false, - enableColumnFilters: false, - enableSorting: false, - enableBottomToolbar: false, - enableTopToolbar: false, - columnFilterDisplayMode: 'popover', - enablePagination: false, - enableRowVirtualization: true, - enableColumnHeaders: false, - rowVirtualizerOptions: { overscan: 5 }, //optionally customize the row virtualizer - initialState: { - density: 'compact', - }, - enableRowActions: true, - enableRowOrdering: true, - muiRowDragHandleProps: ({ table }) => ({ - onDragEnd: async () => { - const { draggingRow, hoveredRow } = table.getState(); - - if (hoveredRow && draggingRow) { - channelStreams.splice( - hoveredRow.index, - 0, - channelStreams.splice(draggingRow.index, 1)[0] - ); - - const { streams: oldStreams, ...channelUpdate } = channel; - - API.updateChannel({ - ...channelUpdate, - stream_ids: channelStreams.map((stream) => stream.id), - }); - } - }, - }), - renderRowActions: ({ row }) => ( - <> - removeStream(row.original)} - > - - - - ), - }); - - if (!isExpanded) { - return <>; - } - - return ( - - - - ); -}; - -/* ----------------------------------------------------------- - 2) Custom-styled "chip" buttons for HDHR, M3U, EPG ------------------------------------------------------------- */ -const HDHRButton = styled(Button)(() => ({ - border: '1px solid #a3d977', - color: '#a3d977', - backgroundColor: 'transparent', - textTransform: 'none', - fontSize: '0.85rem', - display: 'flex', - alignItems: 'center', - gap: '4px', - padding: '2px 8px', - minWidth: 'auto', - '&:hover': { - borderColor: '#c2e583', - color: '#c2e583', - backgroundColor: 'rgba(163,217,119,0.1)', - }, -})); - -const M3UButton = styled(Button)(() => ({ - border: '1px solid #5f6dc6', - color: '#5f6dc6', - backgroundColor: 'transparent', - textTransform: 'none', - fontSize: '0.85rem', - display: 'flex', - alignItems: 'center', - gap: '4px', - padding: '2px 8px', - minWidth: 'auto', - '&:hover': { - borderColor: '#7f8de6', - color: '#7f8de6', - backgroundColor: 'rgba(95,109,198,0.1)', - }, -})); - -const EPGButton = styled(Button)(() => ({ - border: '1px solid #707070', - color: '#a0a0a0', - backgroundColor: 'transparent', - textTransform: 'none', - fontSize: '0.85rem', - display: 'flex', - alignItems: 'center', - gap: '4px', - padding: '2px 8px', - minWidth: 'auto', - '&:hover': { - borderColor: '#a0a0a0', - color: '#c0c0c0', - backgroundColor: 'rgba(112,112,112,0.1)', - }, -})); - -const ChannelsTable = ({}) => { - const [channel, setChannel] = useState(null); - const [channelModalOpen, setChannelModalOpen] = useState(false); - const [rowSelection, setRowSelection] = useState([]); - const [channelGroupOptions, setChannelGroupOptions] = useState([]); - - const [anchorEl, setAnchorEl] = useState(null); - const [textToCopy, setTextToCopy] = useState(''); - const [snackbarMessage, setSnackbarMessage] = useState(''); - const [snackbarOpen, setSnackbarOpen] = useState(false); - - const [filterValues, setFilterValues] = useState({}); - - const theme = useTheme(); - - const { showVideo } = useVideoStore(); - const { - channels, - isLoading: channelsLoading, - fetchChannels, - setChannelsPageSelection, - } = useChannelsStore(); - - useEffect(() => { - setChannelGroupOptions([ - ...new Set( - Object.values(channels).map((channel) => channel.channel_group?.name) - ), - ]); - }, [channels]); - - const handleFilterChange = (columnId, value) => { - console.log(columnId); - console.log(value); - setFilterValues((prev) => ({ - ...prev, - [columnId]: value ? value.toLowerCase() : '', - })); - }; - - const outputUrlRef = useRef(null); - - const { - environment: { env_mode }, - } = useSettingsStore(); - - // Configure columns - const columns = useMemo( - () => [ - { - header: '#', - size: 50, - accessorKey: 'channel_number', - }, - { - header: 'Name', - accessorKey: 'channel_name', - muiTableHeadCellProps: { - sx: { textAlign: 'center' }, - }, - Header: ({ column }) => ( - handleFilterChange(column.id, e.target.value)} - size="small" - margin="none" - fullWidth - sx={ - { - // '& .MuiInputBase-root': { fontSize: '0.875rem' }, - // '& .MuiInputLabel-root': { fontSize: '0.75rem' }, - // width: '200px', // Optional: Adjust width - } - } - slotProps={{ - input: { - endAdornment: ( - - handleFilterChange(column.id, '')} - edge="end" - size="small" - > - - - - ), - }, - }} - /> - ), - meta: { - filterVariant: null, - }, - }, - { - header: 'Group', - accessorFn: (row) => row.channel_group?.name || '', - Header: ({ column }) => ( - { - event.stopPropagation(); - handleFilterChange(column.id, newValue); - }} - renderInput={(params) => ( - e.stopPropagation()} - sx={{ - pb: 0.8, - // '& .MuiInputBase-root': { fontSize: '0.875rem' }, - // '& .MuiInputLabel-root': { fontSize: '0.75rem' }, - // width: '200px', // Optional: Adjust width - }} - /> - )} - /> - ), - }, - { - header: 'Logo', - accessorKey: 'logo_url', - enableSorting: false, - size: 55, - Cell: ({ cell }) => ( - - channel logo - - ), - meta: { - filterVariant: null, - }, - }, - ], - [channelGroupOptions, filterValues] - ); - - // Access the row virtualizer instance (optional) - const rowVirtualizerInstanceRef = useRef(null); - - const [isLoading, setIsLoading] = useState(true); - const [sorting, setSorting] = useState([]); - - const closeSnackbar = () => setSnackbarOpen(false); - - const editChannel = async (ch = null) => { - setChannel(ch); - setChannelModalOpen(true); - }; - - const deleteChannel = async (id) => { - await API.deleteChannel(id); - }; - - function handleWatchStream(channelNumber) { - let vidUrl = `/output/stream/${channelNumber}/`; - if (env_mode == 'dev') { - vidUrl = `${window.location.protocol}//${window.location.hostname}:5656${vidUrl}`; - } - showVideo(vidUrl); - } - - // (Optional) bulk delete, but your endpoint is @TODO - const deleteChannels = async () => { - setIsLoading(true); - const selected = table - .getRowModel() - .rows.filter((row) => row.getIsSelected()); - await utils.Limiter( - 4, - selected.map((chan) => () => deleteChannel(chan.original.id)) - ); - // If you have a real bulk-delete endpoint, call it here: - // await API.deleteChannels(selected.map((sel) => sel.id)); - setIsLoading(false); - }; - - // ───────────────────────────────────────────────────────── - // The "Assign Channels" button logic - // ───────────────────────────────────────────────────────── - const assignChannels = async () => { - try { - // Get row order from the table - const rowOrder = table.getRowModel().rows.map((row) => row.original.id); - - // Call our custom API endpoint - setIsLoading(true); - const result = await API.assignChannelNumbers(rowOrder); - setIsLoading(false); - - // We might get { message: "Channels have been auto-assigned!" } - setSnackbarMessage(result.message || 'Channels assigned'); - setSnackbarOpen(true); - - // Refresh the channel list - await fetchChannels(); - } catch (err) { - console.error(err); - setSnackbarMessage('Failed to assign channels'); - setSnackbarOpen(true); - } - }; - - // ───────────────────────────────────────────────────────── - // The new "Match EPG" button logic - // ───────────────────────────────────────────────────────── - const matchEpg = async () => { - try { - // Hit our new endpoint that triggers the fuzzy matching Celery task - const resp = await fetch('/api/channels/channels/match-epg/', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${await API.getAuthToken()}`, - }, - }); - - if (resp.ok) { - setSnackbarMessage('EPG matching task started!'); - } else { - const text = await resp.text(); - setSnackbarMessage(`Failed to start EPG matching: ${text}`); - } - } catch (err) { - setSnackbarMessage(`Error: ${err.message}`); - } - setSnackbarOpen(true); - }; - - const closeChannelForm = () => { - setChannel(null); - setChannelModalOpen(false); - }; - - useEffect(() => { - if (typeof window !== 'undefined') { - setIsLoading(false); - } - }, []); - - useEffect(() => { - // Scroll to the top of the table when sorting changes - try { - rowVirtualizerInstanceRef.current?.scrollToIndex?.(0); - } catch (error) { - console.error(error); - } - }, [sorting]); - - const closePopover = () => { - setAnchorEl(null); - setSnackbarMessage(''); - }; - const openPopover = Boolean(anchorEl); - - const handleCopy = async () => { - try { - await navigator.clipboard.writeText(textToCopy); - setSnackbarMessage('Copied!'); - } catch (err) { - const inputElement = outputUrlRef.current.querySelector('input'); // Get the actual input - - if (inputElement) { - inputElement.focus(); - inputElement.select(); - - // For older browsers - document.execCommand('copy'); - setSnackbarMessage('Copied!'); - } - } - setSnackbarOpen(true); - }; - - // Example copy URLs - const copyM3UUrl = (event) => { - setAnchorEl(event.currentTarget); - setTextToCopy( - `${window.location.protocol}//${window.location.host}/output/m3u` - ); - }; - const copyEPGUrl = (event) => { - setAnchorEl(event.currentTarget); - setTextToCopy( - `${window.location.protocol}//${window.location.host}/output/epg` - ); - }; - const copyHDHRUrl = (event) => { - setAnchorEl(event.currentTarget); - setTextToCopy( - `${window.location.protocol}//${window.location.host}/output/hdhr` - ); - }; - - useEffect(() => { - const selectedRows = table - .getSelectedRowModel() - .rows.map((row) => row.original); - setChannelsPageSelection(selectedRows); - }, [rowSelection]); - - const filteredData = Object.values(channels).filter((row) => - columns.every(({ accessorKey }) => - filterValues[accessorKey] - ? row[accessorKey]?.toLowerCase().includes(filterValues[accessorKey]) - : true - ) - ); - - const table = useMaterialReactTable({ - ...TableHelper.defaultProperties, - columns, - data: filteredData, - enablePagination: false, - enableColumnActions: false, - enableRowVirtualization: true, - enableRowSelection: true, - onRowSelectionChange: setRowSelection, - onSortingChange: setSorting, - state: { - isLoading: isLoading || channelsLoading, - sorting, - rowSelection, - }, - rowVirtualizerInstanceRef, - rowVirtualizerOptions: { overscan: 5 }, - initialState: { - density: 'compact', - }, - enableRowActions: true, - enableExpandAll: false, - displayColumnDefOptions: { - 'mrt-row-select': { - size: 50, - }, - 'mrt-row-expand': { - size: 10, - header: '', - muiTableHeadCellProps: { - sx: { width: 38, minWidth: 38, maxWidth: 38, height: '100%' }, - }, - muiTableBodyCellProps: { - sx: { width: 38, minWidth: 38, maxWidth: 38 }, - }, - }, - 'mrt-row-actions': { - size: 68, - }, - }, - muiExpandButtonProps: ({ row, table }) => ({ - onClick: () => { - setRowSelection({ [row.index]: true }); - table.setExpanded({ [row.id]: !row.getIsExpanded() }); - }, - sx: { - transform: row.getIsExpanded() ? 'rotate(180deg)' : 'rotate(-90deg)', - transition: 'transform 0.2s', - }, - }), - renderDetailPanel: ({ row }) => ( - - ), - renderRowActions: ({ row }) => ( - - - { - editChannel(row.original); - }} - sx={{ py: 0, px: 0.5 }} - > - - - - - - deleteChannel(row.original.id)} - sx={{ py: 0, px: 0.5 }} - > - - - - - - handleWatchStream(row.original.channel_number)} - sx={{ py: 0, px: 0.5 }} - > - - - - - ), - muiTableContainerProps: { - sx: { - height: 'calc(100vh - 75px)', - overflowY: 'auto', - }, - }, - muiSearchTextFieldProps: { - variant: 'standard', - }, - renderTopToolbarCustomActions: ({ table }) => { - const selectedRowCount = table.getSelectedRowModel().rows.length; - - return ( - - Channels - - editChannel()} - > - - - - - - - - - - - - - - - {/* Our brand-new button for EPG matching */} - - - - - - - - - - - - - ); - }, - }); - - return ( - - {/* Header Row: outside the Paper */} - - - Channels - - - - Links: - - - - {/* HDHR Button */} - - - {/* M3U Button */} - - - {/* EPG Button */} - - - - - {/* Paper container: contains top toolbar and table (or ghost state) */} - - {/* Top toolbar with Remove, Assign, Auto-match, and Add buttons */} - - - - - - - - - - - - - - - - - - {/* Table or ghost empty state inside Paper */} - - {filteredData.length === 0 ? ( - - - - - It’s recommended to create channels after adding your M3U or - streams. - - - You can still create channels without streams if you’d like, - and map them later. - - - - - ) : ( - - - - )} - - - - - - - - - - - - - - - - - ); -}; - -export default ChannelsTable; diff --git a/vite/src/components/tables/ChannelsTable.jsx b/frontend/src/components/tables/ChannelsTable.jsx similarity index 72% rename from vite/src/components/tables/ChannelsTable.jsx rename to frontend/src/components/tables/ChannelsTable.jsx index 9a89c36c..d0823107 100644 --- a/vite/src/components/tables/ChannelsTable.jsx +++ b/frontend/src/components/tables/ChannelsTable.jsx @@ -1,7 +1,7 @@ import { useEffect, useMemo, useRef, useState, useCallback } from 'react'; import { MantineReactTable, useMantineReactTable } from 'mantine-react-table'; import useChannelsStore from '../../store/channels'; -import useAlertStore from '../../store/alerts'; +import { notifications } from '@mantine/notifications'; import { Add as AddIcon, LiveTv as LiveTvIcon, @@ -47,6 +47,8 @@ import { Group, useMantineTheme, UnstyledButton, + Container, + Space, } from '@mantine/core'; import { IconArrowDown, @@ -232,7 +234,6 @@ const ChannelsTable = ({}) => { fetchChannels, setChannelsPageSelection, } = useChannelsStore(); - const { showAlert } = useAlertStore(); useEffect(() => { setChannelGroupOptions([ @@ -279,9 +280,17 @@ const ChannelsTable = ({}) => { size="xs" /> ), - meta: { - filterVariant: null, - }, + Cell: ({ cell }) => ( +
    + {cell.getValue()} +
    + ), }, { header: 'Group', @@ -292,10 +301,10 @@ const ChannelsTable = ({}) => { searchable size="xs" nothingFound="No options" - // onChange={(e, value) => { - // e.stopPropagation(); - // handleGroupChange(value); - // }} + onChange={(e, value) => { + e.stopPropagation(); + handleGroupChange(value); + }} data={channelGroupOptions} /> ), @@ -377,13 +386,19 @@ const ChannelsTable = ({}) => { setIsLoading(false); // We might get { message: "Channels have been auto-assigned!" } - showAlert(result.message || 'Channels assigned'); + notifications.show({ + title: result.message || 'Channels assigned', + color: 'green.5', + }); // Refresh the channel list await fetchChannels(); } catch (err) { console.error(err); - showAlert('Failed to assign channels'); + notifications.show({ + title: 'Failed to assign channels', + color: 'red.5', + }); } }; @@ -584,7 +599,7 @@ const ChannelsTable = ({}) => { ), mantineTableContainerProps: { style: { - height: 'calc(100vh - 125px)', + height: 'calc(100vh - 127px)', overflowY: 'auto', }, }, @@ -596,7 +611,10 @@ const ChannelsTable = ({}) => { return ( {/* Header Row: outside the Paper */} - + { > Channels - { > Links: - - - - - - - - - - - - - - - - - - - - - - - - - - - - + HDHR + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + {/* Paper container: contains top toolbar and table (or ghost state) */} {/* Top toolbar with Remove, Assign, Auto-match, and Add buttons */} @@ -836,7 +777,7 @@ const ChannelsTable = ({}) => { - + - - ) : ( - - - +
    )} + {filteredData.length > 0 && ( + + + + )} { - const [epg, setEPG] = useState(null); - const [epgModalOpen, setEPGModalOpen] = useState(false); - const [rowSelection, setRowSelection] = useState([]); - const [snackbarMessage, setSnackbarMessage] = useState(''); - const [snackbarOpen, setSnackbarOpen] = useState(false); - - const epgs = useEPGsStore((state) => state.epgs); - - const columns = useMemo( - //column definitions... - () => [ - { - header: 'Name', - accessorKey: 'name', - }, - { - header: 'Source Type', - accessorKey: 'source_type', - }, - { - header: 'URL / API Key', - accessorKey: 'max_streams', - }, - ], - [] - ); - - //optionally access the underlying virtualizer instance - const rowVirtualizerInstanceRef = useRef(null); - - const [isLoading, setIsLoading] = useState(true); - const [sorting, setSorting] = useState([]); - - const closeSnackbar = () => { - setSnackbarOpen(false); - }; - - const editEPG = async (epg = null) => { - setEPG(epg); - setEPGModalOpen(true); - }; - - const deleteEPG = async (id) => { - setIsLoading(true); - await API.deleteEPG(id); - setIsLoading(false); - }; - - const refreshEPG = async (id) => { - await API.refreshEPG(id); - setSnackbarMessage('EPG refresh initiated'); - setSnackbarOpen(true); - }; - - const closeEPGForm = () => { - setEPG(null); - setEPGModalOpen(false); - }; - - useEffect(() => { - if (typeof window !== 'undefined') { - setIsLoading(false); - } - }, []); - - useEffect(() => { - //scroll to the top of the table when the sorting changes - try { - rowVirtualizerInstanceRef.current?.scrollToIndex?.(0); - } catch (error) { - console.error(error); - } - }, [sorting]); - - const table = useMaterialReactTable({ - ...TableHelper.defaultProperties, - columns, - data: epgs, - enablePagination: false, - enableRowVirtualization: true, - enableRowSelection: true, - onRowSelectionChange: setRowSelection, - onSortingChange: setSorting, - state: { - isLoading, - sorting, - rowSelection, - }, - rowVirtualizerInstanceRef, //optional - rowVirtualizerOptions: { overscan: 5 }, //optionally customize the row virtualizer - initialState: { - density: 'compact', - }, - enableRowActions: true, - renderRowActions: ({ row }) => ( - <> - editEPG(row.original)} - sx={{ pt: 0, pb: 0 }} - > - {/* Small icon size */} - - deleteEPG(row.original.id)} - sx={{ pt: 0, pb: 0 }} - > - {/* Small icon size */} - - refreshEPG(row.original.id)} - sx={{ pt: 0, pb: 0 }} - > - {/* Small icon size */} - - - ), - muiTableContainerProps: { - sx: { - height: 'calc(43vh - 0px)', - }, - }, - renderTopToolbarCustomActions: ({ table }) => ( - - EPGs - - editEPG()} - > - {/* Small icon size */} - - - - ), - }); - - return ( - - - - - - - - ); -}; - -export default EPGsTable; diff --git a/vite/src/components/tables/EPGsTable.jsx b/frontend/src/components/tables/EPGsTable.jsx similarity index 64% rename from vite/src/components/tables/EPGsTable.jsx rename to frontend/src/components/tables/EPGsTable.jsx index c7d9290e..50fffbc9 100644 --- a/vite/src/components/tables/EPGsTable.jsx +++ b/frontend/src/components/tables/EPGsTable.jsx @@ -10,18 +10,28 @@ import { import useEPGsStore from '../../store/epgs'; import EPGForm from '../forms/EPG'; import { TableHelper } from '../../helpers'; -import { ActionIcon, Text, Tooltip, Box } from '@mantine/core'; -import useAlertStore from '../../store/alerts'; +import { + ActionIcon, + Text, + Tooltip, + Box, + Paper, + Button, + Flex, + useMantineTheme, +} from '@mantine/core'; +import { notifications } from '@mantine/notifications'; +import { IconSquarePlus } from '@tabler/icons-react'; const EPGsTable = () => { const [epg, setEPG] = useState(null); const [epgModalOpen, setEPGModalOpen] = useState(false); const [rowSelection, setRowSelection] = useState([]); - const { showAlert } = useAlertStore(); - const epgs = useEPGsStore((state) => state.epgs); + const theme = useMantineTheme(); + const columns = useMemo( //column definitions... () => [ @@ -60,7 +70,9 @@ const EPGsTable = () => { const refreshEPG = async (id) => { await API.refreshEPG(id); - showAlert('EPG refresh initiated'); + notifications.show({ + title: 'EPG refresh initiated', + }); }; const closeEPGForm = () => { @@ -89,7 +101,8 @@ const EPGsTable = () => { data: epgs, enablePagination: false, enableRowVirtualization: true, - enableRowSelection: true, + enableRowSelection: false, + renderTopToolbar: false, onRowSelectionChange: setRowSelection, onSortingChange: setSorting, state: { @@ -136,29 +149,73 @@ const EPGsTable = () => { height: 'calc(40vh - 0px)', }, }, - renderTopToolbarCustomActions: ({ table }) => ( - <> - EPGs - - editEPG()} - > - {/* Small icon size */} - - - - ), }); return ( - + + + + EPGs + + + + + {/* Top toolbar with Remove, Assign, Auto-match, and Add buttons */} + + + + + + + + + diff --git a/frontend/src/components/tables/M3UsTable.js b/frontend/src/components/tables/M3UsTable.js deleted file mode 100644 index eb1ce5e6..00000000 --- a/frontend/src/components/tables/M3UsTable.js +++ /dev/null @@ -1,242 +0,0 @@ -import { useEffect, useMemo, useRef, useState } from 'react'; -import { - MaterialReactTable, - useMaterialReactTable, -} from 'material-react-table'; -import { - Box, - Stack, - Typography, - IconButton, - Tooltip, - Select, - MenuItem, -} from '@mui/material'; -import API from '../../api'; -import { - Delete as DeleteIcon, - Edit as EditIcon, - Add as AddIcon, - SwapVert as SwapVertIcon, - Check as CheckIcon, - Close as CloseIcon, - Refresh as RefreshIcon, -} from '@mui/icons-material'; -import usePlaylistsStore from '../../store/playlists'; -import M3UForm from '../forms/M3U'; -import { TableHelper } from '../../helpers'; - -const Example = () => { - const [playlist, setPlaylist] = useState(null); - const [playlistModalOpen, setPlaylistModalOpen] = useState(false); - const [rowSelection, setRowSelection] = useState([]); - const [activeFilterValue, setActiveFilterValue] = useState('all'); - - const playlists = usePlaylistsStore((state) => state.playlists); - - const columns = useMemo( - //column definitions... - () => [ - { - header: 'Name', - accessorKey: 'name', - }, - { - header: 'URL / File', - accessorKey: 'server_url', - }, - { - header: 'Max Streams', - accessorKey: 'max_streams', - size: 200, - }, - { - header: 'Active', - accessorKey: 'is_active', - size: 100, - sortingFn: 'basic', - muiTableBodyCellProps: { - align: 'left', - }, - Cell: ({ cell }) => ( - - {cell.getValue() ? ( - - ) : ( - - )} - - ), - Filter: ({ column }) => ( - - - - ), - filterFn: (row, _columnId, activeFilterValue) => { - if (!activeFilterValue) return true; // Show all if no filter - return String(row.getValue('is_active')) === activeFilterValue; - }, - }, - ], - [] - ); - - //optionally access the underlying virtualizer instance - const rowVirtualizerInstanceRef = useRef(null); - - const [isLoading, setIsLoading] = useState(true); - const [sorting, setSorting] = useState([]); - - const editPlaylist = async (playlist = null) => { - if (playlist) { - setPlaylist(playlist); - } - setPlaylistModalOpen(true); - }; - - const refreshPlaylist = async (id) => { - await API.refreshPlaylist(id); - }; - - const deletePlaylist = async (id) => { - await API.deletePlaylist(id); - }; - - const closeModal = () => { - setPlaylistModalOpen(false); - setPlaylist(null); - }; - - const deletePlaylists = async (ids) => { - const selected = table - .getRowModel() - .rows.filter((row) => row.getIsSelected()); - // await API.deleteStreams(selected.map(stream => stream.original.id)) - }; - - useEffect(() => { - if (typeof window !== 'undefined') { - setIsLoading(false); - } - }, []); - - useEffect(() => { - //scroll to the top of the table when the sorting changes - try { - rowVirtualizerInstanceRef.current?.scrollToIndex?.(0); - } catch (error) { - console.error(error); - } - }, [sorting]); - - const table = useMaterialReactTable({ - ...TableHelper.defaultProperties, - columns, - data: playlists, - enablePagination: false, - enableRowVirtualization: true, - // enableRowSelection: true, - onRowSelectionChange: setRowSelection, - onSortingChange: setSorting, - state: { - isLoading, - sorting, - rowSelection, - }, - rowVirtualizerInstanceRef, //optional - rowVirtualizerOptions: { overscan: 5 }, //optionally customize the row virtualizer - initialState: { - density: 'compact', - }, - enableRowActions: true, - renderRowActions: ({ row }) => ( - <> - { - editPlaylist(row.original); - }} - sx={{ pt: 0, pb: 0 }} - > - {/* Small icon size */} - - deletePlaylist(row.original.id)} - sx={{ pt: 0, pb: 0 }} - > - {/* Small icon size */} - - refreshPlaylist(row.original.id)} - sx={{ pt: 0, pb: 0 }} - > - {/* Small icon size */} - - - ), - muiTableContainerProps: { - sx: { - height: 'calc(43vh - 0px)', - pr: 1, - pl: 1, - }, - }, - renderTopToolbarCustomActions: ({ table }) => ( - - M3U Accounts - - editPlaylist()} - > - {/* Small icon size */} - - - - ), - }); - - return ( - - - - - ); -}; - -export default Example; diff --git a/vite/src/components/tables/M3UsTable.jsx b/frontend/src/components/tables/M3UsTable.jsx similarity index 54% rename from vite/src/components/tables/M3UsTable.jsx rename to frontend/src/components/tables/M3UsTable.jsx index eb1ce5e6..e538bb2e 100644 --- a/vite/src/components/tables/M3UsTable.jsx +++ b/frontend/src/components/tables/M3UsTable.jsx @@ -1,17 +1,5 @@ import { useEffect, useMemo, useRef, useState } from 'react'; -import { - MaterialReactTable, - useMaterialReactTable, -} from 'material-react-table'; -import { - Box, - Stack, - Typography, - IconButton, - Tooltip, - Select, - MenuItem, -} from '@mui/material'; +import { MantineReactTable, useMantineReactTable } from 'mantine-react-table'; import API from '../../api'; import { Delete as DeleteIcon, @@ -22,9 +10,50 @@ import { Close as CloseIcon, Refresh as RefreshIcon, } from '@mui/icons-material'; +import { + LiveTv as LiveTvIcon, + ContentCopy, + Tv as TvIcon, + Clear as ClearIcon, + IndeterminateCheckBox, + CompareArrows, + Code, + AddBox, + Hd as HdIcon, +} from '@mui/icons-material'; import usePlaylistsStore from '../../store/playlists'; import M3UForm from '../forms/M3U'; import { TableHelper } from '../../helpers'; +import { + useMantineTheme, + Paper, + Button, + Flex, + Text, + Box, + ActionIcon, + Tooltip, + Select, +} from '@mantine/core'; +import { + Tv2, + ScreenShare, + Scroll, + SquareMinus, + Pencil, + ArrowUp, + ArrowDown, + ArrowUpDown, + TvMinimalPlay, +} from 'lucide-react'; +import { + IconArrowDown, + IconArrowUp, + IconDeviceDesktopSearch, + IconSelector, + IconSortAscendingNumbers, + IconSquarePlus, +} from '@tabler/icons-react'; // Import custom icons const Example = () => { const [playlist, setPlaylist] = useState(null); @@ -34,6 +63,8 @@ const Example = () => { const playlists = usePlaylistsStore((state) => state.playlists); + const theme = useMantineTheme(); + const columns = useMemo( //column definitions... () => [ @@ -44,6 +75,17 @@ const Example = () => { { header: 'URL / File', accessorKey: 'server_url', + Cell: ({ cell }) => ( +
    + {cell.getValue()} +
    + ), }, { header: 'Max Streams', @@ -55,7 +97,7 @@ const Example = () => { accessorKey: 'is_active', size: 100, sortingFn: 'basic', - muiTableBodyCellProps: { + mantineTableBodyCellProps: { align: 'left', }, Cell: ({ cell }) => ( @@ -67,29 +109,6 @@ const Example = () => { )}
    ), - Filter: ({ column }) => ( - - - - ), - filterFn: (row, _columnId, activeFilterValue) => { - if (!activeFilterValue) return true; // Show all if no filter - return String(row.getValue('is_active')) === activeFilterValue; - }, }, ], [] @@ -143,14 +162,15 @@ const Example = () => { } }, [sorting]); - const table = useMaterialReactTable({ + const table = useMantineReactTable({ ...TableHelper.defaultProperties, columns, data: playlists, enablePagination: false, enableRowVirtualization: true, - // enableRowSelection: true, + enableRowSelection: false, onRowSelectionChange: setRowSelection, + renderTopToolbar: false, onSortingChange: setSorting, state: { isLoading, @@ -165,71 +185,103 @@ const Example = () => { enableRowActions: true, renderRowActions: ({ row }) => ( <> - { editPlaylist(row.original); }} - sx={{ pt: 0, pb: 0 }} > - {/* Small icon size */} - - + + deletePlaylist(row.original.id)} - sx={{ pt: 0, pb: 0 }} > - {/* Small icon size */} - - + + refreshPlaylist(row.original.id)} - sx={{ pt: 0, pb: 0 }} > - {/* Small icon size */} - + + ), - muiTableContainerProps: { - sx: { - height: 'calc(43vh - 0px)', - pr: 1, - pl: 1, + mantineTableContainerProps: { + style: { + height: 'calc(40vh - 0px)', }, }, - renderTopToolbarCustomActions: ({ table }) => ( - - M3U Accounts - - editPlaylist()} - > - {/* Small icon size */} - - - - ), }); return ( - - + + + + M3U Accounts + + + + + {/* Top toolbar with Remove, Assign, Auto-match, and Add buttons */} + + + + + + + + + + { - const [profile, setProfile] = useState(null); - const [profileModalOpen, setProfileModalOpen] = useState(false); - const [rowSelection, setRowSelection] = useState([]); - const [snackbarMessage, setSnackbarMessage] = useState(''); - const [snackbarOpen, setSnackbarOpen] = useState(false); - const [activeFilterValue, setActiveFilterValue] = useState('all'); - - const streamProfiles = useStreamProfilesStore((state) => state.profiles); - const { settings } = useSettingsStore(); - const { showAlert } = useAlertStore(); - - const columns = useMemo( - //column definitions... - () => [ - { - header: 'Name', - accessorKey: 'profile_name', - }, - { - header: 'Command', - accessorKey: 'command', - }, - { - header: 'Parameters', - accessorKey: 'parameters', - }, - { - header: 'Active', - accessorKey: 'is_active', - size: 100, - sortingFn: 'basic', - muiTableBodyCellProps: { - align: 'left', - }, - Cell: ({ cell }) => ( - - {cell.getValue() ? ( - - ) : ( - - )} - - ), - Filter: ({ column }) => ( - - - - ), - filterFn: (row, _columnId, filterValue) => { - if (filterValue == 'all') return true; // Show all if no filter - return String(row.getValue('is_active')) === filterValue; - }, - }, - ], - [] - ); - - //optionally access the underlying virtualizer instance - const rowVirtualizerInstanceRef = useRef(null); - - const [isLoading, setIsLoading] = useState(true); - const [sorting, setSorting] = useState([]); - - const editStreamProfile = async (profile = null) => { - setProfile(profile); - setProfileModalOpen(true); - }; - - const deleteStreamProfile = async (id) => { - if (id == settings['default-stream-profile'].value) { - showAlert('Cannot delete default stream-profile', 'error'); - return; - } - - await API.deleteStreamProfile(id); - }; - - const closeStreamProfileForm = () => { - setProfile(null); - setProfileModalOpen(false); - }; - - useEffect(() => { - if (typeof window !== 'undefined') { - setIsLoading(false); - } - }, []); - - useEffect(() => { - //scroll to the top of the table when the sorting changes - try { - rowVirtualizerInstanceRef.current?.scrollToIndex?.(0); - } catch (error) { - console.error(error); - } - }, [sorting]); - - const table = useMaterialReactTable({ - ...TableHelper.defaultProperties, - columns, - data: streamProfiles, - enablePagination: false, - enableRowVirtualization: true, - enableRowSelection: true, - onRowSelectionChange: setRowSelection, - onSortingChange: setSorting, - state: { - isLoading, - sorting, - rowSelection, - }, - rowVirtualizerInstanceRef, //optional - rowVirtualizerOptions: { overscan: 5 }, //optionally customize the row virtualizer - initialState: { - density: 'compact', - }, - enableRowActions: true, - renderRowActions: ({ row }) => ( - <> - editStreamProfile(row.original)} - sx={{ pt: 0, pb: 0 }} - > - {/* Small icon size */} - - deleteStreamProfile(row.original.id)} - sx={{ pt: 0, pb: 0 }} - > - {/* Small icon size */} - - - ), - muiTableContainerProps: { - sx: { - height: 'calc(100vh - 73px)', // Subtract padding to avoid cutoff - overflowY: 'auto', // Internal scrolling for the table - }, - }, - renderTopToolbarCustomActions: ({ table }) => ( - - Stream Profiles - - editStreamProfile()} - > - {/* Small icon size */} - - - - ), - }); - - return ( - - - - - - ); -}; - -export default StreamProfiles; diff --git a/vite/src/components/tables/StreamProfilesTable.jsx b/frontend/src/components/tables/StreamProfilesTable.jsx similarity index 69% rename from vite/src/components/tables/StreamProfilesTable.jsx rename to frontend/src/components/tables/StreamProfilesTable.jsx index b2ac3390..4776ce8f 100644 --- a/vite/src/components/tables/StreamProfilesTable.jsx +++ b/frontend/src/components/tables/StreamProfilesTable.jsx @@ -12,8 +12,18 @@ import StreamProfileForm from '../forms/StreamProfile'; import useStreamProfilesStore from '../../store/streamProfiles'; import { TableHelper } from '../../helpers'; import useSettingsStore from '../../store/settings'; -import useAlertStore from '../../store/alerts'; -import { Box, ActionIcon, Tooltip, Text } from '@mantine/core'; +import { notifications } from '@mantine/notifications'; +import { + Box, + ActionIcon, + Tooltip, + Text, + Paper, + Flex, + Button, + useMantineTheme, +} from '@mantine/core'; +import { IconSquarePlus } from '@tabler/icons-react'; const StreamProfiles = () => { const [profile, setProfile] = useState(null); @@ -23,7 +33,8 @@ const StreamProfiles = () => { const streamProfiles = useStreamProfilesStore((state) => state.profiles); const { settings } = useSettingsStore(); - const { showAlert } = useAlertStore(); + + const theme = useMantineTheme(); const columns = useMemo( //column definitions... @@ -93,7 +104,10 @@ const StreamProfiles = () => { const deleteStreamProfile = async (id) => { if (id == settings['default-stream-profile'].value) { - showAlert('Cannot delete default stream-profile', 'error'); + notifications.show({ + title: 'Cannot delete default stream-profile', + color: 'red.5', + }); return; } @@ -127,6 +141,7 @@ const StreamProfiles = () => { enablePagination: false, enableRowVirtualization: true, enableRowSelection: true, + renderTopToolbar: false, onRowSelectionChange: setRowSelection, onSortingChange: setSorting, state: { @@ -161,33 +176,77 @@ const StreamProfiles = () => { ), mantineTableContainerProps: { style: { - height: 'calc(100vh - 90px)', + height: 'calc(100vh - 120px)', overflowY: 'auto', }, }, - renderTopToolbarCustomActions: ({ table }) => ( - <> - Stream Profiles - - editStreamProfile()} - > - {/* Small icon size */} - - - - ), }); return ( - + + + + Stream Profiles + + + + + {/* Top toolbar with Remove, Assign, Auto-match, and Add buttons */} + + + + + + + + + { - /** - * useState - */ - const [rowSelection, setRowSelection] = useState([]); - const [stream, setStream] = useState(null); - const [modalOpen, setModalOpen] = useState(false); - const [moreActionsAnchorEl, setMoreActionsAnchorEl] = useState(null); - const [groupOptions, setGroupOptions] = useState([]); - const [m3uOptions, setM3uOptions] = useState([]); - const [actionsOpenRow, setActionsOpenRow] = useState(null); - - const [data, setData] = useState([]); // Holds fetched data - const [rowCount, setRowCount] = useState(0); - const [isLoading, setIsLoading] = useState(true); - const [sorting, setSorting] = useState([]); - const [selectedStreamIds, setSelectedStreamIds] = useState([]); - const [unselectedStreamIds, setUnselectedStreamIds] = useState([]); - // const [allRowsSelected, setAllRowsSelected] = useState(false); - const [pagination, setPagination] = useState({ - pageIndex: 0, - pageSize: 25, - }); - const [filters, setFilters] = useState({ - name: '', - group_name: '', - m3u_account: '', - }); - const debouncedFilters = useDebounce(filters, 500); - - /** - * Stores - */ - const { playlists } = usePlaylistsStore(); - const { channelsPageSelection } = useChannelsStore(); - const channelSelectionStreams = useChannelsStore( - (state) => state.channels[state.channelsPageSelection[0]?.id]?.streams - ); - - const isMoreActionsOpen = Boolean(moreActionsAnchorEl); - - // Access the row virtualizer instance (optional) - const rowVirtualizerInstanceRef = useRef(null); - - /** - * useMemo - */ - const columns = useMemo( - () => [ - { - header: 'Name', - accessorKey: 'name', - muiTableHeadCellProps: { - sx: { textAlign: 'center' }, // Center-align the header - }, - Header: ({ column }) => ( - e.stopPropagation()} - onChange={handleFilterChange} - size="small" - margin="none" - fullWidth - sx={ - { - // '& .MuiInputBase-root': { fontSize: '0.875rem' }, // Text size - // '& .MuiInputLabel-root': { fontSize: '0.75rem' }, // Label size - // width: '200px', // Optional: Adjust width - } - } - // slotProps={{ - // input: { - // endAdornment: ( - // - // handleFilterChange(column.id, '')} // Clear text on click - // edge="end" - // size="small" - // sx={{ p: 0 }} - // > - // - // - // - // ), - // }, - // }} - /> - ), - }, - { - header: 'Group', - accessorKey: 'group_name', - Header: ({ column }) => ( - { - e.stopPropagation(); - handleGroupChange(value); - }} - renderInput={(params) => ( - e.stopPropagation()} - sx={{ - pb: 0.8, - '& .MuiInputBase-root': { fontSize: '0.875rem' }, // Text size - '& .MuiInputLabel-root': { fontSize: '0.75rem' }, // Label size - width: '200px', // Optional: Adjust width - }} - /> - )} - /> - ), - }, - { - header: 'M3U', - size: 100, - accessorFn: (row) => - playlists.find((playlist) => playlist.id === row.m3u_account)?.name, - Header: ({ column }) => ( - ({ - label: playlist.name, - value: playlist.id, - }))} - size="small" - // sx={{ width: 300 }} - clearOnEscape - onChange={(e, value) => { - e.stopPropagation(); - handleM3UChange(value); - }} - renderInput={(params) => ( - e.stopPropagation()} - sx={{ - pb: 0.8, - '& .MuiInputBase-root': { fontSize: '0.875rem' }, // Text size - '& .MuiInputLabel-root': { fontSize: '0.75rem' }, // Label size - width: '200px', // Optional: Adjust width - }} - /> - )} - /> - ), - }, - ], - [playlists, groupOptions, filters] - ); - - /** - * Functions - */ - const handleFilterChange = (e) => { - const { name, value } = e.target; - setFilters((prev) => ({ - ...prev, - [name]: value, - })); - }; - - const handleGroupChange = (value) => { - console.log(value); - setFilters((prev) => ({ - ...prev, - group_name: value ? value.value : '', - })); - }; - - const handleM3UChange = (value) => { - console.log(value); - setFilters((prev) => ({ - ...prev, - m3u_account: value ? value.value : '', - })); - }; - - const fetchData = useCallback(async () => { - setIsLoading(true); - - const params = new URLSearchParams(); - params.append('page', pagination.pageIndex + 1); - params.append('page_size', pagination.pageSize); - - // Apply sorting - if (sorting.length > 0) { - const sortField = sorting[0].id; - const sortDirection = sorting[0].desc ? '-' : ''; - params.append('ordering', `${sortDirection}${sortField}`); - } - - // Apply debounced filters - Object.entries(debouncedFilters).forEach(([key, value]) => { - if (value) params.append(key, value); - }); - - try { - const result = await API.queryStreams(params); - setData(result.results); - setRowCount(result.count); - - const newSelection = {}; - result.results.forEach((item, index) => { - if (selectedStreamIds.includes(item.id)) { - newSelection[index] = true; - } - }); - - // ✅ Only update rowSelection if it's different - if (JSON.stringify(newSelection) !== JSON.stringify(rowSelection)) { - setRowSelection(newSelection); - } - } catch (error) { - console.error('Error fetching data:', error); - } - - const groups = await API.getStreamGroups(); - setGroupOptions(groups); - - setIsLoading(false); - }, [pagination, sorting, debouncedFilters]); - - useEffect(() => { - console.log(pagination); - }, [pagination]); - - // Fallback: Individual creation (optional) - const createChannelFromStream = async (stream) => { - await API.createChannelFromStream({ - channel_name: stream.name, - channel_number: null, - stream_id: stream.id, - }); - }; - - // Bulk creation: create channels from selected streams in one API call - const createChannelsFromStreams = async () => { - setIsLoading(true); - await API.createChannelsFromStreams( - selectedStreamIds.map((stream_id) => ({ - stream_id, - })) - ); - setIsLoading(false); - }; - - const editStream = async (stream = null) => { - setStream(stream); - setModalOpen(true); - }; - - const deleteStream = async (id) => { - await API.deleteStream(id); - }; - - const deleteStreams = async () => { - setIsLoading(true); - await API.deleteStreams(selectedStreamIds); - setIsLoading(false); - }; - - const closeStreamForm = () => { - setStream(null); - setModalOpen(false); - }; - - const addStreamsToChannel = async () => { - const { streams, ...channel } = { ...channelsPageSelection[0] }; - await API.updateChannel({ - ...channel, - stream_ids: [ - ...new Set( - channelSelectionStreams - .map((stream) => stream.id) - .concat(selectedStreamIds) - ), - ], - }); - }; - - const addStreamToChannel = async (streamId) => { - const { streams, ...channel } = { ...channelsPageSelection[0] }; - await API.updateChannel({ - ...channel, - stream_ids: [ - ...new Set( - channelSelectionStreams.map((stream) => stream.id).concat([streamId]) - ), - ], - }); - }; - - const handleMoreActionsClick = (event, rowId) => { - setMoreActionsAnchorEl(event.currentTarget); - setActionsOpenRow(rowId); - }; - - const handleMoreActionsClose = () => { - setMoreActionsAnchorEl(null); - setActionsOpenRow(null); - }; - - const onRowSelectionChange = (updater) => { - setRowSelection((prevRowSelection) => { - const newRowSelection = - typeof updater === 'function' ? updater(prevRowSelection) : updater; - - const updatedSelected = new Set([...selectedStreamIds]); - table.getRowModel().rows.map((row) => { - if (newRowSelection[row.id] === undefined || !newRowSelection[row.id]) { - updatedSelected.delete(row.original.id); - } else { - updatedSelected.add(row.original.id); - } - }); - setSelectedStreamIds([...updatedSelected]); - - return newRowSelection; - }); - }; - - const onSelectAllChange = async (e) => { - const selectAll = e.target.checked; - if (selectAll) { - // Get all stream IDs for current view - const params = new URLSearchParams(); - - // Apply debounced filters - Object.entries(debouncedFilters).forEach(([key, value]) => { - if (value) params.append(key, value); - }); - - const ids = await API.getAllStreamIds(params); - setSelectedStreamIds(ids); - } else { - setSelectedStreamIds([]); - } - - const newSelection = {}; - table.getRowModel().rows.forEach((item, index) => { - newSelection[index] = selectAll; - }); - setRowSelection(newSelection); - }; - - const onPaginationChange = (updater) => { - const newPagination = updater(pagination); - if (JSON.stringify(newPagination) === JSON.stringify(pagination)) { - // Prevent infinite re-render when there are no results - return; - } - - setPagination(updater); - }; - - const table = useMaterialReactTable({ - ...TableHelper.defaultProperties, - columns, - data, - enablePagination: true, - manualPagination: true, - enableRowVirtualization: true, - rowVirtualizerInstanceRef, - rowVirtualizerOptions: { overscan: 5 }, //optionally customize the row virtualizer - manualSorting: true, - enableBottomToolbar: true, - enableStickyHeader: true, - onPaginationChange: onPaginationChange, - onSortingChange: setSorting, - rowCount: rowCount, - enableRowSelection: true, - muiSelectAllCheckboxProps: { - checked: selectedStreamIds.length == rowCount, - indeterminate: - selectedStreamIds.length > 0 && selectedStreamIds.length != rowCount, - onChange: onSelectAllChange, - }, - onRowSelectionChange: onRowSelectionChange, - initialState: { - density: 'compact', - }, - state: { - isLoading: isLoading, - sorting, - pagination, - rowSelection, - }, - enableRowActions: true, - positionActionsColumn: 'first', - renderRowActions: ({ row }) => ( - <> - - addStreamToChannel(row.original.id)} - sx={{ py: 0, px: 0.5 }} - disabled={ - channelsPageSelection.length != 1 || - (channelSelectionStreams && - channelSelectionStreams - .map((stream) => stream.id) - .includes(row.original.id)) - } - > - - - - - - createChannelFromStream(row.original)} - sx={{ py: 0, px: 0.5 }} - > - - - - - handleMoreActionsClick(event, row.original.id)} - size="small" - sx={{ py: 0, px: 0.5 }} - > - - - - editStream(row.original.id)} - disabled={row.original.m3u_account ? true : false} - > - Edit - - deleteStream(row.original.id)}> - Delete Stream - - - - ), - muiPaginationProps: { - size: 'small', - rowsPerPageOptions: [25, 50, 100, 250, 500, 1000, 10000], - labelRowsPerPage: 'Rows per page', - }, - muiTableContainerProps: { - sx: { - height: 'calc(100vh - 145px)', - overflowY: 'auto', - }, - }, - displayColumnDefOptions: { - 'mrt-row-actions': { - size: 68, - }, - 'mrt-row-select': { - size: 50, - }, - }, - renderTopToolbarCustomActions: ({ table }) => { - const selectedRowCount = table.getSelectedRowModel().rows.length; - - return ( - - Streams - - editStream()} - > - - - - - - - - - - - - ); - }, - }); - - /** - * useEffects - */ - useEffect(() => { - fetchData(); - }, [fetchData]); - - useEffect(() => { - if (typeof window !== 'undefined') { - setIsLoading(false); - } - }, []); - - useEffect(() => { - // Scroll to the top of the table when sorting changes - try { - rowVirtualizerInstanceRef.current?.scrollToIndex?.(0); - } catch (error) { - console.error(error); - } - }, [sorting]); - - return ( - - - - - ); -}; - -export default StreamsTable; diff --git a/vite/src/components/tables/StreamsTable.jsx b/frontend/src/components/tables/StreamsTable.jsx similarity index 73% rename from vite/src/components/tables/StreamsTable.jsx rename to frontend/src/components/tables/StreamsTable.jsx index af2a86d4..2f90fb09 100644 --- a/vite/src/components/tables/StreamsTable.jsx +++ b/frontend/src/components/tables/StreamsTable.jsx @@ -13,7 +13,7 @@ import StreamForm from '../forms/Stream'; import usePlaylistsStore from '../../store/playlists'; import useChannelsStore from '../../store/channels'; import { useDebounce } from '../../utils'; -import { SquarePlus, ListPlus } from 'lucide-react'; +import { SquarePlus, ListPlus, SquareMinus } from 'lucide-react'; import { TextInput, ActionIcon, @@ -25,6 +25,11 @@ import { Text, Paper, Button, + Card, + Stack, + Title, + Divider, + Center, } from '@mantine/core'; import { IconArrowDown, @@ -32,9 +37,9 @@ import { IconDeviceDesktopSearch, IconSelector, IconSortAscendingNumbers, - IconSquareMinus, IconSquarePlus, } from '@tabler/icons-react'; +import { useNavigate } from 'react-router-dom'; const StreamsTable = ({}) => { /** @@ -47,6 +52,7 @@ const StreamsTable = ({}) => { const [groupOptions, setGroupOptions] = useState([]); const [m3uOptions, setM3uOptions] = useState([]); const [actionsOpenRow, setActionsOpenRow] = useState(null); + const [dataFetched, setDataFetched] = useState(false); const [data, setData] = useState([]); // Holds fetched data const [rowCount, setRowCount] = useState(0); @@ -66,6 +72,8 @@ const StreamsTable = ({}) => { }); const debouncedFilters = useDebounce(filters, 500); + const navigate = useNavigate(); + /** * Stores */ @@ -80,6 +88,11 @@ const StreamsTable = ({}) => { // Access the row virtualizer instance (optional) const rowVirtualizerInstanceRef = useRef(null); + const handleSelectClick = (e) => { + e.stopPropagation(); + e.preventDefault(); + }; + /** * useMemo */ @@ -119,15 +132,17 @@ const StreamsTable = ({}) => { accessorKey: 'group_name', size: 100, Header: ({ column }) => ( - + ), Cell: ({ cell }) => (
    { accessorFn: (row) => playlists.find((playlist) => playlist.id === row.m3u_account)?.name, Header: ({ column }) => ( - ({ + label: playlist.name, + value: `${playlist.id}`, + }))} + /> + ), }, ], @@ -179,14 +196,14 @@ const StreamsTable = ({}) => { const handleGroupChange = (value) => { setFilters((prev) => ({ ...prev, - group_name: value ? value.value : '', + group_name: value ? value : '', })); }; const handleM3UChange = (value) => { setFilters((prev) => ({ ...prev, - m3u_account: value ? value.value : '', + m3u_account: value ? value : '', })); }; @@ -233,6 +250,9 @@ const StreamsTable = ({}) => { setGroupOptions(groups); setIsLoading(false); + if (dataFetched === false) { + setDataFetched(true); + } }, [pagination, sorting, debouncedFilters]); // Fallback: Individual creation (optional) @@ -393,6 +413,13 @@ const StreamsTable = ({}) => { onPaginationChange: onPaginationChange, rowCount: rowCount, enableRowSelection: true, + mantineSelectAllCheckboxProps: { + checked: selectedStreamIds.length == rowCount, + indeterminate: + selectedStreamIds.length > 0 && selectedStreamIds.length != rowCount, + onChange: onSelectAllChange, + size: 'xs', + }, muiPaginationProps: { size: 'small', rowsPerPageOptions: [25, 50, 100, 250, 500, 1000, 10000], @@ -457,7 +484,7 @@ const StreamsTable = ({}) => { editStream(row.original.id)} + onClick={() => editStream(row.original)} disabled={row.original.m3u_account ? true : false} > Edit @@ -471,16 +498,16 @@ const StreamsTable = ({}) => { ), mantineTableContainerProps: { style: { - height: 'calc(100vh - 165px)', + height: 'calc(100vh - 180px)', overflowY: 'auto', }, }, displayColumnDefOptions: { 'mrt-row-actions': { - size: 68, + size: 30, }, 'mrt-row-select': { - size: 50, + size: 20, }, }, }); @@ -509,7 +536,10 @@ const StreamsTable = ({}) => { return ( <> - + { fontSize: '20px', lineHeight: 1, letterSpacing: '-0.3px', - color: 'gray.6', // Adjust this to match MUI's theme.palette.text.secondary + // color: 'gray.6', // Adjust this to match MUI's theme.palette.text.secondary marginBottom: 0, }} > @@ -528,16 +558,14 @@ const StreamsTable = ({}) => { {/* Top toolbar with Remove, Assign, Auto-match, and Add buttons */} { }} > - - - + - - - + - - - + - - + {!dataFetched && ( +
    + + + + Getting started + + + In order to get started, add your M3U or start
    + adding custom streams. +
    + + + +
    +
    +
    + )} + {dataFetched && } + { - const [userAgent, setUserAgent] = useState(null); - const [userAgentModalOpen, setUserAgentModalOpen] = useState(false); - const [rowSelection, setRowSelection] = useState([]); - const [activeFilterValue, setActiveFilterValue] = useState('all'); - - const userAgents = useUserAgentsStore((state) => state.userAgents); - const { settings } = useSettingsStore(); - const { showAlert } = useAlertStore(); - - const columns = useMemo( - //column definitions... - () => [ - { - header: 'Name', - accessorKey: 'user_agent_name', - }, - { - header: 'User-Agent', - accessorKey: 'user_agent', - }, - { - header: 'Desecription', - accessorKey: 'description', - }, - { - header: 'Active', - accessorKey: 'is_active', - size: 100, - sortingFn: 'basic', - muiTableBodyCellProps: { - align: 'left', - }, - Cell: ({ cell }) => ( - - {cell.getValue() ? ( - - ) : ( - - )} - - ), - Filter: ({ column }) => ( - - - - ), - filterFn: (row, _columnId, activeFilterValue) => { - if (activeFilterValue == 'all') return true; // Show all if no filter - return String(row.getValue('is_active')) === activeFilterValue; - }, - }, - ], - [] - ); - - //optionally access the underlying virtualizer instance - const rowVirtualizerInstanceRef = useRef(null); - - const [isLoading, setIsLoading] = useState(true); - const [sorting, setSorting] = useState([]); - - const editUserAgent = async (userAgent = null) => { - setUserAgent(userAgent); - setUserAgentModalOpen(true); - }; - - const deleteUserAgent = async (ids) => { - if (Array.isArray(ids)) { - if (ids.includes(settings['default-user-agent'].value)) { - showAlert('Cannot delete default user-agent', 'error'); - return; - } - - await API.deleteUserAgents(ids); - } else { - if (ids == settings['default-user-agent'].value) { - showAlert('Cannot delete default user-agent', 'error'); - return; - } - - await API.deleteUserAgent(ids); - } - }; - - const closeUserAgentForm = () => { - setUserAgent(null); - setUserAgentModalOpen(false); - }; - - useEffect(() => { - if (typeof window !== 'undefined') { - setIsLoading(false); - } - }, []); - - useEffect(() => { - //scroll to the top of the table when the sorting changes - try { - rowVirtualizerInstanceRef.current?.scrollToIndex?.(0); - } catch (error) { - console.error(error); - } - }, [sorting]); - - const table = useMaterialReactTable({ - ...TableHelper.defaultProperties, - columns, - data: userAgents, - enablePagination: false, - enableRowVirtualization: true, - enableRowSelection: true, - onRowSelectionChange: setRowSelection, - onSortingChange: setSorting, - state: { - isLoading, - sorting, - rowSelection, - }, - rowVirtualizerInstanceRef, //optional - rowVirtualizerOptions: { overscan: 5 }, //optionally customize the row virtualizer - initialState: { - density: 'compact', - }, - enableRowActions: true, - renderRowActions: ({ row }) => ( - <> - { - editUserAgent(row.original); - }} - sx={{ pt: 0, pb: 0 }} - > - {/* Small icon size */} - - deleteUserAgent(row.original.id)} - sx={{ pt: 0, pb: 0 }} - > - {/* Small icon size */} - - - ), - muiTableContainerProps: { - sx: { - height: 'calc(42vh + 5px)', - }, - }, - renderTopToolbarCustomActions: ({ table }) => ( - - User-Agents - - editUserAgent()} - > - {/* Small icon size */} - - - - ), - }); - - return ( - <> - - - - - - ); -}; - -export default UserAgentsTable; diff --git a/vite/src/components/tables/UserAgentsTable.jsx b/frontend/src/components/tables/UserAgentsTable.jsx similarity index 62% rename from vite/src/components/tables/UserAgentsTable.jsx rename to frontend/src/components/tables/UserAgentsTable.jsx index 6324b3a8..b1107e83 100644 --- a/vite/src/components/tables/UserAgentsTable.jsx +++ b/frontend/src/components/tables/UserAgentsTable.jsx @@ -12,8 +12,26 @@ import useUserAgentsStore from '../../store/userAgents'; import UserAgentForm from '../forms/UserAgent'; import { TableHelper } from '../../helpers'; import useSettingsStore from '../../store/settings'; -import useAlertStore from '../../store/alerts'; -import { ActionIcon, Center, Flex, Select, Tooltip, Text } from '@mantine/core'; +import { notifications } from '@mantine/notifications'; +import { + ActionIcon, + Center, + Flex, + Select, + Tooltip, + Text, + Paper, + Box, + Button, +} from '@mantine/core'; +import { + IconArrowDown, + IconArrowUp, + IconDeviceDesktopSearch, + IconSelector, + IconSortAscendingNumbers, + IconSquarePlus, +} from '@tabler/icons-react'; const UserAgentsTable = () => { const [userAgent, setUserAgent] = useState(null); @@ -23,7 +41,6 @@ const UserAgentsTable = () => { const userAgents = useUserAgentsStore((state) => state.userAgents); const { settings } = useSettingsStore(); - const { showAlert } = useAlertStore(); const columns = useMemo( //column definitions... @@ -35,17 +52,39 @@ const UserAgentsTable = () => { { header: 'User-Agent', accessorKey: 'user_agent', + Cell: ({ cell }) => ( +
    + {cell.getValue()} +
    + ), }, { header: 'Desecription', accessorKey: 'description', + Cell: ({ cell }) => ( +
    + {cell.getValue()} +
    + ), }, { header: 'Active', accessorKey: 'is_active', size: 100, sortingFn: 'basic', - muiTableBodyCellProps: { + mantineTableBodyCellProps: { align: 'left', }, Cell: ({ cell }) => ( @@ -105,14 +144,20 @@ const UserAgentsTable = () => { const deleteUserAgent = async (ids) => { if (Array.isArray(ids)) { if (ids.includes(settings['default-user-agent'].value)) { - showAlert('Cannot delete default user-agent', 'error'); + notifications.show({ + title: 'Cannot delete default user-agent', + color: 'red.5', + }); return; } await API.deleteUserAgents(ids); } else { if (ids == settings['default-user-agent'].value) { - showAlert('Cannot delete default user-agent', 'error'); + notifications.show({ + title: 'Cannot delete default user-agent', + color: 'red.5', + }); return; } @@ -147,6 +192,7 @@ const UserAgentsTable = () => { enablePagination: false, enableRowVirtualization: true, enableRowSelection: true, + renderTopToolbar: false, onRowSelectionChange: setRowSelection, onSortingChange: setSorting, state: { @@ -182,30 +228,85 @@ const UserAgentsTable = () => { ), - muiTableContainerProps: { - sx: { - height: 'calc(42vh + 5px)', + mantineTableContainerProps: { + style: { + height: 'calc(43vh - 55px)', }, }, - renderTopToolbarCustomActions: ({ table }) => ( - - User-Agents - - editUserAgent()} - > - {/* Small icon size */} - - - - ), }); return ( <> + + + User-Agents + + + + + {/* Top toolbar with Remove, Assign, Auto-match, and Add buttons */} + + + + + + + + + - - -); diff --git a/vite/src/main.jsx b/frontend/src/main.jsx similarity index 100% rename from vite/src/main.jsx rename to frontend/src/main.jsx diff --git a/vite/src/mantineTheme.jsx b/frontend/src/mantineTheme.jsx similarity index 100% rename from vite/src/mantineTheme.jsx rename to frontend/src/mantineTheme.jsx diff --git a/frontend/src/pages/Channels-test.jsx b/frontend/src/pages/Channels-test.jsx new file mode 100644 index 00000000..14e3319c --- /dev/null +++ b/frontend/src/pages/Channels-test.jsx @@ -0,0 +1,15 @@ +import React from 'react'; +import { Allotment } from 'allotment'; +import { Box, Container } from '@mantine/core'; +import 'allotment/dist/style.css'; + +const ChannelsPage = () => { + return ( + +
    Pane 1
    +
    Pane 1
    +
    + ); +}; + +export default ChannelsPage; diff --git a/frontend/src/pages/Channels.js b/frontend/src/pages/Channels.js deleted file mode 100644 index 73eccb9a..00000000 --- a/frontend/src/pages/Channels.js +++ /dev/null @@ -1,43 +0,0 @@ -import React, { useState } from 'react'; -import ChannelsTable from '../components/tables/ChannelsTable'; -import StreamsTable from '../components/tables/StreamsTable'; -import { Grid2, Box } from '@mui/material'; - -const ChannelsPage = () => { - return ( - - - - - - - - - - - - - ); -}; - -export default ChannelsPage; diff --git a/vite/src/pages/Channels.jsx b/frontend/src/pages/Channels.jsx similarity index 85% rename from vite/src/pages/Channels.jsx rename to frontend/src/pages/Channels.jsx index 4899c4fb..c3913d76 100644 --- a/vite/src/pages/Channels.jsx +++ b/frontend/src/pages/Channels.jsx @@ -5,11 +5,11 @@ import { Box, Grid } from '@mantine/core'; const ChannelsPage = () => { return ( - + { { - const [newStream, setNewStream] = useState(""); - - return ( -
    -

    Dashboard Page

    - setNewStream(e.target.value)} - placeholder="Enter Stream" - /> - -

    Streams:

    -
      - {state.streams.map((stream, index) => ( -
    • {stream}
    • - ))} -
    -
    - ); -}; - -export default Dashboard; diff --git a/vite/src/pages/Dashboard.jsx b/frontend/src/pages/Dashboard.jsx similarity index 100% rename from vite/src/pages/Dashboard.jsx rename to frontend/src/pages/Dashboard.jsx diff --git a/frontend/src/pages/EPG.js b/frontend/src/pages/EPG.js deleted file mode 100644 index 24909f05..00000000 --- a/frontend/src/pages/EPG.js +++ /dev/null @@ -1,27 +0,0 @@ -import React from "react"; -import { Box } from "@mui/material"; -import UserAgentsTable from "../components/tables/UserAgentsTable"; -import EPGsTable from "../components/tables/EPGsTable"; - -const EPGPage = () => { - return ( - - - - - - - - - - ); -}; - -export default EPGPage; diff --git a/vite/src/pages/EPG.jsx b/frontend/src/pages/EPG.jsx similarity index 92% rename from vite/src/pages/EPG.jsx rename to frontend/src/pages/EPG.jsx index f8b9a7f4..aea3d92d 100644 --- a/vite/src/pages/EPG.jsx +++ b/frontend/src/pages/EPG.jsx @@ -9,8 +9,9 @@ const EPGPage = () => { style={{ display: 'flex', flexDirection: 'column', - height: '95vh', + height: '100vh', overflow: 'hidden', + padding: 16, }} > diff --git a/frontend/src/pages/Guide.js b/frontend/src/pages/Guide.js deleted file mode 100644 index d60ec8ba..00000000 --- a/frontend/src/pages/Guide.js +++ /dev/null @@ -1,532 +0,0 @@ -// frontend/src/pages/Guide.js -import React, { useMemo, useState, useEffect, useRef } from 'react'; -import { - Box, - Typography, - Paper, - Stack, - Dialog, - DialogTitle, - DialogContent, - DialogActions, - Button, - Slide, - CircularProgress, - Backdrop, -} from '@mui/material'; -import dayjs from 'dayjs'; -import API from '../api'; -import useChannelsStore from '../store/channels'; -import logo from '../images/logo.png'; -import useVideoStore from '../store/useVideoStore'; // NEW import -import useAlertStore from '../store/alerts'; -import useSettingsStore from '../store/settings'; - -/** Layout constants */ -const CHANNEL_WIDTH = 120; // Width of the channel/logo column -const PROGRAM_HEIGHT = 90; // Height of each channel row -const HOUR_WIDTH = 300; // The width for a 1-hour block -const MINUTE_INCREMENT = 15; // For positioning programs every 15 min -const MINUTE_BLOCK_WIDTH = HOUR_WIDTH / (60 / MINUTE_INCREMENT); - -// Modal size constants -const MODAL_WIDTH = 600; -const MODAL_HEIGHT = 400; - -// Slide transition for Dialog -const Transition = React.forwardRef(function Transition(props, ref) { - return ; -}); - -export default function TVChannelGuide({ startDate, endDate }) { - const { channels } = useChannelsStore(); - - const [programs, setPrograms] = useState([]); - const [guideChannels, setGuideChannels] = useState([]); - const [now, setNow] = useState(dayjs()); - const [selectedProgram, setSelectedProgram] = useState(null); - const [loading, setLoading] = useState(true); - const { showAlert } = useAlertStore(); - const { - environment: { env_mode }, - } = useSettingsStore(); - - const guideRef = useRef(null); - - // Load program data once - useEffect(() => { - if (!channels || channels.length === 0) { - console.warn('No channels provided or empty channels array'); - showAlert('No channels available', 'error'); - setLoading(false); - return; - } - - const fetchPrograms = async () => { - console.log('Fetching program grid...'); - const fetched = await API.getGrid(); // GETs your EPG grid - console.log(`Received ${fetched.length} programs`); - - // Unique tvg_ids from returned programs - const programIds = [...new Set(fetched.map((p) => p.tvg_id))]; - - // Filter your Redux/Zustand channels by matching tvg_id - const filteredChannels = channels.filter((ch) => - programIds.includes(ch.tvg_id) - ); - console.log( - `found ${filteredChannels.length} channels with matching tvg_ids` - ); - - setGuideChannels(filteredChannels); - setPrograms(fetched); - setLoading(false); - }; - - fetchPrograms(); - }, [channels]); - - // Use start/end from props or default to "today at midnight" +24h - const defaultStart = dayjs(startDate || dayjs().startOf('day')); - const defaultEnd = endDate ? dayjs(endDate) : defaultStart.add(24, 'hour'); - - // Expand timeline if needed based on actual earliest/ latest program - const earliestProgramStart = useMemo(() => { - if (!programs.length) return defaultStart; - return programs.reduce((acc, p) => { - const s = dayjs(p.start_time); - return s.isBefore(acc) ? s : acc; - }, defaultStart); - }, [programs, defaultStart]); - - const latestProgramEnd = useMemo(() => { - if (!programs.length) return defaultEnd; - return programs.reduce((acc, p) => { - const e = dayjs(p.end_time); - return e.isAfter(acc) ? e : acc; - }, defaultEnd); - }, [programs, defaultEnd]); - - const start = earliestProgramStart.isBefore(defaultStart) - ? earliestProgramStart - : defaultStart; - const end = latestProgramEnd.isAfter(defaultEnd) - ? latestProgramEnd - : defaultEnd; - - // Time increments in 15-min steps (for placing programs) - const programTimeline = useMemo(() => { - const times = []; - let current = start; - while (current.isBefore(end)) { - times.push(current); - current = current.add(MINUTE_INCREMENT, 'minute'); - } - return times; - }, [start, end]); - - // Hourly marks - const hourTimeline = useMemo(() => { - const hours = []; - let current = start; - while (current.isBefore(end)) { - hours.push(current); - current = current.add(1, 'hour'); - } - return hours; - }, [start, end]); - - // Scroll to "now" on load - useEffect(() => { - if (guideRef.current) { - const nowOffset = dayjs().diff(start, 'minute'); - const scrollPosition = - (nowOffset / MINUTE_INCREMENT) * MINUTE_BLOCK_WIDTH - - MINUTE_BLOCK_WIDTH; - guideRef.current.scrollLeft = Math.max(scrollPosition, 0); - } - }, [programs, start]); - - // Update “now” every 60s - useEffect(() => { - const interval = setInterval(() => { - setNow(dayjs()); - }, 60000); - return () => clearInterval(interval); - }, []); - - // Pixel offset for the “now” vertical line - const nowPosition = useMemo(() => { - if (now.isBefore(start) || now.isAfter(end)) return -1; - const minutesSinceStart = now.diff(start, 'minute'); - return (minutesSinceStart / MINUTE_INCREMENT) * MINUTE_BLOCK_WIDTH; - }, [now, start, end]); - - // Helper: find channel by tvg_id - function findChannelByTvgId(tvgId) { - return guideChannels.find((ch) => ch.tvg_id === tvgId); - } - - // The “Watch Now” click => show floating video - const { showVideo } = useVideoStore(); // or useVideoStore() - function handleWatchStream(program) { - const matched = findChannelByTvgId(program.tvg_id); - if (!matched) { - console.warn(`No channel found for tvg_id=${program.tvg_id}`); - return; - } - // Build a playable stream URL for that channel - let vidUrl = `/output/stream/${matched.channel_number}/`; - if (env_mode == 'dev') { - vidUrl = `${window.location.protocol}//${window.location.hostname}:5656${vidUrl}`; - } - - showVideo(vidUrl); - - // Optionally close the modal - setSelectedProgram(null); - } - - // On program click, open the details modal - function handleProgramClick(program, event) { - // Optionally scroll that element into view or do something else - event.currentTarget.scrollIntoView({ - behavior: 'smooth', - inline: 'center', - }); - setSelectedProgram(program); - } - - // Close the modal - function handleCloseModal() { - setSelectedProgram(null); - } - - // Renders each program block - function renderProgram(program, channelStart) { - const programKey = `${program.tvg_id}-${program.start_time}`; - const programStart = dayjs(program.start_time); - const programEnd = dayjs(program.end_time); - const startOffsetMinutes = programStart.diff(channelStart, 'minute'); - const durationMinutes = programEnd.diff(programStart, 'minute'); - const leftPx = (startOffsetMinutes / MINUTE_INCREMENT) * MINUTE_BLOCK_WIDTH; - const widthPx = (durationMinutes / MINUTE_INCREMENT) * MINUTE_BLOCK_WIDTH; - - // Highlight if currently live - const isLive = now.isAfter(programStart) && now.isBefore(programEnd); - - return ( - handleProgramClick(program, e)} - > - - - {program.title} - - - {programStart.format('h:mma')} - {programEnd.format('h:mma')} - - - - ); - } - - if (loading) { - return ( - theme.zIndex.drawer + 1, - position: 'fixed', // Ensure it covers the entire page - top: 0, - left: 0, - right: 0, - bottom: 0, - }} - open={loading} - > - - - ); - } - - return ( - - {/* Sticky top bar */} - - - TV Guide - - - {now.format('dddd, MMMM D, YYYY • h:mm A')} - - - - {/* Main layout */} - - {/* Channel Logos Column */} - - - {guideChannels.map((channel) => ( - - - {channel.channel_name} - - - ))} - - - {/* Timeline & Program Blocks */} - - {/* Sticky timeline header */} - - - {hourTimeline.map((time, hourIndex) => ( - - - {time.format('h:mma')} - - - {[0, 1, 2, 3].map((i) => ( - - ))} - - - ))} - - - - {/* Now line */} - - {nowPosition >= 0 && ( - - )} - - {/* Channel rows */} - {guideChannels.map((channel) => { - const channelPrograms = programs.filter( - (p) => p.tvg_id === channel.tvg_id - ); - return ( - - - {channelPrograms.map((prog) => renderProgram(prog, start))} - - - ); - })} - - - - - {/* Modal for program details */} - - {selectedProgram && ( - <> - - {selectedProgram.title} - - - - {dayjs(selectedProgram.start_time).format('h:mma')} -{' '} - {dayjs(selectedProgram.end_time).format('h:mma')} - - - {selectedProgram.description || 'No description available.'} - - - - {/* Only show the Watch button if currently live */} - {now.isAfter(dayjs(selectedProgram.start_time)) && - now.isBefore(dayjs(selectedProgram.end_time)) && ( - - )} - - - - )} - - - ); -} diff --git a/vite/src/pages/Guide.jsx b/frontend/src/pages/Guide.jsx similarity index 72% rename from vite/src/pages/Guide.jsx rename to frontend/src/pages/Guide.jsx index d60ec8ba..c8f4ea58 100644 --- a/vite/src/pages/Guide.jsx +++ b/frontend/src/pages/Guide.jsx @@ -1,26 +1,23 @@ // frontend/src/pages/Guide.js import React, { useMemo, useState, useEffect, useRef } from 'react'; -import { - Box, - Typography, - Paper, - Stack, - Dialog, - DialogTitle, - DialogContent, - DialogActions, - Button, - Slide, - CircularProgress, - Backdrop, -} from '@mui/material'; import dayjs from 'dayjs'; import API from '../api'; import useChannelsStore from '../store/channels'; import logo from '../images/logo.png'; import useVideoStore from '../store/useVideoStore'; // NEW import -import useAlertStore from '../store/alerts'; +import { notifications } from '@mantine/notifications'; import useSettingsStore from '../store/settings'; +import { + Title, + Box, + Modal, + Flex, + Button, + Text, + Paper, + Grid, +} from '@mantine/core'; +import './guide.css'; /** Layout constants */ const CHANNEL_WIDTH = 120; // Width of the channel/logo column @@ -33,11 +30,6 @@ const MINUTE_BLOCK_WIDTH = HOUR_WIDTH / (60 / MINUTE_INCREMENT); const MODAL_WIDTH = 600; const MODAL_HEIGHT = 400; -// Slide transition for Dialog -const Transition = React.forwardRef(function Transition(props, ref) { - return ; -}); - export default function TVChannelGuide({ startDate, endDate }) { const { channels } = useChannelsStore(); @@ -46,7 +38,6 @@ export default function TVChannelGuide({ startDate, endDate }) { const [now, setNow] = useState(dayjs()); const [selectedProgram, setSelectedProgram] = useState(null); const [loading, setLoading] = useState(true); - const { showAlert } = useAlertStore(); const { environment: { env_mode }, } = useSettingsStore(); @@ -55,9 +46,9 @@ export default function TVChannelGuide({ startDate, endDate }) { // Load program data once useEffect(() => { - if (!channels || channels.length === 0) { + if (!Object.keys(channels).length === 0) { console.warn('No channels provided or empty channels array'); - showAlert('No channels available', 'error'); + notifications.show({ title: 'No channels available', color: 'red.5' }); setLoading(false); return; } @@ -71,7 +62,7 @@ export default function TVChannelGuide({ startDate, endDate }) { const programIds = [...new Set(fetched.map((p) => p.tvg_id))]; // Filter your Redux/Zustand channels by matching tvg_id - const filteredChannels = channels.filter((ch) => + const filteredChannels = Object.values(channels).filter((ch) => programIds.includes(ch.tvg_id) ); console.log( @@ -217,8 +208,9 @@ export default function TVChannelGuide({ startDate, endDate }) { return ( - + {program.title} - - + + {programStart.format('h:mma')} - {programEnd.format('h:mma')} - + ); } - if (loading) { - return ( - theme.zIndex.drawer + 1, - position: 'fixed', // Ensure it covers the entire page - top: 0, - left: 0, - right: 0, - bottom: 0, - }} - open={loading} - > - - - ); - } - return ( {/* Sticky top bar */} - - + TV Guide - </Typography> - <Typography variant="body2"> - {now.format('dddd, MMMM D, YYYY • h:mm A')} - </Typography> - </Box> + + {now.format('dddd, MMMM D, YYYY • h:mm A')} +
    {/* Main layout */} - + {/* Channel Logos Column */} - + ( {/* Sticky timeline header */} - + {hourTimeline.map((time, hourIndex) => ( - {time.format('h:mma')} - + ( {/* Now line */} - + {nowPosition >= 0 && ( - + {channelPrograms.map((prog) => renderProgram(prog, start))} @@ -471,62 +440,36 @@ export default function TVChannelGuide({ startDate, endDate }) { })} - + {/* Modal for program details */} - {selectedProgram && ( <> - - {selectedProgram.title} - - - - {dayjs(selectedProgram.start_time).format('h:mma')} -{' '} - {dayjs(selectedProgram.end_time).format('h:mma')} - - - {selectedProgram.description || 'No description available.'} - - - - {/* Only show the Watch button if currently live */} - {now.isAfter(dayjs(selectedProgram.start_time)) && - now.isBefore(dayjs(selectedProgram.end_time)) && ( - - )} - - + + )} )} - + ); } diff --git a/frontend/src/pages/Home.js b/frontend/src/pages/Home.js deleted file mode 100644 index ac971332..00000000 --- a/frontend/src/pages/Home.js +++ /dev/null @@ -1,14 +0,0 @@ -// src/components/Home.js -import React, { useState } from "react"; - -const Home = () => { - const [newChannel, setNewChannel] = useState(""); - - return ( -
    -

    Home Page

    -
    - ); -}; - -export default Home; diff --git a/vite/src/pages/Home.jsx b/frontend/src/pages/Home.jsx similarity index 100% rename from vite/src/pages/Home.jsx rename to frontend/src/pages/Home.jsx diff --git a/frontend/src/pages/Login.js b/frontend/src/pages/Login.js deleted file mode 100644 index 5ed4f203..00000000 --- a/frontend/src/pages/Login.js +++ /dev/null @@ -1,8 +0,0 @@ -import React from "react"; -import LoginForm from "../components/forms/LoginForm"; - -const Login = () => { - return ; -}; - -export default Login; diff --git a/frontend/src/pages/Login.jsx b/frontend/src/pages/Login.jsx new file mode 100644 index 00000000..3e9cdecc --- /dev/null +++ b/frontend/src/pages/Login.jsx @@ -0,0 +1,16 @@ +import React from 'react'; +import LoginForm from '../components/forms/LoginForm'; +import SuperuserForm from '../components/forms/SuperuserForm'; +import useAuthStore from '../store/auth'; + +const Login = ({}) => { + const { superuserExists } = useAuthStore(); + + if (!superuserExists) { + return ; + } + + return ; +}; + +export default Login; diff --git a/frontend/src/pages/M3U.js b/frontend/src/pages/M3U.js deleted file mode 100644 index 9fd7e2c2..00000000 --- a/frontend/src/pages/M3U.js +++ /dev/null @@ -1,72 +0,0 @@ -import React, { useState } from "react"; -import useUserAgentsStore from "../store/userAgents"; -import { Box } from "@mui/material"; -import M3UsTable from "../components/tables/M3UsTable"; -import UserAgentsTable from "../components/tables/UserAgentsTable"; -import usePlaylistsStore from "../store/playlists"; -import API from "../api"; -import M3UForm from "../components/forms/M3U"; - -const M3UPage = () => { - const isLoading = useUserAgentsStore((state) => state.isLoading); - const error = useUserAgentsStore((state) => state.error); - const playlists = usePlaylistsStore((state) => state.playlists); - - const [playlist, setPlaylist] = useState(null); - const [playlistModalOpen, setPlaylistModalOpen] = useState(false); - - const [userAgent, setUserAgent] = useState(null); - const [userAgentModalOpen, setUserAgentModalOpen] = useState(false); - - const editUserAgent = async (userAgent = null) => { - setUserAgent(userAgent); - setUserAgentModalOpen(true); - }; - - const editPlaylist = async (playlist = null) => { - setPlaylist(playlist); - setPlaylistModalOpen(true); - }; - - const deleteUserAgent = async (ids) => { - if (Array.isArray(ids)) { - await API.deleteUserAgents(ids); - } else { - await API.deleteUserAgent(ids); - } - }; - - const deletePlaylist = async (id) => { - await API.deletePlaylist(id); - }; - - if (isLoading) return
    Loading...
    ; - if (error) return
    Error: {error}
    ; - - return ( - - - - - - - - - - setPlaylistModalOpen(false)} - /> - - ); -}; - -export default M3UPage; diff --git a/vite/src/pages/M3U.jsx b/frontend/src/pages/M3U.jsx similarity index 96% rename from vite/src/pages/M3U.jsx rename to frontend/src/pages/M3U.jsx index 71cc729e..acc883e8 100644 --- a/vite/src/pages/M3U.jsx +++ b/frontend/src/pages/M3U.jsx @@ -13,11 +13,12 @@ const M3UPage = () => { return ( diff --git a/frontend/src/pages/Settings.js b/frontend/src/pages/Settings.js deleted file mode 100644 index cd068750..00000000 --- a/frontend/src/pages/Settings.js +++ /dev/null @@ -1,197 +0,0 @@ -import React, { useEffect } from 'react'; -import { - Grid as Grid2, - Box, - Container, - Typography, - FormControl, - Select, - MenuItem, - CircularProgress, - InputLabel, - Button, -} from '@mui/material'; -import { useFormik } from 'formik'; -import * as Yup from 'yup'; - -import API from '../api'; -import useSettingsStore from '../store/settings'; -import useUserAgentsStore from '../store/userAgents'; -import useStreamProfilesStore from '../store/streamProfiles'; - -const SettingsPage = () => { - const { settings } = useSettingsStore(); - const { userAgents } = useUserAgentsStore(); - const { profiles: streamProfiles } = useStreamProfilesStore(); - - // Add your region choices here: - const regionChoices = [ - { value: 'us', label: 'US' }, - { value: 'uk', label: 'UK' }, - { value: 'nl', label: 'NL' }, - { value: 'de', label: 'DE' }, - // Add more if needed - ]; - - const formik = useFormik({ - initialValues: { - 'default-user-agent': '', - 'default-stream-profile': '', - 'preferred-region': '', - }, - validationSchema: Yup.object({ - 'default-user-agent': Yup.string().required('User-Agent is required'), - 'default-stream-profile': Yup.string().required( - 'Stream Profile is required' - ), - // The region is optional or required as you prefer - // 'preferred-region': Yup.string().required('Region is required'), - }), - onSubmit: async (values, { setSubmitting, resetForm }) => { - const changedSettings = {}; - for (const settingKey in values) { - // If the user changed the setting’s value from what’s in the DB: - if (String(values[settingKey]) !== String(settings[settingKey].value)) { - changedSettings[settingKey] = values[settingKey]; - } - } - - // Update each changed setting in the backend - for (const updatedKey in changedSettings) { - await API.updateSetting({ - ...settings[updatedKey], - value: changedSettings[updatedKey], - }); - } - - setSubmitting(false); - // Don’t necessarily resetForm, in case the user wants to see new values - }, - }); - - // Initialize form values once settings / userAgents / profiles are loaded - useEffect(() => { - formik.setValues( - Object.values(settings).reduce((acc, setting) => { - // If the setting’s value is numeric, parse it - // Otherwise, just store as string - const possibleNumber = parseInt(setting.value, 10); - acc[setting.key] = isNaN(possibleNumber) - ? setting.value - : possibleNumber; - return acc; - }, {}) - ); - // eslint-disable-next-line - }, [settings, userAgents, streamProfiles]); - - return ( - - - - Settings - - -
    - - {/* Default User-Agent */} - - - Default User-Agent - - - - - {/* Default Stream Profile */} - - - - Default Stream Profile - - - - - - {/* Preferred Region */} - - {/* Only render if you do indeed have "preferred-region" in the DB */} - {settings['preferred-region'] && ( - - Preferred Region - - - )} - - - - - - -
    -
    -
    - ); -}; - -export default SettingsPage; diff --git a/vite/src/pages/Settings.jsx b/frontend/src/pages/Settings.jsx similarity index 100% rename from vite/src/pages/Settings.jsx rename to frontend/src/pages/Settings.jsx diff --git a/frontend/src/pages/StreamProfiles.js b/frontend/src/pages/StreamProfiles.js deleted file mode 100644 index 615bace2..00000000 --- a/frontend/src/pages/StreamProfiles.js +++ /dev/null @@ -1,8 +0,0 @@ -import React from "react"; -import StreamProfilesTable from "../components/tables/StreamProfilesTable"; - -const StreamProfilesPage = () => { - return ; -}; - -export default StreamProfilesPage; diff --git a/vite/src/pages/StreamProfiles.jsx b/frontend/src/pages/StreamProfiles.jsx similarity index 58% rename from vite/src/pages/StreamProfiles.jsx rename to frontend/src/pages/StreamProfiles.jsx index 190779ea..42dda005 100644 --- a/vite/src/pages/StreamProfiles.jsx +++ b/frontend/src/pages/StreamProfiles.jsx @@ -1,8 +1,13 @@ import React from 'react'; import StreamProfilesTable from '../components/tables/StreamProfilesTable'; +import { Box } from '@mantine/core'; const StreamProfilesPage = () => { - return ; + return ( + + + + ); }; export default StreamProfilesPage; diff --git a/frontend/src/pages/guide.css b/frontend/src/pages/guide.css new file mode 100644 index 00000000..93161a5e --- /dev/null +++ b/frontend/src/pages/guide.css @@ -0,0 +1,25 @@ +.tv-guide .guide-program-container .guide-program { + position: relative; + left: 2px; + top: 2px; + padding: 10px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + border-radius: 8px; + background: linear-gradient(to right, #2d3748, #2d3748); /* Default background */ + color: #fff; + transition: background 0.3s ease; +} + +.tv-guide .guide-program-container .guide-program.live { + background: linear-gradient(to right, #1e3a8a, #2c5282); +} + +.tv-guide .guide-program-container .guide-program.live:hover { + background: linear-gradient(to right, #1e3a8a, #2a4365); +} + +.tv-guide .guide-program-container .guide-program.not-live:hover { + background: linear-gradient(to right, #2d3748, #1a202c); +} diff --git a/frontend/src/reportWebVitals.js b/frontend/src/reportWebVitals.js deleted file mode 100644 index 5253d3ad..00000000 --- a/frontend/src/reportWebVitals.js +++ /dev/null @@ -1,13 +0,0 @@ -const reportWebVitals = onPerfEntry => { - if (onPerfEntry && onPerfEntry instanceof Function) { - import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { - getCLS(onPerfEntry); - getFID(onPerfEntry); - getFCP(onPerfEntry); - getLCP(onPerfEntry); - getTTFB(onPerfEntry); - }); - } -}; - -export default reportWebVitals; diff --git a/frontend/src/setupTests.js b/frontend/src/setupTests.js deleted file mode 100644 index 8f2609b7..00000000 --- a/frontend/src/setupTests.js +++ /dev/null @@ -1,5 +0,0 @@ -// jest-dom adds custom jest matchers for asserting on DOM nodes. -// allows you to do things like: -// expect(element).toHaveTextContent(/react/i) -// learn more: https://github.com/testing-library/jest-dom -import '@testing-library/jest-dom'; diff --git a/frontend/src/store/alerts.js b/frontend/src/store/alerts.js deleted file mode 100644 index b51076a3..00000000 --- a/frontend/src/store/alerts.js +++ /dev/null @@ -1,24 +0,0 @@ -// frontend/src/store/useAlertStore.js -import { create } from 'zustand'; - -/** - * Global store to track whether a floating video is visible and which URL is playing. - */ -const useAlertStore = create((set) => ({ - open: false, - message: '', - severity: 'info', - - showAlert: (message, severity = 'info') => - set({ - open: true, - message, - severity, - }), - - hideAlert: () => { - set({ open: false }); - }, -})); - -export default useAlertStore; diff --git a/frontend/src/store/auth.js b/frontend/src/store/auth.js deleted file mode 100644 index d72f9f0f..00000000 --- a/frontend/src/store/auth.js +++ /dev/null @@ -1,129 +0,0 @@ -import { create } from 'zustand'; -import API from '../api'; -import useChannelsStore from './channels'; -import useUserAgentsStore from './userAgents'; -import usePlaylistsStore from './playlists'; -import useEPGsStore from './epgs'; -import useStreamProfilesStore from './streamProfiles'; -import useSettingsStore from './settings'; - -const decodeToken = (token) => { - if (!token) return null; - const payload = token.split('.')[1]; - const decodedPayload = JSON.parse(atob(payload)); - return decodedPayload.exp; -}; - -const isTokenExpired = (expirationTime) => { - const now = Math.floor(Date.now() / 1000); - return now >= expirationTime; -}; - -const useAuthStore = create((set, get) => ({ - accessToken: localStorage.getItem('accessToken') || null, - refreshToken: localStorage.getItem('refreshToken') || null, - tokenExpiration: localStorage.getItem('tokenExpiration') || null, - isAuthenticated: false, - - setIsAuthenticated: (isAuthenticated) => set({ isAuthenticated }), - - initData: async () => { - await Promise.all([ - useChannelsStore.getState().fetchChannels(), - useChannelsStore.getState().fetchChannelGroups(), - useUserAgentsStore.getState().fetchUserAgents(), - usePlaylistsStore.getState().fetchPlaylists(), - useEPGsStore.getState().fetchEPGs(), - useStreamProfilesStore.getState().fetchProfiles(), - useSettingsStore.getState().fetchSettings(), - ]); - }, - - getToken: async () => { - const tokenExpiration = localStorage.getItem('tokenExpiration'); - let accessToken = null; - if (isTokenExpired(tokenExpiration)) { - accessToken = await get().refreshToken(); - } else { - accessToken = localStorage.getItem('accessToken'); - } - - return accessToken; - }, - - // Action to login - login: async ({ username, password }) => { - try { - const response = await API.login(username, password); - if (response.access) { - const expiration = decodeToken(response.access); - set({ - accessToken: response.access, - refreshToken: response.refresh, - tokenExpiration: expiration, // 1 hour from now - isAuthenticated: true, - }); - // Store in localStorage - localStorage.setItem('accessToken', response.access); - localStorage.setItem('refreshToken', response.refresh); - localStorage.setItem('tokenExpiration', expiration); - } - } catch (error) { - console.error('Login failed:', error); - } - }, - - // Action to refresh the token - refreshToken: async () => { - const refreshToken = localStorage.getItem('refreshToken'); - if (!refreshToken) return; - - try { - const data = await API.refreshToken(refreshToken); - if (data.access) { - set({ - accessToken: data.access, - tokenExpiration: decodeToken(data.access), - isAuthenticated: true, - }); - localStorage.setItem('accessToken', data.access); - localStorage.setItem('tokenExpiration', decodeToken(data.access)); - - return true; - } - } catch (error) { - console.error('Token refresh failed:', error); - get().logout(); - } - - return false; - }, - - // Action to logout - logout: () => { - set({ - accessToken: null, - refreshToken: null, - tokenExpiration: null, - isAuthenticated: false, - }); - localStorage.removeItem('accessToken'); - localStorage.removeItem('refreshToken'); - localStorage.removeItem('tokenExpiration'); - }, - - initializeAuth: async () => { - const refreshToken = localStorage.getItem('refreshToken') || null; - - if (refreshToken) { - const loggedIn = await get().refreshToken(); - if (loggedIn) { - return true; - } - } - - return false; - }, -})); - -export default useAuthStore; diff --git a/vite/src/store/auth.jsx b/frontend/src/store/auth.jsx similarity index 97% rename from vite/src/store/auth.jsx rename to frontend/src/store/auth.jsx index d72f9f0f..23c8596c 100644 --- a/vite/src/store/auth.jsx +++ b/frontend/src/store/auth.jsx @@ -23,10 +23,13 @@ const useAuthStore = create((set, get) => ({ accessToken: localStorage.getItem('accessToken') || null, refreshToken: localStorage.getItem('refreshToken') || null, tokenExpiration: localStorage.getItem('tokenExpiration') || null, + superuserExists: true, isAuthenticated: false, setIsAuthenticated: (isAuthenticated) => set({ isAuthenticated }), + setSuperuserExists: (superuserExists) => set({ superuserExists }), + initData: async () => { await Promise.all([ useChannelsStore.getState().fetchChannels(), diff --git a/frontend/src/store/channels.js b/frontend/src/store/channels.js deleted file mode 100644 index dde00729..00000000 --- a/frontend/src/store/channels.js +++ /dev/null @@ -1,89 +0,0 @@ -import { create } from 'zustand'; -import api from '../api'; - -const useChannelsStore = create((set) => ({ - channels: [], - channelGroups: [], - channelsPageSelection: [], - isLoading: false, - error: null, - - fetchChannels: async () => { - set({ isLoading: true, error: null }); - try { - const channels = await api.getChannels(); - set({ - channels: channels.reduce((acc, channel) => { - acc[channel.id] = channel; - return acc; - }, {}), - isLoading: false, - }); - } catch (error) { - console.error('Failed to fetch channels:', error); - set({ error: 'Failed to load channels.', isLoading: false }); - } - }, - - fetchChannelGroups: async () => { - set({ isLoading: true, error: null }); - try { - const channelGroups = await api.getChannelGroups(); - set({ channelGroups: channelGroups, isLoading: false }); - } catch (error) { - console.error('Failed to fetch channel groups:', error); - set({ error: 'Failed to load channel groups.', isLoading: false }); - } - }, - - addChannel: (newChannel) => - set((state) => ({ - channels: { - ...state.channels, - [newChannel.id]: newChannel, - }, - })), - - addChannels: (newChannels) => - set((state) => ({ - channels: { - ...state.channels, - ...newChannels, - }, - })), - - updateChannel: (channel) => - set((state) => ({ - channels: { - ...state.channels, - [channel.id]: channel, - }, - })), - - removeChannels: (channelIds) => - set((state) => { - const updatedChannels = { ...state.channels }; - for (const id of channelIds) { - delete updatedChannels[id]; - } - - return { channels: updatedChannels }; - }), - - addChannelGroup: (newChannelGroup) => - set((state) => ({ - channelGroups: [...state.channelGroups, newChannelGroup], - })), - - updateChannelGroup: (channelGroup) => - set((state) => ({ - channelGroups: state.channelGroups.map((group) => - group.id === channelGroup.id ? channelGroup : group - ), - })), - - setChannelsPageSelection: (channelsPageSelection) => - set((state) => ({ channelsPageSelection })), -})); - -export default useChannelsStore; diff --git a/vite/src/store/channels.jsx b/frontend/src/store/channels.jsx similarity index 100% rename from vite/src/store/channels.jsx rename to frontend/src/store/channels.jsx diff --git a/frontend/src/store/epgs.js b/frontend/src/store/epgs.js deleted file mode 100644 index 14cfd623..00000000 --- a/frontend/src/store/epgs.js +++ /dev/null @@ -1,31 +0,0 @@ -import { create } from "zustand"; -import api from "../api"; - -const useEPGsStore = create((set) => ({ - epgs: [], - isLoading: false, - error: null, - - fetchEPGs: async () => { - set({ isLoading: true, error: null }); - try { - const epgs = await api.getEPGs(); - set({ epgs: epgs, isLoading: false }); - } catch (error) { - console.error("Failed to fetch epgs:", error); - set({ error: "Failed to load epgs.", isLoading: false }); - } - }, - - addEPG: (newPlaylist) => - set((state) => ({ - epgs: [...state.epgs, newPlaylist], - })), - - removeEPGs: (epgIds) => - set((state) => ({ - epgs: state.epgs.filter((epg) => !epgIds.includes(epg.id)), - })), -})); - -export default useEPGsStore; diff --git a/vite/src/store/epgs.jsx b/frontend/src/store/epgs.jsx similarity index 100% rename from vite/src/store/epgs.jsx rename to frontend/src/store/epgs.jsx diff --git a/frontend/src/store/playlists.js b/frontend/src/store/playlists.js deleted file mode 100644 index 274c943a..00000000 --- a/frontend/src/store/playlists.js +++ /dev/null @@ -1,65 +0,0 @@ -import { create } from 'zustand'; -import api from '../api'; - -const usePlaylistsStore = create((set) => ({ - playlists: [], - profiles: {}, - isLoading: false, - error: null, - - fetchPlaylists: async () => { - set({ isLoading: true, error: null }); - try { - const playlists = await api.getPlaylists(); - set({ - playlists: playlists, - isLoading: false, - profiles: playlists.reduce((acc, playlist) => { - acc[playlist.id] = playlist.profiles; - return acc; - }, {}), - }); - } catch (error) { - console.error('Failed to fetch playlists:', error); - set({ error: 'Failed to load playlists.', isLoading: false }); - } - }, - - addPlaylist: (newPlaylist) => - set((state) => ({ - playlists: [...state.playlists, newPlaylist], - profiles: { - ...state.profiles, - [newPlaylist.id]: newPlaylist.profiles, - }, - })), - - updatePlaylist: (playlist) => - set((state) => ({ - playlists: state.playlists.map((pl) => - pl.id === playlist.id ? playlist : pl - ), - profiles: { - ...state.profiles, - [playlist.id]: playlist.profiles, - }, - })), - - updateProfiles: (playlistId, profiles) => - set((state) => ({ - profiles: { - ...state.profiles, - [playlistId]: profiles, - }, - })), - - removePlaylists: (playlistIds) => - set((state) => ({ - playlists: state.playlists.filter( - (playlist) => !playlistIds.includes(playlist.id) - ), - // @TODO: remove playlist profiles here - })), -})); - -export default usePlaylistsStore; diff --git a/vite/src/store/playlists.jsx b/frontend/src/store/playlists.jsx similarity index 100% rename from vite/src/store/playlists.jsx rename to frontend/src/store/playlists.jsx diff --git a/frontend/src/store/settings.js b/frontend/src/store/settings.js deleted file mode 100644 index 5dffbed6..00000000 --- a/frontend/src/store/settings.js +++ /dev/null @@ -1,34 +0,0 @@ -import { create } from 'zustand'; -import api from '../api'; - -const useSettingsStore = create((set) => ({ - settings: {}, - environment: {}, - isLoading: false, - error: null, - - fetchSettings: async () => { - set({ isLoading: true, error: null }); - try { - const settings = await api.getSettings(); - const env = await api.getEnvironmentSettings(); - set({ - settings: settings.reduce((acc, setting) => { - acc[setting.key] = setting; - return acc; - }, {}), - isLoading: false, - environment: env, - }); - } catch (error) { - set({ error: 'Failed to load settings.', isLoading: false }); - } - }, - - updateSetting: (setting) => - set((state) => ({ - settings: { ...state.settings, [setting.key]: setting }, - })), -})); - -export default useSettingsStore; diff --git a/vite/src/store/settings.jsx b/frontend/src/store/settings.jsx similarity index 100% rename from vite/src/store/settings.jsx rename to frontend/src/store/settings.jsx diff --git a/frontend/src/store/streamProfiles.js b/frontend/src/store/streamProfiles.js deleted file mode 100644 index 1b98c662..00000000 --- a/frontend/src/store/streamProfiles.js +++ /dev/null @@ -1,40 +0,0 @@ -import { create } from 'zustand'; -import api from '../api'; - -const useStreamProfilesStore = create((set) => ({ - profiles: [], - isLoading: false, - error: null, - - fetchProfiles: async () => { - set({ isLoading: true, error: null }); - try { - const profiles = await api.getStreamProfiles(); - set({ profiles: profiles, isLoading: false }); - } catch (error) { - console.error('Failed to fetch profiles:', error); - set({ error: 'Failed to load profiles.', isLoading: false }); - } - }, - - addStreamProfile: (profile) => - set((state) => ({ - profiles: [...state.profiles, profile], - })), - - updateStreamProfile: (profile) => - set((state) => ({ - profiles: state.profiles.map((prof) => - prof.id === profile.id ? profile : prof - ), - })), - - removeStreamProfiles: (propfileIds) => - set((state) => ({ - profiles: state.profiles.filter( - (profile) => !propfileIds.includes(profile.id) - ), - })), -})); - -export default useStreamProfilesStore; diff --git a/vite/src/store/streamProfiles.jsx b/frontend/src/store/streamProfiles.jsx similarity index 100% rename from vite/src/store/streamProfiles.jsx rename to frontend/src/store/streamProfiles.jsx diff --git a/frontend/src/store/streams.js b/frontend/src/store/streams.js deleted file mode 100644 index 9f477c20..00000000 --- a/frontend/src/store/streams.js +++ /dev/null @@ -1,41 +0,0 @@ -import { create } from 'zustand'; -import api from '../api'; - -const useStreamsStore = create((set) => ({ - streams: [], - count: 0, - isLoading: false, - error: null, - - fetchStreams: async () => { - set({ isLoading: true, error: null }); - try { - const response = await api.getStreams(); - set({ - streams: response.results, - count: response.count, - isLoading: false, - }); - } catch (error) { - console.error('Failed to fetch streams:', error); - set({ error: 'Failed to load streams.', isLoading: false }); - } - }, - - addStream: (stream) => - set((state) => ({ - streams: [...state.streams, stream], - })), - - updateStream: (stream) => - set((state) => ({ - streams: state.streams.map((st) => (st.id === stream.id ? stream : st)), - })), - - removeStreams: (streamIds) => - set((state) => ({ - streams: state.streams.filter((stream) => !streamIds.includes(stream.id)), - })), -})); - -export default useStreamsStore; diff --git a/vite/src/store/streams.jsx b/frontend/src/store/streams.jsx similarity index 100% rename from vite/src/store/streams.jsx rename to frontend/src/store/streams.jsx diff --git a/frontend/src/store/useVideoStore.js b/frontend/src/store/useVideoStore.js deleted file mode 100644 index 0229552a..00000000 --- a/frontend/src/store/useVideoStore.js +++ /dev/null @@ -1,24 +0,0 @@ -// frontend/src/store/useVideoStore.js -import { create } from 'zustand'; - -/** - * Global store to track whether a floating video is visible and which URL is playing. - */ -const useVideoStore = create((set) => ({ - isVisible: false, - streamUrl: null, - - showVideo: (url) => - set({ - isVisible: true, - streamUrl: url, - }), - - hideVideo: () => - set({ - isVisible: false, - streamUrl: null, - }), -})); - -export default useVideoStore; diff --git a/vite/src/store/useVideoStore.jsx b/frontend/src/store/useVideoStore.jsx similarity index 100% rename from vite/src/store/useVideoStore.jsx rename to frontend/src/store/useVideoStore.jsx diff --git a/frontend/src/store/userAgents.js b/frontend/src/store/userAgents.js deleted file mode 100644 index 6693e830..00000000 --- a/frontend/src/store/userAgents.js +++ /dev/null @@ -1,40 +0,0 @@ -import { create } from "zustand"; -import api from "../api"; - -const useUserAgentsStore = create((set) => ({ - userAgents: [], - isLoading: false, - error: null, - - fetchUserAgents: async () => { - set({ isLoading: true, error: null }); - try { - const userAgents = await api.getUserAgents(); - set({ userAgents: userAgents, isLoading: false }); - } catch (error) { - console.error("Failed to fetch userAgents:", error); - set({ error: "Failed to load userAgents.", isLoading: false }); - } - }, - - addUserAgent: (userAgent) => - set((state) => ({ - userAgents: [...state.userAgents, userAgent], - })), - - updateUserAgent: (userAgent) => - set((state) => ({ - userAgents: state.userAgents.map((ua) => - ua.id === userAgent.id ? userAgent : ua, - ), - })), - - removeUserAgents: (userAgentIds) => - set((state) => ({ - userAgents: state.userAgents.filter( - (userAgent) => !userAgentIds.includes(userAgent.id), - ), - })), -})); - -export default useUserAgentsStore; diff --git a/vite/src/store/userAgents.jsx b/frontend/src/store/userAgents.jsx similarity index 100% rename from vite/src/store/userAgents.jsx rename to frontend/src/store/userAgents.jsx diff --git a/frontend/src/theme.js b/frontend/src/theme.js deleted file mode 100644 index 2fdb34bb..00000000 --- a/frontend/src/theme.js +++ /dev/null @@ -1,92 +0,0 @@ -// src/theme.js -import { createTheme } from '@mui/material/styles'; - -const theme = createTheme({ - palette: { - mode: 'dark', - background: { - default: '#18181b', // Global background color (Tailwind zinc-900) - paper: '#27272a', // Paper background (Tailwind zinc-800) - }, - primary: { - main: '#4A90E2', - contrastText: '#FFFFFF', - }, - secondary: { - main: '#F5A623', - contrastText: '#FFFFFF', - }, - text: { - primary: '#FFFFFF', - secondary: '#d4d4d8', // Updated secondary text color (Tailwind zinc-300) - }, - // Custom colors for components (chip buttons, borders, etc.) - custom: { - // For chip buttons: - greenMain: '#90C43E', - greenHoverBg: 'rgba(144,196,62,0.1)', - - indigoMain: '#4F39F6', - indigoHoverBg: 'rgba(79,57,246,0.1)', - - greyBorder: '#707070', - greyHoverBg: 'rgba(112,112,112,0.1)', - greyText: '#a0a0a0', - - // Common border colors: - borderDefault: '#3f3f46', // Tailwind zinc-700 - borderHover: '#5f5f66', // Approximate Tailwind zinc-600 - - // For the "Add" button: - successBorder: '#00a63e', - successBg: '#0d542b', - successBgHover: '#0a4020', - successIcon: '#05DF72', - }, - }, - typography: { - // Set Inter as the global font - fontFamily: 'Inter, sans-serif', - h1: { fontSize: '2.5rem', fontWeight: 700 }, - h2: { fontSize: '2rem', fontWeight: 700 }, - body1: { fontSize: '1rem' }, - }, - spacing: 8, - components: { - MuiButton: { - styleOverrides: { - root: { - borderRadius: 4, - textTransform: 'none', - fontWeight: 500, - }, - }, - }, - MuiDrawer: { - styleOverrides: { - paper: { - backgroundColor: '#27272a', // Use the same paper color - color: '#FFFFFF', - }, - }, - }, - MuiAppBar: { - styleOverrides: { - root: { - backgroundColor: '#18181b', - }, - }, - }, - }, - custom: { - sidebar: { - activeBackground: 'rgba(21, 69, 62, 0.67)', - activeBorder: '#14917e', - hoverBackground: '#27272a', - hoverBorder: '#3f3f46', - fontFamily: 'Inter, sans-serif', - }, - }, -}); - -export default theme; diff --git a/vite/src/theme.jsx b/frontend/src/theme.jsx similarity index 100% rename from vite/src/theme.jsx rename to frontend/src/theme.jsx diff --git a/vite/vite.config.js b/frontend/vite.config.js similarity index 100% rename from vite/vite.config.js rename to frontend/vite.config.js diff --git a/vite/.gitignore b/vite/.gitignore deleted file mode 100644 index a547bf36..00000000 --- a/vite/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/vite/README.md b/vite/README.md deleted file mode 100644 index fd3b758d..00000000 --- a/vite/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# React + Vite - -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. - -Currently, two official plugins are available: - -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh - -## Expanding the ESLint configuration - -If you are developing a production application, we recommend using TypeScript and enable type-aware lint rules. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project. diff --git a/vite/package-lock.json b/vite/package-lock.json deleted file mode 100644 index 0bb89a2e..00000000 --- a/vite/package-lock.json +++ /dev/null @@ -1,4665 +0,0 @@ -{ - "name": "vite", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "vite", - "version": "0.0.0", - "dependencies": { - "@emotion/react": "^11.14.0", - "@emotion/styled": "^11.14.0", - "@mantine/core": "^7.17.1", - "@mantine/dates": "^7.17.1", - "@mantine/hooks": "^7.17.1", - "@mui/icons-material": "^6.4.7", - "@mui/material": "^6.4.7", - "@mui/x-date-pickers": "^7.27.3", - "@tabler/icons-react": "^3.31.0", - "axios": "^1.8.2", - "clsx": "^2.1.1", - "dayjs": "^1.11.13", - "formik": "^2.4.6", - "hls.js": "^1.5.20", - "lucide-react": "^0.479.0", - "mantine-react-table": "^2.0.0-beta.9", - "material-react-table": "^3.2.1", - "mpegts.js": "^1.8.0", - "prettier": "^3.5.3", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "react-draggable": "^4.4.6", - "react-pro-sidebar": "^1.1.0", - "react-router-dom": "^7.3.0", - "video.js": "^8.21.0", - "yup": "^1.6.1", - "zustand": "^5.0.3" - }, - "devDependencies": { - "@eslint/js": "^9.21.0", - "@types/react": "^19.0.10", - "@types/react-dom": "^19.0.4", - "@vitejs/plugin-react-swc": "^3.8.0", - "eslint": "^9.21.0", - "eslint-plugin-react-hooks": "^5.1.0", - "eslint-plugin-react-refresh": "^0.4.19", - "globals": "^15.15.0", - "vite": "^6.2.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", - "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", - "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.26.9" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.9.tgz", - "integrity": "sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", - "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", - "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.9", - "@babel/parser": "^7.26.9", - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", - "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@emotion/babel-plugin": { - "version": "11.13.5", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", - "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.2", - "@emotion/memoize": "^0.9.0", - "@emotion/serialize": "^1.3.3", - "babel-plugin-macros": "^3.1.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/cache": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", - "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", - "license": "MIT", - "dependencies": { - "@emotion/memoize": "^0.9.0", - "@emotion/sheet": "^1.4.0", - "@emotion/utils": "^1.4.2", - "@emotion/weak-memoize": "^0.4.0", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/hash": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", - "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", - "license": "MIT" - }, - "node_modules/@emotion/is-prop-valid": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz", - "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==", - "license": "MIT", - "dependencies": { - "@emotion/memoize": "^0.9.0" - } - }, - "node_modules/@emotion/memoize": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", - "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", - "license": "MIT" - }, - "node_modules/@emotion/react": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", - "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.13.5", - "@emotion/cache": "^11.14.0", - "@emotion/serialize": "^1.3.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", - "@emotion/utils": "^1.4.2", - "@emotion/weak-memoize": "^0.4.0", - "hoist-non-react-statics": "^3.3.1" - }, - "peerDependencies": { - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/serialize": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", - "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", - "license": "MIT", - "dependencies": { - "@emotion/hash": "^0.9.2", - "@emotion/memoize": "^0.9.0", - "@emotion/unitless": "^0.10.0", - "@emotion/utils": "^1.4.2", - "csstype": "^3.0.2" - } - }, - "node_modules/@emotion/sheet": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", - "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", - "license": "MIT" - }, - "node_modules/@emotion/styled": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz", - "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.13.5", - "@emotion/is-prop-valid": "^1.3.0", - "@emotion/serialize": "^1.3.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", - "@emotion/utils": "^1.4.2" - }, - "peerDependencies": { - "@emotion/react": "^11.0.0-rc.0", - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/unitless": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", - "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", - "license": "MIT" - }, - "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", - "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", - "license": "MIT", - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@emotion/utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", - "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", - "license": "MIT" - }, - "node_modules/@emotion/weak-memoize": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", - "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", - "license": "MIT" - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz", - "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz", - "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz", - "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz", - "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz", - "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz", - "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz", - "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz", - "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz", - "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz", - "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz", - "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz", - "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz", - "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz", - "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz", - "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz", - "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", - "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz", - "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz", - "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz", - "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz", - "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz", - "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz", - "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz", - "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz", - "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", - "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", - "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.6", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/config-helpers": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.1.0.tgz", - "integrity": "sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", - "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz", - "integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "9.22.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.22.0.tgz", - "integrity": "sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", - "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", - "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.12.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@floating-ui/core": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", - "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", - "license": "MIT", - "dependencies": { - "@floating-ui/utils": "^0.2.9" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.6.13", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", - "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", - "license": "MIT", - "dependencies": { - "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.9" - } - }, - "node_modules/@floating-ui/react": { - "version": "0.26.28", - "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz", - "integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==", - "license": "MIT", - "dependencies": { - "@floating-ui/react-dom": "^2.1.2", - "@floating-ui/utils": "^0.2.8", - "tabbable": "^6.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@floating-ui/react-dom": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", - "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", - "license": "MIT", - "dependencies": { - "@floating-ui/dom": "^1.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@floating-ui/utils": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", - "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", - "license": "MIT" - }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", - "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@mantine/core": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@mantine/core/-/core-7.17.1.tgz", - "integrity": "sha512-V8O3Ftq4la4I4wNDkTfH4Slkt/pCEU32pTE/DkO46zua0VFxfOAJeLjaol0s11//T+bXx82DtjMsd9APWPuFhA==", - "license": "MIT", - "dependencies": { - "@floating-ui/react": "^0.26.28", - "clsx": "^2.1.1", - "react-number-format": "^5.4.3", - "react-remove-scroll": "^2.6.2", - "react-textarea-autosize": "8.5.6", - "type-fest": "^4.27.0" - }, - "peerDependencies": { - "@mantine/hooks": "7.17.1", - "react": "^18.x || ^19.x", - "react-dom": "^18.x || ^19.x" - } - }, - "node_modules/@mantine/core/node_modules/type-fest": { - "version": "4.37.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.37.0.tgz", - "integrity": "sha512-S/5/0kFftkq27FPNye0XM1e2NsnoD/3FS+pBmbjmmtLT6I+i344KoOf7pvXreaFsDamWeaJX55nczA1m5PsBDg==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@mantine/dates": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@mantine/dates/-/dates-7.17.1.tgz", - "integrity": "sha512-L9MlIDb528RpznUeeW71xS4q3lYGolElz/f7xGRXEu9gHLaNJufbxroTw2N8RC6p/+RN1ZrSXEsjlr2euiofAw==", - "license": "MIT", - "dependencies": { - "clsx": "^2.1.1" - }, - "peerDependencies": { - "@mantine/core": "7.17.1", - "@mantine/hooks": "7.17.1", - "dayjs": ">=1.0.0", - "react": "^18.x || ^19.x", - "react-dom": "^18.x || ^19.x" - } - }, - "node_modules/@mantine/hooks": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-7.17.1.tgz", - "integrity": "sha512-mkHLrXMPd5xdI5WD7UOLwNEpdh/i6A7HaRDTXvjDE2/S0N8VmAE+BlvdyvWRMi7ODp2zVqJdP8cF1tgUn+Z0fA==", - "license": "MIT", - "peerDependencies": { - "react": "^18.x || ^19.x" - } - }, - "node_modules/@mui/core-downloads-tracker": { - "version": "6.4.7", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-6.4.7.tgz", - "integrity": "sha512-XjJrKFNt9zAKvcnoIIBquXyFyhfrHYuttqMsoDS7lM7VwufYG4fAPw4kINjBFg++fqXM2BNAuWR9J7XVIuKIKg==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - } - }, - "node_modules/@mui/icons-material": { - "version": "6.4.7", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-6.4.7.tgz", - "integrity": "sha512-Rk8cs9ufQoLBw582Rdqq7fnSXXZTqhYRbpe1Y5SAz9lJKZP3CIdrj0PfG8HJLGw1hrsHFN/rkkm70IDzhJsG1g==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.26.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@mui/material": "^6.4.7", - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/material": { - "version": "6.4.7", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-6.4.7.tgz", - "integrity": "sha512-K65StXUeGAtFJ4ikvHKtmDCO5Ab7g0FZUu2J5VpoKD+O6Y3CjLYzRi+TMlI3kaL4CL158+FccMoOd/eaddmeRQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.26.0", - "@mui/core-downloads-tracker": "^6.4.7", - "@mui/system": "^6.4.7", - "@mui/types": "^7.2.21", - "@mui/utils": "^6.4.6", - "@popperjs/core": "^2.11.8", - "@types/react-transition-group": "^4.4.12", - "clsx": "^2.1.1", - "csstype": "^3.1.3", - "prop-types": "^15.8.1", - "react-is": "^19.0.0", - "react-transition-group": "^4.4.5" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@mui/material-pigment-css": "^6.4.7", - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@mui/material-pigment-css": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/private-theming": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-6.4.6.tgz", - "integrity": "sha512-T5FxdPzCELuOrhpA2g4Pi6241HAxRwZudzAuL9vBvniuB5YU82HCmrARw32AuCiyTfWzbrYGGpZ4zyeqqp9RvQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.26.0", - "@mui/utils": "^6.4.6", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/styled-engine": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-6.4.6.tgz", - "integrity": "sha512-vSWYc9ZLX46be5gP+FCzWVn5rvDr4cXC5JBZwSIkYk9xbC7GeV+0kCvB8Q6XLFQJy+a62bbqtmdwS4Ghi9NBlQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.26.0", - "@emotion/cache": "^11.13.5", - "@emotion/serialize": "^1.3.3", - "@emotion/sheet": "^1.4.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.4.1", - "@emotion/styled": "^11.3.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - } - } - }, - "node_modules/@mui/system": { - "version": "6.4.7", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-6.4.7.tgz", - "integrity": "sha512-7wwc4++Ak6tGIooEVA9AY7FhH2p9fvBMORT4vNLMAysH3Yus/9B9RYMbrn3ANgsOyvT3Z7nE+SP8/+3FimQmcg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.26.0", - "@mui/private-theming": "^6.4.6", - "@mui/styled-engine": "^6.4.6", - "@mui/types": "^7.2.21", - "@mui/utils": "^6.4.6", - "clsx": "^2.1.1", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/types": { - "version": "7.2.21", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.21.tgz", - "integrity": "sha512-6HstngiUxNqLU+/DPqlUJDIPbzUBxIVHb1MmXP0eTWDIROiCR2viugXpEif0PPe2mLqqakPzzRClWAnK+8UJww==", - "license": "MIT", - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/utils": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-6.4.6.tgz", - "integrity": "sha512-43nZeE1pJF2anGafNydUcYFPtHwAqiBiauRtaMvurdrZI3YrUjHkAu43RBsxef7OFtJMXGiHFvq43kb7lig0sA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.26.0", - "@mui/types": "^7.2.21", - "@types/prop-types": "^15.7.14", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^19.0.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/x-date-pickers": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.27.3.tgz", - "integrity": "sha512-igfKTPC4ZVCmS5j/NXcXBtj/hHseQHzRpCpIB1PMnJGhMdRYXnz8qZz5XhlNBKlzJVXkGu6Uil+obZpCLNj1xg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.25.7", - "@mui/utils": "^5.16.6 || ^6.0.0", - "@mui/x-internals": "7.26.0", - "@types/react-transition-group": "^4.4.11", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-transition-group": "^4.4.5" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.9.0", - "@emotion/styled": "^11.8.1", - "@mui/material": "^5.15.14 || ^6.0.0", - "@mui/system": "^5.15.14 || ^6.0.0", - "date-fns": "^2.25.0 || ^3.2.0 || ^4.0.0", - "date-fns-jalali": "^2.13.0-0 || ^3.2.0-0 || ^4.0.0-0", - "dayjs": "^1.10.7", - "luxon": "^3.0.2", - "moment": "^2.29.4", - "moment-hijri": "^2.1.2 || ^3.0.0", - "moment-jalaali": "^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "date-fns": { - "optional": true - }, - "date-fns-jalali": { - "optional": true - }, - "dayjs": { - "optional": true - }, - "luxon": { - "optional": true - }, - "moment": { - "optional": true - }, - "moment-hijri": { - "optional": true - }, - "moment-jalaali": { - "optional": true - } - } - }, - "node_modules/@mui/x-internals": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.26.0.tgz", - "integrity": "sha512-VxTCYQcZ02d3190pdvys2TDg9pgbvewAVakEopiOgReKAUhLdRlgGJHcOA/eAuGLyK1YIo26A6Ow6ZKlSRLwMg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.25.7", - "@mui/utils": "^5.16.6 || ^6.0.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.35.0.tgz", - "integrity": "sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.35.0.tgz", - "integrity": "sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.35.0.tgz", - "integrity": "sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.35.0.tgz", - "integrity": "sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.35.0.tgz", - "integrity": "sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.35.0.tgz", - "integrity": "sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.35.0.tgz", - "integrity": "sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.35.0.tgz", - "integrity": "sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.35.0.tgz", - "integrity": "sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.35.0.tgz", - "integrity": "sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.35.0.tgz", - "integrity": "sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.35.0.tgz", - "integrity": "sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.35.0.tgz", - "integrity": "sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.35.0.tgz", - "integrity": "sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.35.0.tgz", - "integrity": "sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.35.0.tgz", - "integrity": "sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.35.0.tgz", - "integrity": "sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.35.0.tgz", - "integrity": "sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.35.0.tgz", - "integrity": "sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@swc/core": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.11.8.tgz", - "integrity": "sha512-UAL+EULxrc0J73flwYHfu29mO8CONpDJiQv1QPDXsyCvDUcEhqAqUROVTgC+wtJCFFqMQdyr4stAA5/s0KSOmA==", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.19" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.11.8", - "@swc/core-darwin-x64": "1.11.8", - "@swc/core-linux-arm-gnueabihf": "1.11.8", - "@swc/core-linux-arm64-gnu": "1.11.8", - "@swc/core-linux-arm64-musl": "1.11.8", - "@swc/core-linux-x64-gnu": "1.11.8", - "@swc/core-linux-x64-musl": "1.11.8", - "@swc/core-win32-arm64-msvc": "1.11.8", - "@swc/core-win32-ia32-msvc": "1.11.8", - "@swc/core-win32-x64-msvc": "1.11.8" - }, - "peerDependencies": { - "@swc/helpers": "*" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.11.8.tgz", - "integrity": "sha512-rrSsunyJWpHN+5V1zumndwSSifmIeFQBK9i2RMQQp15PgbgUNxHK5qoET1n20pcUrmZeT6jmJaEWlQchkV//Og==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.11.8.tgz", - "integrity": "sha512-44goLqQuuo0HgWnG8qC+ZFw/qnjCVVeqffhzFr9WAXXotogVaxM8ze6egE58VWrfEc8me8yCcxOYL9RbtjhS/Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.11.8.tgz", - "integrity": "sha512-Mzo8umKlhTWwF1v8SLuTM1z2A+P43UVhf4R8RZDhzIRBuB2NkeyE+c0gexIOJBuGSIATryuAF4O4luDu727D1w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.11.8.tgz", - "integrity": "sha512-EyhO6U+QdoGYC1MeHOR0pyaaSaKYyNuT4FQNZ1eZIbnuueXpuICC7iNmLIOfr3LE5bVWcZ7NKGVPlM2StJEcgA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.11.8.tgz", - "integrity": "sha512-QU6wOkZnS6/QuBN1MHD6G2BgFxB0AclvTVGbqYkRA7MsVkcC29PffESqzTXnypzB252/XkhQjoB2JIt9rPYf6A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.11.8.tgz", - "integrity": "sha512-r72onUEIU1iJi9EUws3R28pztQ/eM3EshNpsPRBfuLwKy+qn3et55vXOyDhIjGCUph5Eg2Yn8H3h6MTxDdLd+w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.11.8.tgz", - "integrity": "sha512-294k8cLpO103++f4ZUEDr3vnBeUfPitW6G0a3qeVZuoXFhFgaW7ANZIWknUc14WiLOMfMecphJAEiy9C8OeYSw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.11.8.tgz", - "integrity": "sha512-EbjOzQ+B85rumHyeesBYxZ+hq3ZQn+YAAT1ZNE9xW1/8SuLoBmHy/K9YniRGVDq/2NRmp5kI5+5h5TX0asIS9A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.11.8.tgz", - "integrity": "sha512-Z+FF5kgLHfQWIZ1KPdeInToXLzbY0sMAashjd/igKeP1Lz0qKXVAK+rpn6ASJi85Fn8wTftCGCyQUkRVn0bTDg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.11.8.tgz", - "integrity": "sha512-j6B6N0hChCeAISS6xp/hh6zR5CSCr037BAjCxNLsT8TGe5D+gYZ57heswUWXRH8eMKiRDGiLCYpPB2pkTqxCSw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@swc/types": { - "version": "0.1.19", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.19.tgz", - "integrity": "sha512-WkAZaAfj44kh/UFdAQcrMP1I0nwRqpt27u+08LMBYMqmQfwwMofYoMh/48NGkMMRfC4ynpfwRbJuu8ErfNloeA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3" - } - }, - "node_modules/@tabler/icons": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.31.0.tgz", - "integrity": "sha512-dblAdeKY3+GA1U+Q9eziZ0ooVlZMHsE8dqP0RkwvRtEsAULoKOYaCUOcJ4oW1DjWegdxk++UAt2SlQVnmeHv+g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/codecalm" - } - }, - "node_modules/@tabler/icons-react": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/@tabler/icons-react/-/icons-react-3.31.0.tgz", - "integrity": "sha512-2rrCM5y/VnaVKnORpDdAua9SEGuJKVqPtWxeQ/vUVsgaUx30LDgBZph7/lterXxDY1IKR6NO//HDhWiifXTi3w==", - "license": "MIT", - "dependencies": { - "@tabler/icons": "3.31.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/codecalm" - }, - "peerDependencies": { - "react": ">= 16" - } - }, - "node_modules/@tanstack/match-sorter-utils": { - "version": "8.19.4", - "resolved": "https://registry.npmjs.org/@tanstack/match-sorter-utils/-/match-sorter-utils-8.19.4.tgz", - "integrity": "sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==", - "license": "MIT", - "dependencies": { - "remove-accents": "0.5.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/react-table": { - "version": "8.20.6", - "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.20.6.tgz", - "integrity": "sha512-w0jluT718MrOKthRcr2xsjqzx+oEM7B7s/XXyfs19ll++hlId3fjTm+B2zrR3ijpANpkzBAr15j1XGVOMxpggQ==", - "license": "MIT", - "dependencies": { - "@tanstack/table-core": "8.20.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/@tanstack/react-virtual": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.11.2.tgz", - "integrity": "sha512-OuFzMXPF4+xZgx8UzJha0AieuMihhhaWG0tCqpp6tDzlFwOmNBPYMuLOtMJ1Tr4pXLHmgjcWhG6RlknY2oNTdQ==", - "license": "MIT", - "dependencies": { - "@tanstack/virtual-core": "3.11.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@tanstack/table-core": { - "version": "8.20.5", - "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.20.5.tgz", - "integrity": "sha512-P9dF7XbibHph2PFRz8gfBKEXEY/HJPOhym8CHmjF8y3q5mWpKx9xtZapXQUWCgkqvsK0R46Azuz+VaxD4Xl+Tg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/virtual-core": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.11.2.tgz", - "integrity": "sha512-vTtpNt7mKCiZ1pwU9hfKPhpdVO2sVzFQsxoVBGtOSHxlrRRzYr8iQ2TlwbAcRYCcEiZ9ECAM8kBzH0v2+VzfKw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@types/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz", - "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==", - "license": "MIT", - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "license": "MIT" - }, - "node_modules/@types/prop-types": { - "version": "15.7.14", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", - "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "19.0.10", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz", - "integrity": "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==", - "license": "MIT", - "dependencies": { - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz", - "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^19.0.0" - } - }, - "node_modules/@types/react-transition-group": { - "version": "4.4.12", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", - "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*" - } - }, - "node_modules/@videojs/http-streaming": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@videojs/http-streaming/-/http-streaming-3.17.0.tgz", - "integrity": "sha512-Ch1P3tvvIEezeZXyK11UfWgp4cWKX4vIhZ30baN/lRinqdbakZ5hiAI3pGjRy3d+q/Epyc8Csz5xMdKNNGYpcw==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@videojs/vhs-utils": "^4.1.1", - "aes-decrypter": "^4.0.2", - "global": "^4.4.0", - "m3u8-parser": "^7.2.0", - "mpd-parser": "^1.3.1", - "mux.js": "7.1.0", - "video.js": "^7 || ^8" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - }, - "peerDependencies": { - "video.js": "^8.19.0" - } - }, - "node_modules/@videojs/vhs-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@videojs/vhs-utils/-/vhs-utils-4.1.1.tgz", - "integrity": "sha512-5iLX6sR2ownbv4Mtejw6Ax+naosGvoT9kY+gcuHzANyUZZ+4NpeNdKMUhb6ag0acYej1Y7cmr/F2+4PrggMiVA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5", - "global": "^4.4.0" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - } - }, - "node_modules/@videojs/xhr": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@videojs/xhr/-/xhr-2.7.0.tgz", - "integrity": "sha512-giab+EVRanChIupZK7gXjHy90y3nncA2phIOyG3Ne5fvpiMJzvqYwiTOnEVW2S4CoYcuKJkomat7bMXA/UoUZQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.5.5", - "global": "~4.4.0", - "is-function": "^1.0.1" - } - }, - "node_modules/@vitejs/plugin-react-swc": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.8.0.tgz", - "integrity": "sha512-T4sHPvS+DIqDP51ifPqa9XIRAz/kIvIi8oXcnOZZgHmMotgmmdxe/DD5tMFlt5nuIRzT0/QuiwmKlH0503Aapw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@swc/core": "^1.10.15" - }, - "peerDependencies": { - "vite": "^4 || ^5 || ^6" - } - }, - "node_modules/@xmldom/xmldom": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", - "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/aes-decrypter": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/aes-decrypter/-/aes-decrypter-4.0.2.tgz", - "integrity": "sha512-lc+/9s6iJvuaRe5qDlMTpCFjnwpkeOXp8qP3oiZ5jsj1MRg+SBVUmmICrhxHvc8OELSmc+fEyyxAuppY6hrWzw==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@videojs/vhs-utils": "^4.1.1", - "global": "^4.4.0", - "pkcs7": "^1.0.4" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/axios": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.2.tgz", - "integrity": "sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", - "license": "MIT" - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "license": "MIT" - }, - "node_modules/cookie": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", - "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cosmiconfig/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", - "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", - "license": "MIT" - }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "license": "MIT" - }, - "node_modules/esbuild": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", - "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.1", - "@esbuild/android-arm": "0.25.1", - "@esbuild/android-arm64": "0.25.1", - "@esbuild/android-x64": "0.25.1", - "@esbuild/darwin-arm64": "0.25.1", - "@esbuild/darwin-x64": "0.25.1", - "@esbuild/freebsd-arm64": "0.25.1", - "@esbuild/freebsd-x64": "0.25.1", - "@esbuild/linux-arm": "0.25.1", - "@esbuild/linux-arm64": "0.25.1", - "@esbuild/linux-ia32": "0.25.1", - "@esbuild/linux-loong64": "0.25.1", - "@esbuild/linux-mips64el": "0.25.1", - "@esbuild/linux-ppc64": "0.25.1", - "@esbuild/linux-riscv64": "0.25.1", - "@esbuild/linux-s390x": "0.25.1", - "@esbuild/linux-x64": "0.25.1", - "@esbuild/netbsd-arm64": "0.25.1", - "@esbuild/netbsd-x64": "0.25.1", - "@esbuild/openbsd-arm64": "0.25.1", - "@esbuild/openbsd-x64": "0.25.1", - "@esbuild/sunos-x64": "0.25.1", - "@esbuild/win32-arm64": "0.25.1", - "@esbuild/win32-ia32": "0.25.1", - "@esbuild/win32-x64": "0.25.1" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "9.22.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.22.0.tgz", - "integrity": "sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.2", - "@eslint/config-helpers": "^0.1.0", - "@eslint/core": "^0.12.0", - "@eslint/eslintrc": "^3.3.0", - "@eslint/js": "9.22.0", - "@eslint/plugin-kit": "^0.2.7", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.3.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", - "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.19.tgz", - "integrity": "sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "eslint": ">=8.40" - } - }, - "node_modules/eslint-scope": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", - "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.14.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "license": "MIT" - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true, - "license": "ISC" - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/formik": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/formik/-/formik-2.4.6.tgz", - "integrity": "sha512-A+2EI7U7aG296q2TLGvNapDNTZp1khVt5Vk0Q/fyfSROss0V/V6+txt2aJnwEos44IxTCW/LYAi/zgWzlevj+g==", - "funding": [ - { - "type": "individual", - "url": "https://opencollective.com/formik" - } - ], - "license": "Apache-2.0", - "dependencies": { - "@types/hoist-non-react-statics": "^3.3.1", - "deepmerge": "^2.1.1", - "hoist-non-react-statics": "^3.3.0", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "react-fast-compare": "^2.0.1", - "tiny-warning": "^1.0.2", - "tslib": "^2.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "license": "MIT", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/globals": { - "version": "15.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", - "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/highlight-words": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/highlight-words/-/highlight-words-2.0.0.tgz", - "integrity": "sha512-If5n+IhSBRXTScE7wl16VPmd+44Vy7kof24EdqhjsZsDuHikpv1OCagVcJFpB4fS4UPUniedlWqrjIO8vWOsIQ==", - "license": "MIT", - "engines": { - "node": ">= 20", - "npm": ">= 9" - } - }, - "node_modules/hls.js": { - "version": "1.5.20", - "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.20.tgz", - "integrity": "sha512-uu0VXUK52JhihhnN/MVVo1lvqNNuhoxkonqgO3IpjvQiGpJBdIXMGkofjQb/j9zvV7a1SW8U9g1FslWx/1HOiQ==", - "license": "Apache-2.0" - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "license": "BSD-3-Clause", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "license": "MIT" - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "license": "MIT" - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lucide-react": { - "version": "0.479.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.479.0.tgz", - "integrity": "sha512-aBhNnveRhorBOK7uA4gDjgaf+YlHMdMhQ/3cupk6exM10hWlEU+2QtWYOfhXhjAsmdb6LeKR+NZnow4UxRRiTQ==", - "license": "ISC", - "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/m3u8-parser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/m3u8-parser/-/m3u8-parser-7.2.0.tgz", - "integrity": "sha512-CRatFqpjVtMiMaKXxNvuI3I++vUumIXVVT/JpCpdU/FynV/ceVw1qpPyyBNindL+JlPMSesx+WX1QJaZEJSaMQ==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@videojs/vhs-utils": "^4.1.1", - "global": "^4.4.0" - } - }, - "node_modules/mantine-react-table": { - "version": "2.0.0-beta.9", - "resolved": "https://registry.npmjs.org/mantine-react-table/-/mantine-react-table-2.0.0-beta.9.tgz", - "integrity": "sha512-ZdfcwebWaPERoDvAuk43VYcBCzamohARVclnbuepT0PHZ0wRcDPMBR+zgaocL+pFy8EXUGwvWTOKNh25ITpjNQ==", - "license": "MIT", - "dependencies": { - "@tanstack/match-sorter-utils": "8.19.4", - "@tanstack/react-table": "8.20.5", - "@tanstack/react-virtual": "3.11.2" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kevinvandy" - }, - "peerDependencies": { - "@mantine/core": "^7.9", - "@mantine/dates": "^7.9", - "@mantine/hooks": "^7.9", - "@tabler/icons-react": ">=2.23.0", - "clsx": ">=2", - "dayjs": ">=1.11", - "react": ">=18.0", - "react-dom": ">=18.0" - } - }, - "node_modules/mantine-react-table/node_modules/@tanstack/react-table": { - "version": "8.20.5", - "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.20.5.tgz", - "integrity": "sha512-WEHopKw3znbUZ61s9i0+i9g8drmDo6asTWbrQh8Us63DAk/M0FkmIqERew6P71HI75ksZ2Pxyuf4vvKh9rAkiA==", - "license": "MIT", - "dependencies": { - "@tanstack/table-core": "8.20.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/material-react-table": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/material-react-table/-/material-react-table-3.2.1.tgz", - "integrity": "sha512-sQtTf7bETpkPN2Hm5BVtz89wrfXCVQguz6XlwMChSnfKFO5QCKAJJC5aSIKnUc3S0AvTz/k/ILi00FnnY1Gixw==", - "license": "MIT", - "dependencies": { - "@tanstack/match-sorter-utils": "8.19.4", - "@tanstack/react-table": "8.20.6", - "@tanstack/react-virtual": "3.11.2", - "highlight-words": "2.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kevinvandy" - }, - "peerDependencies": { - "@emotion/react": ">=11.13", - "@emotion/styled": ">=11.13", - "@mui/icons-material": ">=6", - "@mui/material": ">=6", - "@mui/x-date-pickers": ">=7.15", - "react": ">=18.0", - "react-dom": ">=18.0" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mpd-parser": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mpd-parser/-/mpd-parser-1.3.1.tgz", - "integrity": "sha512-1FuyEWI5k2HcmhS1HkKnUAQV7yFPfXPht2DnRRGtoiiAAW+ESTbtEXIDpRkwdU+XyrQuwrIym7UkoPKsZ0SyFw==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@videojs/vhs-utils": "^4.0.0", - "@xmldom/xmldom": "^0.8.3", - "global": "^4.4.0" - }, - "bin": { - "mpd-to-m3u8-json": "bin/parse.js" - } - }, - "node_modules/mpegts.js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/mpegts.js/-/mpegts.js-1.8.0.tgz", - "integrity": "sha512-ZtujqtmTjWgcDDkoOnLvrOKUTO/MKgLHM432zGDI8oPaJ0S+ebPxg1nEpDpLw6I7KmV/GZgUIrfbWi3qqEircg==", - "license": "Apache-2.0", - "dependencies": { - "es6-promise": "^4.2.5", - "webworkify-webpack": "github:xqq/webworkify-webpack" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/mux.js": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/mux.js/-/mux.js-7.1.0.tgz", - "integrity": "sha512-NTxawK/BBELJrYsZThEulyUMDVlLizKdxyAsMuzoCD1eFj97BVaA8D/CvKsKu6FOLYkFojN5CbM9h++ZTZtknA==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.11.2", - "global": "^4.4.0" - }, - "bin": { - "muxjs-transmux": "bin/transmux.js" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - } - }, - "node_modules/nanoid": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz", - "integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/pkcs7": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pkcs7/-/pkcs7-1.0.4.tgz", - "integrity": "sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.5.5" - }, - "bin": { - "pkcs7": "bin/cli.js" - } - }, - "node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/property-expr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", - "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", - "license": "MIT" - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT" - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/react": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", - "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", - "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.25.0" - }, - "peerDependencies": { - "react": "^19.0.0" - } - }, - "node_modules/react-draggable": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.6.tgz", - "integrity": "sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==", - "license": "MIT", - "dependencies": { - "clsx": "^1.1.1", - "prop-types": "^15.8.1" - }, - "peerDependencies": { - "react": ">= 16.3.0", - "react-dom": ">= 16.3.0" - } - }, - "node_modules/react-draggable/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/react-fast-compare": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", - "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==", - "license": "MIT" - }, - "node_modules/react-is": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz", - "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==", - "license": "MIT" - }, - "node_modules/react-number-format": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.4.3.tgz", - "integrity": "sha512-VCY5hFg/soBighAoGcdE+GagkJq0230qN6jcS5sp8wQX1qy1fYN/RX7/BXkrs0oyzzwqR8/+eSUrqXbGeywdUQ==", - "license": "MIT", - "peerDependencies": { - "react": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/react-pro-sidebar": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/react-pro-sidebar/-/react-pro-sidebar-1.1.0.tgz", - "integrity": "sha512-rdRJ4PeMsqWq9n69AmF6et6qCbhCF1KEBgjAH8vIiLxE1k5fMxtRYo0k4asxW8qpIH6sqahiMxrxVVoObv8orQ==", - "license": "MIT", - "dependencies": { - "@emotion/react": "^11.10.5", - "@emotion/styled": "^11.10.5", - "@popperjs/core": "^2.11.6", - "classnames": "^2.3.2" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/react-remove-scroll": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", - "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==", - "license": "MIT", - "dependencies": { - "react-remove-scroll-bar": "^2.3.7", - "react-style-singleton": "^2.2.3", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.3", - "use-sidecar": "^1.1.3" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", - "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", - "license": "MIT", - "dependencies": { - "react-style-singleton": "^2.2.2", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-router": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.3.0.tgz", - "integrity": "sha512-466f2W7HIWaNXTKM5nHTqNxLrHTyXybm7R0eBlVSt0k/u55tTCDO194OIx/NrYD4TS5SXKTNekXfT37kMKUjgw==", - "license": "MIT", - "dependencies": { - "@types/cookie": "^0.6.0", - "cookie": "^1.0.1", - "set-cookie-parser": "^2.6.0", - "turbo-stream": "2.4.0" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - } - } - }, - "node_modules/react-router-dom": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.3.0.tgz", - "integrity": "sha512-z7Q5FTiHGgQfEurX/FBinkOXhWREJIAB2RiU24lvcBa82PxUpwqvs/PAXb9lJyPjTs2jrl6UkLvCZVGJPeNuuQ==", - "license": "MIT", - "dependencies": { - "react-router": "7.3.0" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/react-style-singleton": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", - "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", - "license": "MIT", - "dependencies": { - "get-nonce": "^1.0.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-textarea-autosize": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.6.tgz", - "integrity": "sha512-aT3ioKXMa8f6zHYGebhbdMD2L00tKeRX1zuVuDx9YQK/JLLRSaSxq3ugECEmUB9z2kvk6bFSIoRHLkkUv0RJiw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.20.13", - "use-composed-ref": "^1.3.0", - "use-latest": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" - }, - "node_modules/remove-accents": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", - "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/rollup": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.35.0.tgz", - "integrity": "sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.35.0", - "@rollup/rollup-android-arm64": "4.35.0", - "@rollup/rollup-darwin-arm64": "4.35.0", - "@rollup/rollup-darwin-x64": "4.35.0", - "@rollup/rollup-freebsd-arm64": "4.35.0", - "@rollup/rollup-freebsd-x64": "4.35.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.35.0", - "@rollup/rollup-linux-arm-musleabihf": "4.35.0", - "@rollup/rollup-linux-arm64-gnu": "4.35.0", - "@rollup/rollup-linux-arm64-musl": "4.35.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.35.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.35.0", - "@rollup/rollup-linux-riscv64-gnu": "4.35.0", - "@rollup/rollup-linux-s390x-gnu": "4.35.0", - "@rollup/rollup-linux-x64-gnu": "4.35.0", - "@rollup/rollup-linux-x64-musl": "4.35.0", - "@rollup/rollup-win32-arm64-msvc": "4.35.0", - "@rollup/rollup-win32-ia32-msvc": "4.35.0", - "@rollup/rollup-win32-x64-msvc": "4.35.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/scheduler": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", - "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", - "license": "MIT" - }, - "node_modules/set-cookie-parser": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", - "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", - "license": "MIT" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylis": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", - "license": "MIT" - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tabbable": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", - "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", - "license": "MIT" - }, - "node_modules/tiny-case": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", - "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==", - "license": "MIT" - }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", - "license": "MIT" - }, - "node_modules/toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", - "license": "MIT" - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/turbo-stream": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", - "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", - "license": "ISC" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/use-callback-ref": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", - "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-composed-ref": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.4.0.tgz", - "integrity": "sha512-djviaxuOOh7wkj0paeO1Q/4wMZ8Zrnag5H6yBvzN7AKKe8beOaED9SF5/ByLqsku8NP4zQqsvM2u3ew/tJK8/w==", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-isomorphic-layout-effect": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.0.tgz", - "integrity": "sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-latest": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.3.0.tgz", - "integrity": "sha512-mhg3xdm9NaM8q+gLT8KryJPnRFOz1/5XPBhmDEVZK1webPzDjrPk7f/mbpeLqTgB9msytYWANxgALOCJKnLvcQ==", - "license": "MIT", - "dependencies": { - "use-isomorphic-layout-effect": "^1.1.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sidecar": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", - "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", - "license": "MIT", - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/video.js": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/video.js/-/video.js-8.21.0.tgz", - "integrity": "sha512-zcwerRb257QAuWfi8NH9yEX7vrGKFthjfcONmOQ4lxFRpDAbAi+u5LAjCjMWqhJda6zEmxkgdDpOMW3Y21QpXA==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@videojs/http-streaming": "^3.16.2", - "@videojs/vhs-utils": "^4.1.1", - "@videojs/xhr": "2.7.0", - "aes-decrypter": "^4.0.2", - "global": "4.4.0", - "m3u8-parser": "^7.2.0", - "mpd-parser": "^1.3.1", - "mux.js": "^7.0.1", - "videojs-contrib-quality-levels": "4.1.0", - "videojs-font": "4.2.0", - "videojs-vtt.js": "0.15.5" - } - }, - "node_modules/videojs-contrib-quality-levels": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/videojs-contrib-quality-levels/-/videojs-contrib-quality-levels-4.1.0.tgz", - "integrity": "sha512-TfrXJJg1Bv4t6TOCMEVMwF/CoS8iENYsWNKip8zfhB5kTcegiFYezEA0eHAJPU64ZC8NQbxQgOwAsYU8VXbOWA==", - "license": "Apache-2.0", - "dependencies": { - "global": "^4.4.0" - }, - "engines": { - "node": ">=16", - "npm": ">=8" - }, - "peerDependencies": { - "video.js": "^8" - } - }, - "node_modules/videojs-font": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-4.2.0.tgz", - "integrity": "sha512-YPq+wiKoGy2/M7ccjmlvwi58z2xsykkkfNMyIg4xb7EZQQNwB71hcSsB3o75CqQV7/y5lXkXhI/rsGAS7jfEmQ==", - "license": "Apache-2.0" - }, - "node_modules/videojs-vtt.js": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.15.5.tgz", - "integrity": "sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ==", - "license": "Apache-2.0", - "dependencies": { - "global": "^4.3.1" - } - }, - "node_modules/vite": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.1.tgz", - "integrity": "sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.25.0", - "postcss": "^8.5.3", - "rollup": "^4.30.1" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/webworkify-webpack": { - "version": "2.1.5", - "resolved": "git+ssh://git@github.com/xqq/webworkify-webpack.git#24d1e719b4a6cac37a518b2bb10fe124527ef4ef", - "license": "MIT" - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yaml": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", - "dev": true, - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yup": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/yup/-/yup-1.6.1.tgz", - "integrity": "sha512-JED8pB50qbA4FOkDol0bYF/p60qSEDQqBD0/qeIrUCG1KbPBIQ776fCUNb9ldbPcSTxA69g/47XTo4TqWiuXOA==", - "license": "MIT", - "dependencies": { - "property-expr": "^2.0.5", - "tiny-case": "^1.0.3", - "toposort": "^2.0.2", - "type-fest": "^2.19.0" - } - }, - "node_modules/zustand": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz", - "integrity": "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==", - "license": "MIT", - "engines": { - "node": ">=12.20.0" - }, - "peerDependencies": { - "@types/react": ">=18.0.0", - "immer": ">=9.0.6", - "react": ">=18.0.0", - "use-sync-external-store": ">=1.2.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "immer": { - "optional": true - }, - "react": { - "optional": true - }, - "use-sync-external-store": { - "optional": true - } - } - } - } -} diff --git a/vite/package.json b/vite/package.json deleted file mode 100644 index 2e734af8..00000000 --- a/vite/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "vite", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev": "vite --host", - "build": "vite build", - "lint": "eslint .", - "preview": "vite preview" - }, - "dependencies": { - "@emotion/react": "^11.14.0", - "@emotion/styled": "^11.14.0", - "@mantine/core": "^7.17.1", - "@mantine/dates": "^7.17.1", - "@mantine/hooks": "^7.17.1", - "@mui/icons-material": "^6.4.7", - "@mui/material": "^6.4.7", - "@mui/x-date-pickers": "^7.27.3", - "@tabler/icons-react": "^3.31.0", - "axios": "^1.8.2", - "clsx": "^2.1.1", - "dayjs": "^1.11.13", - "formik": "^2.4.6", - "hls.js": "^1.5.20", - "lucide-react": "^0.479.0", - "mantine-react-table": "^2.0.0-beta.9", - "material-react-table": "^3.2.1", - "mpegts.js": "^1.8.0", - "prettier": "^3.5.3", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "react-draggable": "^4.4.6", - "react-pro-sidebar": "^1.1.0", - "react-router-dom": "^7.3.0", - "video.js": "^8.21.0", - "yup": "^1.6.1", - "zustand": "^5.0.3" - }, - "devDependencies": { - "@eslint/js": "^9.21.0", - "@types/react": "^19.0.10", - "@types/react-dom": "^19.0.4", - "@vitejs/plugin-react-swc": "^3.8.0", - "eslint": "^9.21.0", - "eslint-plugin-react-hooks": "^5.1.0", - "eslint-plugin-react-refresh": "^0.4.19", - "globals": "^15.15.0", - "vite": "^6.2.0" - } -} diff --git a/vite/prettier.config.js b/vite/prettier.config.js deleted file mode 100644 index d2b86878..00000000 --- a/vite/prettier.config.js +++ /dev/null @@ -1,10 +0,0 @@ -// prettier.config.js or .prettierrc.js -export default { - semi: true, // Add semicolons at the end of statements - singleQuote: true, // Use single quotes instead of double - tabWidth: 2, // Set the indentation width - trailingComma: "es5", // Add trailing commas where valid in ES5 - printWidth: 80, // Wrap lines at 80 characters - bracketSpacing: true, // Add spaces inside object braces - arrowParens: "always", // Always include parentheses around arrow function parameters -}; diff --git a/vite/src/App.css b/vite/src/App.css deleted file mode 100644 index 74b5e053..00000000 --- a/vite/src/App.css +++ /dev/null @@ -1,38 +0,0 @@ -.App { - text-align: center; -} - -.App-logo { - height: 40vmin; - pointer-events: none; -} - -@media (prefers-reduced-motion: no-preference) { - .App-logo { - animation: App-logo-spin infinite 20s linear; - } -} - -.App-header { - background-color: #282c34; - min-height: 100vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); - color: white; -} - -.App-link { - color: #61dafb; -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} diff --git a/vite/src/api.js b/vite/src/api.js deleted file mode 100644 index 1d436a02..00000000 --- a/vite/src/api.js +++ /dev/null @@ -1,783 +0,0 @@ -// src/api.js (updated) -import useAuthStore from './store/auth'; -import useChannelsStore from './store/channels'; -import useUserAgentsStore from './store/userAgents'; -import usePlaylistsStore from './store/playlists'; -import useEPGsStore from './store/epgs'; -import useStreamsStore from './store/streams'; -import useStreamProfilesStore from './store/streamProfiles'; -import useSettingsStore from './store/settings'; - -// If needed, you can set a base host or keep it empty if relative requests -const host = import.meta.env.DEV - ? `http://${window.location.hostname}:5656` - : ''; - -export default class API { - /** - * A static method so we can do: await API.getAuthToken() - */ - static async getAuthToken() { - return await useAuthStore.getState().getToken(); - } - - static async login(username, password) { - const response = await fetch(`${host}/api/accounts/token/`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ username, password }), - }); - - return await response.json(); - } - - static async refreshToken(refresh) { - const response = await fetch(`${host}/api/accounts/token/refresh/`, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ refresh }), - }); - - const retval = await response.json(); - return retval; - } - - static async logout() { - const response = await fetch(`${host}/api/accounts/auth/logout/`, { - method: 'POST', - }); - - return response.data.data; - } - - static async getChannels() { - const response = await fetch(`${host}/api/channels/channels/`, { - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${await API.getAuthToken()}`, - }, - }); - - const retval = await response.json(); - return retval; - } - - static async getChannelGroups() { - const response = await fetch(`${host}/api/channels/groups/`, { - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${await API.getAuthToken()}`, - }, - }); - - const retval = await response.json(); - return retval; - } - - static async addChannelGroup(values) { - const response = await fetch(`${host}/api/channels/groups/`, { - method: 'POST', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(values), - }); - - const retval = await response.json(); - if (retval.id) { - useChannelsStore.getState().addChannelGroup(retval); - } - - return retval; - } - - static async updateChannelGroup(values) { - const { id, ...payload } = values; - const response = await fetch(`${host}/api/channels/groups/${id}/`, { - method: 'PUT', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(payload), - }); - - const retval = await response.json(); - if (retval.id) { - useChannelsStore.getState().updateChannelGroup(retval); - } - - return retval; - } - - static async addChannel(channel) { - let body = null; - if (channel.logo_file) { - // Must send FormData for file upload - body = new FormData(); - for (const prop in channel) { - body.append(prop, channel[prop]); - } - } else { - body = { ...channel }; - delete body.logo_file; - body = JSON.stringify(body); - } - - const response = await fetch(`${host}/api/channels/channels/`, { - method: 'POST', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - ...(channel.logo_file - ? {} - : { - 'Content-Type': 'application/json', - }), - }, - body: body, - }); - - const retval = await response.json(); - if (retval.id) { - useChannelsStore.getState().addChannel(retval); - } - - return retval; - } - - static async deleteChannel(id) { - const response = await fetch(`${host}/api/channels/channels/${id}/`, { - method: 'DELETE', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - }); - - useChannelsStore.getState().removeChannels([id]); - } - - // @TODO: the bulk delete endpoint is currently broken - static async deleteChannels(channel_ids) { - const response = await fetch(`${host}/api/channels/channels/bulk-delete/`, { - method: 'DELETE', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ channel_ids }), - }); - - useChannelsStore.getState().removeChannels(channel_ids); - } - - static async updateChannel(values) { - const { id, ...payload } = values; - const response = await fetch(`${host}/api/channels/channels/${id}/`, { - method: 'PUT', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(payload), - }); - - const retval = await response.json(); - if (retval.id) { - useChannelsStore.getState().updateChannel(retval); - } - - return retval; - } - - static async assignChannelNumbers(channelIds) { - // Make the request - const response = await fetch(`${host}/api/channels/channels/assign/`, { - method: 'POST', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ channel_order: channelIds }), - }); - - if (!response.ok) { - const text = await response.text(); - throw new Error(`Assign channels failed: ${response.status} => ${text}`); - } - - const retval = await response.json(); - - // Optionally refresh the channel list in Zustand - await useChannelsStore.getState().fetchChannels(); - - return retval; - } - - static async createChannelFromStream(values) { - const response = await fetch(`${host}/api/channels/channels/from-stream/`, { - method: 'POST', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(values), - }); - - const retval = await response.json(); - if (retval.id) { - useChannelsStore.getState().addChannel(retval); - } - - return retval; - } - - static async createChannelsFromStreams(values) { - const response = await fetch( - `${host}/api/channels/channels/from-stream/bulk/`, - { - method: 'POST', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(values), - } - ); - - const retval = await response.json(); - if (retval.created.length > 0) { - useChannelsStore.getState().addChannels(retval.created); - } - - return retval; - } - - static async getStreams() { - const response = await fetch(`${host}/api/channels/streams/`, { - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${await API.getAuthToken()}`, - }, - }); - - const retval = await response.json(); - return retval; - } - - static async queryStreams(params) { - const response = await fetch( - `${host}/api/channels/streams/?${params.toString()}`, - { - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${await API.getAuthToken()}`, - }, - } - ); - - const retval = await response.json(); - return retval; - } - - static async getAllStreamIds(params) { - const response = await fetch( - `${host}/api/channels/streams/ids/?${params.toString()}`, - { - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${await API.getAuthToken()}`, - }, - } - ); - - const retval = await response.json(); - return retval; - } - - static async getStreamGroups() { - const response = await fetch(`${host}/api/channels/streams/groups/`, { - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${await API.getAuthToken()}`, - }, - }); - - const retval = await response.json(); - return retval; - } - - static async addStream(values) { - const response = await fetch(`${host}/api/channels/streams/`, { - method: 'POST', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(values), - }); - - const retval = await response.json(); - if (retval.id) { - useStreamsStore.getState().addStream(retval); - } - - return retval; - } - - static async updateStream(values) { - const { id, ...payload } = values; - const response = await fetch(`${host}/api/channels/streams/${id}/`, { - method: 'PUT', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(payload), - }); - - const retval = await response.json(); - if (retval.id) { - useStreamsStore.getState().updateStream(retval); - } - - return retval; - } - - static async deleteStream(id) { - const response = await fetch(`${host}/api/channels/streams/${id}/`, { - method: 'DELETE', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - }); - - useStreamsStore.getState().removeStreams([id]); - } - - static async deleteStreams(ids) { - const response = await fetch(`${host}/api/channels/streams/bulk-delete/`, { - method: 'DELETE', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ stream_ids: ids }), - }); - - useStreamsStore.getState().removeStreams(ids); - } - - static async getUserAgents() { - const response = await fetch(`${host}/api/core/useragents/`, { - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${await API.getAuthToken()}`, - }, - }); - - const retval = await response.json(); - return retval; - } - - static async addUserAgent(values) { - const response = await fetch(`${host}/api/core/useragents/`, { - method: 'POST', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(values), - }); - - const retval = await response.json(); - if (retval.id) { - useUserAgentsStore.getState().addUserAgent(retval); - } - - return retval; - } - - static async updateUserAgent(values) { - const { id, ...payload } = values; - const response = await fetch(`${host}/api/core/useragents/${id}/`, { - method: 'PUT', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(payload), - }); - - const retval = await response.json(); - if (retval.id) { - useUserAgentsStore.getState().updateUserAgent(retval); - } - - return retval; - } - - static async deleteUserAgent(id) { - const response = await fetch(`${host}/api/core/useragents/${id}/`, { - method: 'DELETE', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - }); - - useUserAgentsStore.getState().removeUserAgents([id]); - } - - static async getPlaylist(id) { - const response = await fetch(`${host}/api/m3u/accounts/${id}/`, { - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - }); - - const retval = await response.json(); - return retval; - } - - static async getPlaylists() { - const response = await fetch(`${host}/api/m3u/accounts/`, { - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - }); - - const retval = await response.json(); - return retval; - } - - static async addPlaylist(values) { - const response = await fetch(`${host}/api/m3u/accounts/`, { - method: 'POST', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(values), - }); - - const retval = await response.json(); - if (retval.id) { - usePlaylistsStore.getState().addPlaylist(retval); - } - - return retval; - } - - static async refreshPlaylist(id) { - const response = await fetch(`${host}/api/m3u/refresh/${id}/`, { - method: 'POST', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - }); - - const retval = await response.json(); - return retval; - } - - static async refreshAllPlaylist() { - const response = await fetch(`${host}/api/m3u/refresh/`, { - method: 'POST', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - }); - - const retval = await response.json(); - return retval; - } - - static async deletePlaylist(id) { - const response = await fetch(`${host}/api/m3u/accounts/${id}/`, { - method: 'DELETE', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - }); - - usePlaylistsStore.getState().removePlaylists([id]); - } - - static async updatePlaylist(values) { - const { id, ...payload } = values; - const response = await fetch(`${host}/api/m3u/accounts/${id}/`, { - method: 'PUT', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(payload), - }); - - const retval = await response.json(); - if (retval.id) { - usePlaylistsStore.getState().updatePlaylist(retval); - } - - return retval; - } - - static async getEPGs() { - const response = await fetch(`${host}/api/epg/sources/`, { - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - }); - - const retval = await response.json(); - return retval; - } - - // Notice there's a duplicated "refreshPlaylist" method above; - // you might want to rename or remove one if it's not needed. - - static async addEPG(values) { - let body = null; - if (values.epg_file) { - body = new FormData(); - for (const prop in values) { - body.append(prop, values[prop]); - } - } else { - body = { ...values }; - delete body.epg_file; - body = JSON.stringify(body); - } - - const response = await fetch(`${host}/api/epg/sources/`, { - method: 'POST', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - ...(values.epg_file - ? {} - : { - 'Content-Type': 'application/json', - }), - }, - body, - }); - - const retval = await response.json(); - if (retval.id) { - useEPGsStore.getState().addEPG(retval); - } - - return retval; - } - - static async deleteEPG(id) { - const response = await fetch(`${host}/api/epg/sources/${id}/`, { - method: 'DELETE', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - }); - - useEPGsStore.getState().removeEPGs([id]); - } - - static async refreshEPG(id) { - const response = await fetch(`${host}/api/epg/import/`, { - method: 'POST', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ id }), - }); - - const retval = await response.json(); - return retval; - } - - static async getStreamProfiles() { - const response = await fetch(`${host}/api/core/streamprofiles/`, { - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - }); - - const retval = await response.json(); - return retval; - } - - static async addStreamProfile(values) { - const response = await fetch(`${host}/api/core/streamprofiles/`, { - method: 'POST', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(values), - }); - - const retval = await response.json(); - if (retval.id) { - useStreamProfilesStore.getState().addStreamProfile(retval); - } - return retval; - } - - static async updateStreamProfile(values) { - const { id, ...payload } = values; - const response = await fetch(`${host}/api/core/streamprofiles/${id}/`, { - method: 'PUT', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(payload), - }); - - const retval = await response.json(); - if (retval.id) { - useStreamProfilesStore.getState().updateStreamProfile(retval); - } - - return retval; - } - - static async deleteStreamProfile(id) { - const response = await fetch(`${host}/api/core/streamprofiles/${id}/`, { - method: 'DELETE', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - }); - - useStreamProfilesStore.getState().removeStreamProfiles([id]); - } - - static async getGrid() { - const response = await fetch(`${host}/api/epg/grid/`, { - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - }); - - const retval = await response.json(); - return retval.data; - } - - static async addM3UProfile(accountId, values) { - const response = await fetch( - `${host}/api/m3u/accounts/${accountId}/profiles/`, - { - method: 'POST', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(values), - } - ); - - const retval = await response.json(); - if (retval.id) { - // Refresh the playlist - const playlist = await API.getPlaylist(accountId); - usePlaylistsStore - .getState() - .updateProfiles(playlist.id, playlist.profiles); - } - - return retval; - } - - static async deleteM3UProfile(accountId, id) { - const response = await fetch( - `${host}/api/m3u/accounts/${accountId}/profiles/${id}/`, - { - method: 'DELETE', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - } - ); - - const playlist = await API.getPlaylist(accountId); - usePlaylistsStore.getState().updatePlaylist(playlist); - } - - static async updateM3UProfile(accountId, values) { - const { id, ...payload } = values; - const response = await fetch( - `${host}/api/m3u/accounts/${accountId}/profiles/${id}/`, - { - method: 'PUT', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(payload), - } - ); - - const playlist = await API.getPlaylist(accountId); - usePlaylistsStore.getState().updateProfiles(playlist.id, playlist.profiles); - } - - static async getSettings() { - const response = await fetch(`${host}/api/core/settings/`, { - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${await API.getAuthToken()}`, - }, - }); - - const retval = await response.json(); - return retval; - } - - static async getEnvironmentSettings() { - const response = await fetch(`${host}/api/core/settings/env/`, { - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${await API.getAuthToken()}`, - }, - }); - - const retval = await response.json(); - return retval; - } - - static async updateSetting(values) { - const { id, ...payload } = values; - const response = await fetch(`${host}/api/core/settings/${id}/`, { - method: 'PUT', - headers: { - Authorization: `Bearer ${await API.getAuthToken()}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(payload), - }); - - const retval = await response.json(); - if (retval.id) { - useSettingsStore.getState().updateSetting(retval); - } - - return retval; - } -} diff --git a/vite/src/components/Alert.jsx b/vite/src/components/Alert.jsx deleted file mode 100644 index fa843400..00000000 --- a/vite/src/components/Alert.jsx +++ /dev/null @@ -1,26 +0,0 @@ -import React, { useState } from 'react'; -import { Snackbar, Alert, Button } from '@mui/material'; -import useAlertStore from '../store/alerts'; - -const AlertPopup = () => { - const { open, message, severity, hideAlert } = useAlertStore(); - - const handleClose = () => { - hideAlert(); - }; - - return ( - - - {message} - - - ); -}; - -export default AlertPopup; diff --git a/vite/src/components/Sidebar.jsx b/vite/src/components/Sidebar.jsx deleted file mode 100644 index 9b4502fa..00000000 --- a/vite/src/components/Sidebar.jsx +++ /dev/null @@ -1,189 +0,0 @@ -import React from 'react'; -import { Link, useLocation } from 'react-router-dom'; -import { - Drawer, - Toolbar, - Box, - Typography, - Avatar, - List, - ListItemButton, - ListItemIcon, - ListItemText, -} from '@mui/material'; -import { useTheme } from '@mui/material/styles'; -import { - ListOrdered, - Play, - Database, - SlidersHorizontal, - LayoutGrid, - Settings as LucideSettings, -} from 'lucide-react'; -import logo from '../images/logo.png'; -import { AppShell } from '@mantine/core'; - -const navItems = [ - { label: 'Channels', icon: , path: '/channels' }, - { label: 'M3U', icon: , path: '/m3u' }, - { label: 'EPG', icon: , path: '/epg' }, - { - label: 'Stream Profiles', - icon: , - path: '/stream-profiles', - }, - { label: 'TV Guide', icon: , path: '/guide' }, - { label: 'Settings', icon: , path: '/settings' }, -]; - -const Sidebar = ({ open, drawerWidth, miniDrawerWidth, toggleDrawer }) => { - const location = useLocation(); - const theme = useTheme(); - - return ( - - - - {open ? ( - - Dispatcharr Logo - - Dispatcharr - - - ) : ( - Dispatcharr Logo - )} - - - - {navItems.map((item) => { - const isActive = location.pathname.startsWith(item.path); - return ( - - - - {item.icon} - - {open && ( - - )} - - - ); - })} - - - - - - {open && ( - - John Doe - - )} - - - - ); -}; - -export default Sidebar; diff --git a/vite/src/components/forms/Channel.jsx b/vite/src/components/forms/Channel.jsx deleted file mode 100644 index 2b5d84e2..00000000 --- a/vite/src/components/forms/Channel.jsx +++ /dev/null @@ -1,491 +0,0 @@ -import React, { useState, useEffect, useMemo } from 'react'; -import { - Box, - Typography, - Stack, - TextField, - Button, - Select, - MenuItem, - Grid2, - InputLabel, - FormControl, - CircularProgress, - IconButton, - Dialog, - DialogTitle, - DialogContent, - DialogActions, - FormHelperText, -} from '@mui/material'; -import { useFormik } from 'formik'; -import * as Yup from 'yup'; -import useChannelsStore from '../../store/channels'; -import API from '../../api'; -import useStreamProfilesStore from '../../store/streamProfiles'; -import { Add as AddIcon, Remove as RemoveIcon } from '@mui/icons-material'; -import useStreamsStore from '../../store/streams'; -import { - MaterialReactTable, - useMaterialReactTable, -} from 'material-react-table'; -import ChannelGroupForm from './ChannelGroup'; -import usePlaylistsStore from '../../store/playlists'; -import logo from '../../images/logo.png'; - -const Channel = ({ channel = null, isOpen, onClose }) => { - const channelGroups = useChannelsStore((state) => state.channelGroups); - const streams = useStreamsStore((state) => state.streams); - const { profiles: streamProfiles } = useStreamProfilesStore(); - const { playlists } = usePlaylistsStore(); - - const [logoFile, setLogoFile] = useState(null); - const [logoPreview, setLogoPreview] = useState(logo); - const [channelStreams, setChannelStreams] = useState([]); - const [channelGroupModelOpen, setChannelGroupModalOpen] = useState(false); - - const addStream = (stream) => { - const streamSet = new Set(channelStreams); - streamSet.add(stream); - setChannelStreams(Array.from(streamSet)); - }; - - const removeStream = (stream) => { - const streamSet = new Set(channelStreams); - streamSet.delete(stream); - setChannelStreams(Array.from(streamSet)); - }; - - const handleLogoChange = (e) => { - const file = e.target.files[0]; - if (file) { - setLogoFile(file); - setLogoPreview(URL.createObjectURL(file)); - } - }; - - const formik = useFormik({ - initialValues: { - channel_name: '', - channel_number: '', - channel_group_id: '', - stream_profile_id: '0', - tvg_id: '', - tvg_name: '', - }, - validationSchema: Yup.object({ - channel_name: Yup.string().required('Name is required'), - channel_number: Yup.string().required('Invalid channel number').min(0), - channel_group_id: Yup.string().required('Channel group is required'), - }), - onSubmit: async (values, { setSubmitting, resetForm }) => { - if (values.stream_profile_id == '0') { - values.stream_profile_id = null; - } - - console.log(values); - if (channel?.id) { - await API.updateChannel({ - id: channel.id, - ...values, - logo_file: logoFile, - streams: channelStreams.map((stream) => stream.id), - }); - } else { - await API.addChannel({ - ...values, - logo_file: logoFile, - streams: channelStreams.map((stream) => stream.id), - }); - } - - resetForm(); - setLogoFile(null); - setLogoPreview(logo); - setSubmitting(false); - onClose(); - }, - }); - - useEffect(() => { - if (channel) { - formik.setValues({ - channel_name: channel.channel_name, - channel_number: channel.channel_number, - channel_group_id: channel.channel_group?.id, - stream_profile_id: channel.stream_profile_id || '0', - tvg_id: channel.tvg_id, - tvg_name: channel.tvg_name, - }); - - console.log(channel); - const filteredStreams = streams - .filter((stream) => channel.stream_ids.includes(stream.id)) - .sort( - (a, b) => - channel.stream_ids.indexOf(a.id) - channel.stream_ids.indexOf(b.id) - ); - setChannelStreams(filteredStreams); - } else { - formik.resetForm(); - } - }, [channel]); - - const activeStreamsTable = useMaterialReactTable({ - data: channelStreams, - columns: useMemo( - () => [ - { - header: 'Name', - accessorKey: 'name', - }, - { - header: 'M3U', - accessorKey: 'group_name', - }, - ], - [] - ), - enableSorting: false, - enableBottomToolbar: false, - enableTopToolbar: false, - columnFilterDisplayMode: 'popover', - enablePagination: false, - enableRowVirtualization: true, - enableRowOrdering: true, - rowVirtualizerOptions: { overscan: 5 }, //optionally customize the row virtualizer - initialState: { - density: 'compact', - }, - enableRowActions: true, - positionActionsColumn: 'last', - renderRowActions: ({ row }) => ( - <> - removeStream(row.original)} - > - {/* Small icon size */} - - - ), - muiTableContainerProps: { - sx: { - height: '200px', - }, - }, - muiRowDragHandleProps: ({ table }) => ({ - onDragEnd: () => { - const { draggingRow, hoveredRow } = table.getState(); - - if (hoveredRow && draggingRow) { - channelStreams.splice( - hoveredRow.index, - 0, - channelStreams.splice(draggingRow.index, 1)[0] - ); - - setChannelStreams([...channelStreams]); - } - }, - }), - }); - - const availableStreamsTable = useMaterialReactTable({ - data: streams, - columns: useMemo( - () => [ - { - header: 'Name', - accessorKey: 'name', - }, - { - header: 'M3U', - accessorFn: (row) => - playlists.find((playlist) => playlist.id === row.m3u_account)?.name, - }, - ], - [] - ), - enableBottomToolbar: false, - enableTopToolbar: false, - columnFilterDisplayMode: 'popover', - enablePagination: false, - enableRowVirtualization: true, - rowVirtualizerOptions: { overscan: 5 }, //optionally customize the row virtualizer - initialState: { - density: 'compact', - }, - enableRowActions: true, - renderRowActions: ({ row }) => ( - <> - addStream(row.original)} - > - {/* Small icon size */} - - - ), - positionActionsColumn: 'last', - muiTableContainerProps: { - sx: { - height: '200px', - }, - }, - }); - - if (!isOpen) { - return <>; - } - - return ( - <> - - - Channel - - -
    - - - - - - - - - - Channel Group - - - - {formik.touched.channel_group_id && - formik.errors.channel_group_id} - - - - - setChannelGroupModalOpen(true)} - title="Create new group" - size="small" - variant="filled" - > - - - - - - - - Stream Profile - - - - - - - - - - - - - - - - {/* File upload input */} - - Logo - {/* Display selected image */} - - Selected - - handleLogoChange(event)} - style={{ display: 'none' }} - /> - - - - - - - - - Active Streams - - - - - Available Streams - - - - - - - {/* Submit button */} - - -
    -
    - setChannelGroupModalOpen(false)} - /> - - ); -}; - -export default Channel; diff --git a/vite/src/components/forms/SuperuserForm.jsx b/vite/src/components/forms/SuperuserForm.jsx deleted file mode 100644 index 32eb5e14..00000000 --- a/vite/src/components/forms/SuperuserForm.jsx +++ /dev/null @@ -1,128 +0,0 @@ -// frontend/src/components/forms/SuperuserForm.js -import React, { useState } from 'react'; -import axios from 'axios'; -import { - Box, - Paper, - Typography, - Grid2, - TextField, - Button, -} from '@mui/material'; - -function SuperuserForm({ onSuccess }) { - const [formData, setFormData] = useState({ - username: '', - password: '', - email: '', - }); - const [error, setError] = useState(''); - - const handleChange = (e) => { - setFormData((prev) => ({ - ...prev, - [e.target.name]: e.target.value, - })); - }; - - const handleSubmit = async (e) => { - e.preventDefault(); - try { - const res = await axios.post('/api/accounts/initialize-superuser/', { - username: formData.username, - password: formData.password, - email: formData.email, - }); - if (res.data.superuser_exists) { - onSuccess(); - } - } catch (err) { - let msg = 'Failed to create superuser.'; - if (err.response && err.response.data && err.response.data.error) { - msg += ` ${err.response.data.error}`; - } - setError(msg); - } - }; - - return ( - - - - Create your Super User Account - - {error && ( - - {error} - - )} -
    - - - - - - - - - - - - - - -
    -
    -
    - ); -} - -export default SuperuserForm; diff --git a/vite/src/images/dispatcharr.svg b/vite/src/images/dispatcharr.svg deleted file mode 100644 index 3ddd8e2b..00000000 --- a/vite/src/images/dispatcharr.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vite/src/images/ghost.svg b/vite/src/images/ghost.svg deleted file mode 100644 index 2206100d..00000000 --- a/vite/src/images/ghost.svg +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - diff --git a/vite/src/images/logo.png b/vite/src/images/logo.png deleted file mode 100644 index 99c3c19f3d6ba0647c2883654126d5ea8b529020..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44564 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 \ No newline at end of file diff --git a/vite/src/pages/Login.jsx b/vite/src/pages/Login.jsx deleted file mode 100644 index 7ce24331..00000000 --- a/vite/src/pages/Login.jsx +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import LoginForm from '../components/forms/LoginForm'; - -const Login = () => { - return ; -}; - -export default Login; diff --git a/vite/src/store/alerts.jsx b/vite/src/store/alerts.jsx deleted file mode 100644 index b51076a3..00000000 --- a/vite/src/store/alerts.jsx +++ /dev/null @@ -1,24 +0,0 @@ -// frontend/src/store/useAlertStore.js -import { create } from 'zustand'; - -/** - * Global store to track whether a floating video is visible and which URL is playing. - */ -const useAlertStore = create((set) => ({ - open: false, - message: '', - severity: 'info', - - showAlert: (message, severity = 'info') => - set({ - open: true, - message, - severity, - }), - - hideAlert: () => { - set({ open: false }); - }, -})); - -export default useAlertStore; diff --git a/vite/src/utils.js b/vite/src/utils.js deleted file mode 100644 index b765c405..00000000 --- a/vite/src/utils.js +++ /dev/null @@ -1,53 +0,0 @@ -import React, { useState, useEffect } from 'react'; - -export default { - Limiter: (n, list) => { - if (!list || !list.length) { - return; - } - - var tail = list.splice(n); - var head = list; - var resolved = []; - var processed = 0; - - return new Promise(function (resolve) { - head.forEach(function (x) { - var res = x(); - resolved.push(res); - res.then(function (y) { - runNext(); - return y; - }); - }); - function runNext() { - if (processed == tail.length) { - resolve(Promise.all(resolved)); - } else { - resolved.push( - tail[processed]().then(function (x) { - runNext(); - return x; - }) - ); - processed++; - } - } - }); - }, -}; - -// Custom debounce hook -export function useDebounce(value, delay = 500) { - const [debouncedValue, setDebouncedValue] = useState(value); - - useEffect(() => { - const handler = setTimeout(() => { - setDebouncedValue(value); - }, delay); - - return () => clearTimeout(handler); // Cleanup timeout on unmount or value change - }, [value, delay]); - - return debouncedValue; -}