From 28552c3fa742cd751bbdd9ae7d180570c4149f5d Mon Sep 17 00:00:00 2001 From: Pukabyte Date: Thu, 12 Dec 2024 22:41:06 +1300 Subject: [PATCH 01/10] initial blackhole UI commit --- .cursorignore | 3 + .gitignore | 28 +- .vscode/settings.json | 23 + Dockerfile.blackhole | 44 +- Dockerfile.blackhole-ui | 46 + blackhole.py | 591 +- blackhole_watcher.py | 420 +- client/.gitignore | 23 + client/package-lock.json | 17727 ++++++++++++++++ client/package.json | 51 + client/public/favicon.ico | Bin 0 -> 3870 bytes client/public/index.html | 14 + client/public/logo192.png | Bin 0 -> 5347 bytes client/public/logo512.png | Bin 0 -> 9664 bytes client/public/manifest.json | 25 + client/public/robots.txt | 3 + client/src/App.css | 38 + client/src/App.tsx | 91 + client/src/components/DashboardContainer.tsx | 27 + client/src/components/Navbar.tsx | 158 + client/src/components/NotificationCenter.tsx | 173 + client/src/components/Notifications.tsx | 47 + client/src/components/ProcessingCard.tsx | 432 + client/src/components/ScriptCard.tsx | 123 + client/src/components/TorrentImport.tsx | 77 + .../src/components/shared/CustomTooltip.tsx | 24 + .../src/components/shared/ErrorBoundary.tsx | 81 + client/src/components/shared/GlassCard.tsx | 19 + .../src/components/shared/LoadingSpinner.tsx | 49 + .../components/shared/ProgressIndicator.tsx | 73 + client/src/components/shared/StatusBadge.tsx | 126 + client/src/contexts/NotificationContext.tsx | 58 + client/src/hooks/useWebSocket.ts | 71 + client/src/hooks/useWebSocketContext.tsx | 74 + client/src/images/mediainfo/codec/Atmos.png | Bin 0 -> 4618 bytes client/src/images/mediainfo/codec/DTS-HD.png | Bin 0 -> 2203 bytes client/src/images/mediainfo/codec/DTS-X.png | Bin 0 -> 4982 bytes .../src/images/mediainfo/codec/DV-Atmos.png | Bin 0 -> 7978 bytes .../src/images/mediainfo/codec/DV-DTS-HD.png | Bin 0 -> 6788 bytes .../src/images/mediainfo/codec/DV-DTS-X.png | Bin 0 -> 9595 bytes .../images/mediainfo/codec/DV-DigitalPlus.png | Bin 0 -> 7218 bytes .../images/mediainfo/codec/DV-HDR-Atmos.png | Bin 0 -> 7978 bytes .../images/mediainfo/codec/DV-HDR-DTS-HD.png | Bin 0 -> 6788 bytes .../images/mediainfo/codec/DV-HDR-DTS-X.png | Bin 0 -> 9595 bytes .../mediainfo/codec/DV-HDR-DigitalPlus.png | Bin 0 -> 7218 bytes .../mediainfo/codec/DV-HDR-TrueHD-Atmos.png | Bin 0 -> 8882 bytes .../images/mediainfo/codec/DV-HDR-TrueHD.png | Bin 0 -> 9505 bytes client/src/images/mediainfo/codec/DV-HDR.png | Bin 0 -> 4308 bytes .../mediainfo/codec/DV-HDR_extended.png | Bin 0 -> 5765 bytes .../images/mediainfo/codec/DV-Plus-Atmos.png | Bin 0 -> 7978 bytes .../images/mediainfo/codec/DV-Plus-DTS-HD.png | Bin 0 -> 6788 bytes .../images/mediainfo/codec/DV-Plus-DTS-X.png | Bin 0 -> 9595 bytes .../mediainfo/codec/DV-Plus-DigitalPlus.png | Bin 0 -> 7218 bytes .../mediainfo/codec/DV-Plus-TrueHD-Atmos.png | Bin 0 -> 8882 bytes .../images/mediainfo/codec/DV-Plus-TrueHD.png | Bin 0 -> 9505 bytes client/src/images/mediainfo/codec/DV-Plus.png | Bin 0 -> 4308 bytes .../mediainfo/codec/DV-Plus_extended.png | Bin 0 -> 6706 bytes .../mediainfo/codec/DV-TrueHD-Atmos.png | Bin 0 -> 8882 bytes .../src/images/mediainfo/codec/DV-TrueHD.png | Bin 0 -> 9505 bytes client/src/images/mediainfo/codec/DV.png | Bin 0 -> 4308 bytes .../images/mediainfo/codec/DigitalPlus.png | Bin 0 -> 3488 bytes .../src/images/mediainfo/codec/HDR-Atmos.png | Bin 0 -> 5962 bytes .../src/images/mediainfo/codec/HDR-DTS-HD.png | Bin 0 -> 3634 bytes .../src/images/mediainfo/codec/HDR-DTS-X.png | Bin 0 -> 6435 bytes .../mediainfo/codec/HDR-DigitalPlus.png | Bin 0 -> 4778 bytes .../mediainfo/codec/HDR-TrueHD-Atmos.png | Bin 0 -> 6198 bytes .../src/images/mediainfo/codec/HDR-TrueHD.png | Bin 0 -> 7111 bytes client/src/images/mediainfo/codec/HDR.png | Bin 0 -> 1250 bytes .../src/images/mediainfo/codec/Plus-Atmos.png | Bin 0 -> 6846 bytes .../images/mediainfo/codec/Plus-DTS-HD.png | Bin 0 -> 4469 bytes .../src/images/mediainfo/codec/Plus-DTS-X.png | Bin 0 -> 7306 bytes .../mediainfo/codec/Plus-DigitalPlus.png | Bin 0 -> 5622 bytes .../mediainfo/codec/Plus-TrueHD-Atmos.png | Bin 0 -> 7015 bytes .../images/mediainfo/codec/Plus-TrueHD.png | Bin 0 -> 7913 bytes client/src/images/mediainfo/codec/Plus.png | Bin 0 -> 2138 bytes .../images/mediainfo/codec/TrueHD-Atmos.png | Bin 0 -> 4790 bytes client/src/images/mediainfo/codec/TrueHD.png | Bin 0 -> 5770 bytes .../mediainfo/edition/Anniversary-Edition.png | Bin 0 -> 7114 bytes .../mediainfo/edition/Collectors-Edition.png | Bin 0 -> 6855 bytes .../mediainfo/edition/Directors-Cut.png | Bin 0 -> 5684 bytes .../images/mediainfo/edition/Extended-Cut.png | Bin 0 -> 4798 bytes .../mediainfo/edition/Extended-Edition.png | Bin 0 -> 5699 bytes .../images/mediainfo/edition/Final-Cut.png | Bin 0 -> 3525 bytes client/src/images/mediainfo/edition/IMAX.png | Bin 0 -> 3612 bytes .../images/mediainfo/edition/Minus-Color.png | Bin 0 -> 5371 bytes .../images/mediainfo/edition/Open-Matte.png | Bin 0 -> 4575 bytes .../images/mediainfo/edition/Remastered.png | Bin 0 -> 7759 bytes .../src/images/mediainfo/edition/Restored.png | Bin 0 -> 6946 bytes .../mediainfo/edition/Signature-Edition.png | Bin 0 -> 9070 bytes .../mediainfo/edition/Special-Edition.png | Bin 0 -> 5567 bytes .../mediainfo/edition/Theatrical-Cut.png | Bin 0 -> 7743 bytes .../images/mediainfo/edition/Theatrical.png | Bin 0 -> 6801 bytes .../mediainfo/edition/Ultimate-Edition.png | Bin 0 -> 8092 bytes client/src/images/mediainfo/edition/Uncut.png | Bin 0 -> 5506 bytes .../mediainfo/edition/Unrated-Edition.png | Bin 0 -> 5570 bytes .../src/images/mediainfo/resolution/1080P.png | Bin 0 -> 1945 bytes .../images/mediainfo/resolution/Ultra-HD.png | Bin 0 -> 1680 bytes client/src/index.css | 13 + client/src/index.js | 11 + client/src/index.tsx | 11 + client/src/logo.svg | 1 + client/src/pages/Dashboard.tsx | 91 + client/src/pages/Import.tsx | 29 + client/src/pages/Scripts.tsx | 63 + client/src/reportWebVitals.js | 13 + client/src/types/ProcessingItem.ts | 176 + client/src/types/images.d.ts | 4 + client/src/utils/api.ts | 16 + client/src/utils/fileNameUtils.ts | 24 + client/src/utils/mediaInfoImages.ts | 107 + client/src/utils/parseMediaInfo.ts | 101 + client/src/utils/upload.ts | 21 + docker-compose-ui.yml | 43 + package-lock.json | 1889 ++ package.json | 14 + requirements.txt | 6 +- shared/arr.py | 6 + shared/debrid.py | 2 +- shared/websocket.py | 91 + 119 files changed, 23337 insertions(+), 134 deletions(-) create mode 100644 .cursorignore create mode 100644 .vscode/settings.json create mode 100644 Dockerfile.blackhole-ui create mode 100644 client/.gitignore create mode 100644 client/package-lock.json create mode 100644 client/package.json create mode 100644 client/public/favicon.ico create mode 100644 client/public/index.html create mode 100644 client/public/logo192.png create mode 100644 client/public/logo512.png create mode 100644 client/public/manifest.json create mode 100644 client/public/robots.txt create mode 100644 client/src/App.css create mode 100644 client/src/App.tsx create mode 100644 client/src/components/DashboardContainer.tsx create mode 100644 client/src/components/Navbar.tsx create mode 100644 client/src/components/NotificationCenter.tsx create mode 100644 client/src/components/Notifications.tsx create mode 100644 client/src/components/ProcessingCard.tsx create mode 100644 client/src/components/ScriptCard.tsx create mode 100644 client/src/components/TorrentImport.tsx create mode 100644 client/src/components/shared/CustomTooltip.tsx create mode 100644 client/src/components/shared/ErrorBoundary.tsx create mode 100644 client/src/components/shared/GlassCard.tsx create mode 100644 client/src/components/shared/LoadingSpinner.tsx create mode 100644 client/src/components/shared/ProgressIndicator.tsx create mode 100644 client/src/components/shared/StatusBadge.tsx create mode 100644 client/src/contexts/NotificationContext.tsx create mode 100644 client/src/hooks/useWebSocket.ts create mode 100644 client/src/hooks/useWebSocketContext.tsx create mode 100644 client/src/images/mediainfo/codec/Atmos.png create mode 100644 client/src/images/mediainfo/codec/DTS-HD.png create mode 100644 client/src/images/mediainfo/codec/DTS-X.png create mode 100644 client/src/images/mediainfo/codec/DV-Atmos.png create mode 100644 client/src/images/mediainfo/codec/DV-DTS-HD.png create mode 100644 client/src/images/mediainfo/codec/DV-DTS-X.png create mode 100644 client/src/images/mediainfo/codec/DV-DigitalPlus.png create mode 100644 client/src/images/mediainfo/codec/DV-HDR-Atmos.png create mode 100644 client/src/images/mediainfo/codec/DV-HDR-DTS-HD.png create mode 100644 client/src/images/mediainfo/codec/DV-HDR-DTS-X.png create mode 100644 client/src/images/mediainfo/codec/DV-HDR-DigitalPlus.png create mode 100644 client/src/images/mediainfo/codec/DV-HDR-TrueHD-Atmos.png create mode 100644 client/src/images/mediainfo/codec/DV-HDR-TrueHD.png create mode 100644 client/src/images/mediainfo/codec/DV-HDR.png create mode 100644 client/src/images/mediainfo/codec/DV-HDR_extended.png create mode 100644 client/src/images/mediainfo/codec/DV-Plus-Atmos.png create mode 100644 client/src/images/mediainfo/codec/DV-Plus-DTS-HD.png create mode 100644 client/src/images/mediainfo/codec/DV-Plus-DTS-X.png create mode 100644 client/src/images/mediainfo/codec/DV-Plus-DigitalPlus.png create mode 100644 client/src/images/mediainfo/codec/DV-Plus-TrueHD-Atmos.png create mode 100644 client/src/images/mediainfo/codec/DV-Plus-TrueHD.png create mode 100644 client/src/images/mediainfo/codec/DV-Plus.png create mode 100644 client/src/images/mediainfo/codec/DV-Plus_extended.png create mode 100644 client/src/images/mediainfo/codec/DV-TrueHD-Atmos.png create mode 100644 client/src/images/mediainfo/codec/DV-TrueHD.png create mode 100644 client/src/images/mediainfo/codec/DV.png create mode 100644 client/src/images/mediainfo/codec/DigitalPlus.png create mode 100644 client/src/images/mediainfo/codec/HDR-Atmos.png create mode 100644 client/src/images/mediainfo/codec/HDR-DTS-HD.png create mode 100644 client/src/images/mediainfo/codec/HDR-DTS-X.png create mode 100644 client/src/images/mediainfo/codec/HDR-DigitalPlus.png create mode 100644 client/src/images/mediainfo/codec/HDR-TrueHD-Atmos.png create mode 100644 client/src/images/mediainfo/codec/HDR-TrueHD.png create mode 100644 client/src/images/mediainfo/codec/HDR.png create mode 100644 client/src/images/mediainfo/codec/Plus-Atmos.png create mode 100644 client/src/images/mediainfo/codec/Plus-DTS-HD.png create mode 100644 client/src/images/mediainfo/codec/Plus-DTS-X.png create mode 100644 client/src/images/mediainfo/codec/Plus-DigitalPlus.png create mode 100644 client/src/images/mediainfo/codec/Plus-TrueHD-Atmos.png create mode 100644 client/src/images/mediainfo/codec/Plus-TrueHD.png create mode 100644 client/src/images/mediainfo/codec/Plus.png create mode 100644 client/src/images/mediainfo/codec/TrueHD-Atmos.png create mode 100644 client/src/images/mediainfo/codec/TrueHD.png create mode 100644 client/src/images/mediainfo/edition/Anniversary-Edition.png create mode 100644 client/src/images/mediainfo/edition/Collectors-Edition.png create mode 100644 client/src/images/mediainfo/edition/Directors-Cut.png create mode 100644 client/src/images/mediainfo/edition/Extended-Cut.png create mode 100644 client/src/images/mediainfo/edition/Extended-Edition.png create mode 100644 client/src/images/mediainfo/edition/Final-Cut.png create mode 100644 client/src/images/mediainfo/edition/IMAX.png create mode 100644 client/src/images/mediainfo/edition/Minus-Color.png create mode 100644 client/src/images/mediainfo/edition/Open-Matte.png create mode 100644 client/src/images/mediainfo/edition/Remastered.png create mode 100644 client/src/images/mediainfo/edition/Restored.png create mode 100644 client/src/images/mediainfo/edition/Signature-Edition.png create mode 100644 client/src/images/mediainfo/edition/Special-Edition.png create mode 100644 client/src/images/mediainfo/edition/Theatrical-Cut.png create mode 100644 client/src/images/mediainfo/edition/Theatrical.png create mode 100644 client/src/images/mediainfo/edition/Ultimate-Edition.png create mode 100644 client/src/images/mediainfo/edition/Uncut.png create mode 100644 client/src/images/mediainfo/edition/Unrated-Edition.png create mode 100644 client/src/images/mediainfo/resolution/1080P.png create mode 100644 client/src/images/mediainfo/resolution/Ultra-HD.png create mode 100644 client/src/index.css create mode 100644 client/src/index.js create mode 100644 client/src/index.tsx create mode 100644 client/src/logo.svg create mode 100644 client/src/pages/Dashboard.tsx create mode 100644 client/src/pages/Import.tsx create mode 100644 client/src/pages/Scripts.tsx create mode 100644 client/src/reportWebVitals.js create mode 100644 client/src/types/ProcessingItem.ts create mode 100644 client/src/types/images.d.ts create mode 100644 client/src/utils/api.ts create mode 100644 client/src/utils/fileNameUtils.ts create mode 100644 client/src/utils/mediaInfoImages.ts create mode 100644 client/src/utils/parseMediaInfo.ts create mode 100644 client/src/utils/upload.ts create mode 100644 docker-compose-ui.yml create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 shared/websocket.py diff --git a/.cursorignore b/.cursorignore new file mode 100644 index 0000000..afce36b --- /dev/null +++ b/.cursorignore @@ -0,0 +1,3 @@ +# Add directories or file patterns to ignore during indexing (e.g. foo/ or *.csv) +node_modules/ +client/node_modules/ diff --git a/.gitignore b/.gitignore index bde5cef..f4a8ca2 100644 --- a/.gitignore +++ b/.gitignore @@ -166,4 +166,30 @@ logs/blackhole.log blackhole/ # Tokens -shared/tokens.json \ No newline at end of file +shared/tokens.json + +# Development +.idea/ +.vscode/ +*.swp +*.swo +.env.local +.env.development.local +.env.test.local +.env.production.local + +# Node/React +node_modules/ +/build +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.eslintcache +*.tsbuildinfo + +# Cache +.npm/ + +# Project specific +cache/ +sockets/ \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..de1431a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,23 @@ +{ + "cSpell.words": [ + "bencode", + "blackhole", + "blackholemux", + "certresolver", + "cfdns", + "cloudflarewarp", + "cooldown", + "davyjones", + "loadbalancer", + "mediainfo", + "PGID", + "PUID", + "RADARR", + "repairanime", + "securetls", + "traefik", + "watchlist", + "websecure", + "westsurname" + ] +} \ No newline at end of file diff --git a/Dockerfile.blackhole b/Dockerfile.blackhole index fd483e8..e0f0ee1 100644 --- a/Dockerfile.blackhole +++ b/Dockerfile.blackhole @@ -1,22 +1,22 @@ -FROM python:3.9-slim - -# Metadata labels -LABEL org.opencontainers.image.source="https://github.com/westsurname/scripts" -LABEL org.opencontainers.image.description="Docker image for the blackhole service" - -ARG SERVICE_NAME=blackhole - -# Set working directory -WORKDIR /app - -# Copy only the files needed for pip install to maximize cache utilization -COPY requirements.txt ./ - -# Install Python dependencies -RUN grep -E "#.*($SERVICE_NAME|all)" requirements.txt | awk '{print $0}' > service_requirements.txt && \ - pip install --no-cache-dir -r service_requirements.txt - -# Copy the rest of the application -COPY . . - -CMD ["python", "blackhole_watcher.py"] +FROM python:3.9-slim + +# Metadata labels +LABEL org.opencontainers.image.source="https://github.com/westsurname/scripts" +LABEL org.opencontainers.image.description="Docker image for the blackhole service" + +ARG SERVICE_NAME=blackhole + +# Set working directory +WORKDIR /app + +# Copy only the files needed for pip install to maximize cache utilization +COPY requirements.txt ./ + +# Install Python dependencies +RUN grep -E "#.*($SERVICE_NAME|all)" requirements.txt | awk '{print $0}' > service_requirements.txt && \ + pip install --no-cache-dir -r service_requirements.txt + +# Copy the rest of the application +COPY . . + +CMD ["python", "blackhole_watcher.py"] \ No newline at end of file diff --git a/Dockerfile.blackhole-ui b/Dockerfile.blackhole-ui new file mode 100644 index 0000000..2c6c41d --- /dev/null +++ b/Dockerfile.blackhole-ui @@ -0,0 +1,46 @@ +# Frontend build stage +FROM node:18-slim AS frontend-builder +WORKDIR /app + +# Copy package files first for better caching +COPY client/package*.json ./ +RUN npm install + +# Copy the rest of the client code +COPY client/ ./ + +# Build the frontend first +RUN npm run build + +# Create directory structure for mediainfo images +RUN mkdir -p /app/build/static/images/mediainfo/codec \ + /app/build/static/images/mediainfo/edition \ + /app/build/static/images/mediainfo/resolution + +# Copy mediainfo images to the correct location and verify +COPY client/src/images/mediainfo/codec/* /app/build/static/images/mediainfo/codec/ +COPY client/src/images/mediainfo/edition/* /app/build/static/images/mediainfo/edition/ +COPY client/src/images/mediainfo/resolution/* /app/build/static/images/mediainfo/resolution/ + +# Python application stage +FROM python:3.9-slim +LABEL org.opencontainers.image.source="https://github.com/westsurname/scripts" +LABEL org.opencontainers.image.description="Docker image for the blackhole service" + +ARG SERVICE_NAME=blackhole +WORKDIR /app + +# Install Python dependencies first for better caching +COPY requirements.txt ./ +RUN grep -E "#.*($SERVICE_NAME|all)" requirements.txt | awk '{print $0}' > service_requirements.txt && \ + pip install --no-cache-dir -r service_requirements.txt + +# Copy application code +COPY . . + +# Copy frontend build files +COPY --from=frontend-builder /app/build/* /app/static/ + +ENV PYTHONBUFFERED=1 + +CMD ["python", "blackhole_watcher.py"] \ No newline at end of file diff --git a/blackhole.py b/blackhole.py index ec7cb88..03b4333 100644 --- a/blackhole.py +++ b/blackhole.py @@ -1,18 +1,49 @@ +from mimetypes import add_type +from dis import code_info import shutil import time import traceback import os import sys import re -import requests import asyncio -import uuid from datetime import datetime -# import urllib +from typing import Optional, List from shared.discord import discordError, discordUpdate from shared.shared import realdebrid, torbox, blackhole, plex, checkRequiredEnvs from shared.arr import Arr, Radarr, Sonarr from shared.debrid import TorrentBase, RealDebridTorrent, RealDebridMagnet, TorboxTorrent, TorboxMagnet +from shared.websocket import WebSocketManager +from dotenv import load_dotenv + + +load_dotenv() + +# Add helper functions here, before any other code +def extract_year(filename: str) -> Optional[int]: + """Extract year from filename.""" + match = re.search(r'(?:19|20)\d{2}', filename) + return int(match.group(0)) if match else None + +def extract_season(filename: str) -> Optional[List[int]]: + """Extract season numbers from filename.""" + matches = re.findall(r'S(\d{1,2})(?:E\d{1,2})?', filename, re.IGNORECASE) + return [int(m) for m in matches] if matches else None + +def extract_episode(filename: str) -> Optional[List[int]]: + """Extract episode numbers from filename.""" + matches = re.findall(r'E(\d{1,2})', filename, re.IGNORECASE) + return [int(m) for m in matches] if matches else None + +def extractResolution(filename: str) -> list[str]: + """Extract resolution from filename.""" + resolutions = ['2160p', '1080p', '720p', '480p'] + return [res for res in resolutions if res.lower() in filename.lower()] + +def extractCodec(filename: str) -> list[str]: + """Extract codec from filename.""" + codecs = ['x265', 'x264', 'HEVC', 'AVC', 'H264', 'H.264'] + return [codec for codec in codecs if codec.lower() in filename.lower()] _print = print @@ -32,6 +63,18 @@ def print(*values: object): checkRequiredEnvs(requiredEnvs) class TorrentFileInfo(): + def __init__(self, filename, isRadarr) -> None: + print('filename:', filename) + self.id = filename # Use filename as consistent ID + self.fileInfo = self.FileInfo(filename, os.path.splitext(filename)[0], + os.path.join(getPath(isRadarr), filename), + os.path.join(getPath(isRadarr), 'processing', filename), + os.path.join(getPath(isRadarr), 'completed', os.path.splitext(filename)[0])) + self.torrentInfo = self.TorrentInfo( + filename.casefold().endswith('.torrent') or filename.casefold().endswith('.magnet'), + filename.casefold().endswith('.torrent') + ) + class FileInfo(): def __init__(self, filename, filenameWithoutExt, filePath, filePathProcessing, folderPathCompleted) -> None: self.filename = filename @@ -45,20 +88,6 @@ def __init__(self, isTorrentOrMagnet, isDotTorrentFile) -> None: self.isTorrentOrMagnet = isTorrentOrMagnet self.isDotTorrentFile = isDotTorrentFile - def __init__(self, filename, isRadarr) -> None: - print('filename:', filename) - baseBath = getPath(isRadarr) - uniqueId = str(uuid.uuid4())[:8] # Generate a unique identifier - isDotTorrentFile = filename.casefold().endswith('.torrent') - isTorrentOrMagnet = isDotTorrentFile or filename.casefold().endswith('.magnet') - filenameWithoutExt, ext = os.path.splitext(filename) - filePath = os.path.join(baseBath, filename) - filePathProcessing = os.path.join(baseBath, 'processing', f"{filenameWithoutExt}_{uniqueId}{ext}") - folderPathCompleted = os.path.join(baseBath, 'completed', filenameWithoutExt) - - self.fileInfo = self.FileInfo(filename, filenameWithoutExt, filePath, filePathProcessing, folderPathCompleted) - self.torrentInfo = self.TorrentInfo(isTorrentOrMagnet, isDotTorrentFile) - def getPath(isRadarr, create=False): baseWatchPath = blackhole['baseWatchPath'] absoluteBaseWatchPath = baseWatchPath if os.path.isabs(baseWatchPath) else os.path.abspath(baseWatchPath) @@ -88,20 +117,44 @@ def cleanFileName(name): async def refreshArr(arr: Arr, count=60): # TODO: Change to refresh until found/imported async def refresh(): - for _ in range(count): + for i in range(count): arr.refreshMonitoredDownloads() + ws_manager = WebSocketManager.get_instance() + current_items = ws_manager.get_active_items() + for item_id, item in current_items.items(): + if item['status'].get('imported'): + item['status'].update({ + 'status': f'Refreshing ({i+1}/{count})', + 'progress': 100, + 'cached': True, + 'added': True, + 'mounted': True, + 'symlinked': True, + 'imported': True + }) + + if i % 10 == 0: # Only log every 10th refresh + print(f"[REFRESH] Progress: {i+1}/{count}") + + await ws_manager.broadcast_status({ + 'type': 'processing_status', + 'items': list(current_items.values()) + }) await asyncio.sleep(1) global refreshingTask if refreshingTask and not refreshingTask.done(): - print("Refresh already in progress, restarting...") + print("[REFRESH] Restarting existing refresh task") refreshingTask.cancel() refreshingTask = asyncio.create_task(refresh()) try: await refreshingTask + print("[REFRESH] Complete") + return True except asyncio.CancelledError: - pass + print("[REFRESH] Cancelled") + return False def copyFiles(file: TorrentFileInfo, folderPathMountTorrent, arr: Arr): # Consider removing this and always streaming @@ -139,11 +192,108 @@ def print(*values: object): async def processTorrent(torrent: TorrentBase, file: TorrentFileInfo, arr: Arr) -> bool: _print = globals()['print'] + info = None def print(*values: object): _print(f"[{torrent.__class__.__name__}] [{file.fileInfo.filenameWithoutExt}]", *values) + async def send_status_update(status_dict): + nonlocal info + if 'status' not in status_dict: + status_dict['status'] = 'Unknown' + + parsed_info = await asyncio.to_thread(arr.parse, file.fileInfo.filenameWithoutExt) + if parsed_info: + status_dict['parsedInfo'] = parsed_info + + ws_manager = WebSocketManager.get_instance() + current_items = ws_manager.get_active_items() + + current_item = { + 'id': file.fileInfo.filename, + 'title': file.fileInfo.filenameWithoutExt, + 'type': 'movie' if isinstance(arr, Radarr) else 'series', + 'status': status_dict, + 'progress': status_dict.get('progress', 0), + 'debridProvider': torrent.__class__.__name__, + 'fileInfo': { + 'name': file.fileInfo.filename, + 'resolution': extractResolution(file.fileInfo.filename), + 'codec': extractCodec(file.fileInfo.filename), + 'year': extract_year(file.fileInfo.filename), + 'season': extract_season(file.fileInfo.filename), + 'episode': extract_episode(file.fileInfo.filename) + } + } + + current_items[file.fileInfo.filename] = current_item + + # Only log status changes + print(f"[STATUS] {file.fileInfo.filenameWithoutExt}: {status_dict['status']} (imported={status_dict.get('imported', False)})") + + await ws_manager.broadcast_status({ + 'type': 'processing_status', + 'items': list(current_items.values()) + }) + + # Add a small delay after each status update to ensure it's visible + await asyncio.sleep(0.1) + + async def handle_error(error_status, error_message): + current_status.update({ + 'status': error_status, + 'error': True, + 'progress': 0, + 'errorTime': int(time.time()) + }) + await send_status_update(current_status) + print(f"Error: {error_message}") + discordError(error_status, error_message) + ws_manager = WebSocketManager.get_instance() + await ws_manager.broadcast_status({ + 'type': 'notification', + 'notification': { + 'type': 'error', + 'title': error_status, + 'message': f"{file.fileInfo.filenameWithoutExt}: {error_message}", + 'timestamp': int(time.time()) + } + }) + ws_manager.remove_active_item(file.fileInfo.filename) + return False + + current_status = { + 'cached': False, + 'added': False, + 'mounted': False, + 'symlinked': False, + 'status': 'Initializing', + 'progress': 0 + } + await send_status_update(current_status) + if not torrent.submitTorrent(): + current_status.update({ + 'status': 'Failed to submit torrent', + 'error': True, + 'progress': 0, + 'errorTime': int(time.time()) + }) + await send_status_update(current_status) + print(f"Failed to submit torrent: {file.fileInfo.filenameWithoutExt}") + discordError("Failed to submit torrent", file.fileInfo.filenameWithoutExt) + + ws_manager = WebSocketManager.get_instance() + await ws_manager.broadcast_status({ + 'type': 'notification', + 'notification': { + 'type': 'error', + 'title': 'Failed to submit torrent', + 'message': f"{file.fileInfo.filenameWithoutExt}", + 'timestamp': int(time.time()) + } + }) + ws_manager.remove_active_item(file.fileInfo.filename) return False count = 0 @@ -151,109 +301,305 @@ def print(*values: object): count += 1 info = await torrent.getInfo(refresh=True) if not info: - return False - - status = info['status'] + current_status.update({ + 'status': 'Waiting for torrent info', + 'cached': False, + 'progress': 5 + }) + await send_status_update(current_status) + await asyncio.sleep(1) + continue + + status = info.get('status') + progress = info.get('progress', 0) + cached = info.get('cached', False) print('status:', status) - if status == torrent.STATUS_WAITING_FILES_SELECTION: + current_status.update({ + 'cached': cached, + 'progress': progress + }) + + if cached: + current_status.update({ + 'status': 'Cached', + 'added': True, + 'cached': True + }) + elif status == torrent.STATUS_WAITING_FILES_SELECTION: + current_status.update({ + 'status': 'Selecting files', + 'added': True, + 'progress': 25 + }) + await send_status_update(current_status) + if not await torrent.selectFiles(): + current_status.update({ + 'status': 'File selection failed', + 'error': True, + 'progress': 0 + }) + await send_status_update(current_status) torrent.delete() return False + elif status == torrent.STATUS_DOWNLOADING: - # Send progress to arr - progress = info['progress'] + current_status.update({ + 'status': 'Downloading', + 'added': True + }) print(f"Progress: {progress:.2f}%") + if torrent.incompatibleHashSize and torrent.failIfNotCached: - print("Non-cached incompatible hash sized torrent") - torrent.delete() + current_status.update({ + 'status': 'Non-cached incompatible hash', + 'error': True, + 'progress': 0, + 'errorTime': int(time.time()) + }) + await send_status_update(current_status) + print(f"Non-cached incompatible hash detected for {file.fileInfo.filenameWithoutExt}") + discordError("Non-cached incompatible hash", f"{file.fileInfo.filenameWithoutExt}") + ws_manager = WebSocketManager.get_instance() + await ws_manager.broadcast_status({ + 'type': 'notification', + 'notification': { + 'type': 'error', + 'title': 'Non-cached incompatible hash', + 'message': f"{file.fileInfo.filenameWithoutExt}", + 'timestamp': int(time.time()) + } + }) + ws_manager.remove_active_item(file.fileInfo.filename) return False - await asyncio.sleep(1) + elif status == torrent.STATUS_ERROR: + current_status.update({ + 'status': 'Error occurred', + 'error': True, + 'progress': 0 + }) + await send_status_update(current_status) return False + elif status == torrent.STATUS_COMPLETED: + current_status.update({ + 'status': 'Waiting for folders', + 'added': True, + 'cached': True, + 'progress': 50 + }) + await send_status_update(current_status) + existsCount = 0 print('Waiting for folders to refresh...') while True: existsCount += 1 - folderPathMountTorrent = await torrent.getTorrentPath() + if folderPathMountTorrent: + current_status.update({ + 'status': 'Creating symlinks', + 'cached': True, + 'mounted': True, + 'progress': 75 + }) + await send_status_update(current_status) + multiSeasonRegex1 = r'(?<=[\W_][Ss]eason[\W_])[\d][\W_][\d]{1,2}(?=[\W_])' multiSeasonRegex2 = r'(?<=[\W_][Ss])[\d]{2}[\W_][Ss]?[\d]{2}(?=[\W_])' multiSeasonRegexCombined = f'{multiSeasonRegex1}|{multiSeasonRegex2}' - multiSeasonMatch = re.search(multiSeasonRegexCombined, file.fileInfo.filenameWithoutExt) - - for root, dirs, files in os.walk(folderPathMountTorrent): - relRoot = os.path.relpath(root, folderPathMountTorrent) - for filename in files: - # Check if the file is accessible - # if not await is_accessible(os.path.join(root, filename)): - # print(f"Timeout reached when accessing file: {filename}") - # discordError(f"Timeout reached when accessing file", filename) - # Uncomment the following line to fail the entire torrent if the timeout on any of its files are reached - # fail(torrent) - # return - - if multiSeasonMatch: - seasonMatch = re.search(r'S([\d]{2})E[\d]{2}', filename) - - if seasonMatch: - season = seasonMatch.group(1) - seasonShort = season[1:] if season[0] == '0' else season - - seasonFolderPathCompleted = re.sub(multiSeasonRegex1, seasonShort, file.fileInfo.folderPathCompleted) - seasonFolderPathCompleted = re.sub(multiSeasonRegex2, season, seasonFolderPathCompleted) - - os.makedirs(os.path.join(seasonFolderPathCompleted, relRoot), exist_ok=True) - os.symlink(os.path.join(root, filename), os.path.join(seasonFolderPathCompleted, relRoot, filename)) - print('Season Recursive:', f"{os.path.join(seasonFolderPathCompleted, relRoot, filename)} -> {os.path.join(root, filename)}") - # refreshEndpoint = f"{plex['serverHost']}/library/sections/{plex['serverMovieLibraryId'] if isRadarr else plex['serverTvShowLibraryId']}/refresh?path={urllib.parse.quote_plus(os.path.join(seasonFolderPathCompleted, relRoot))}&X-Plex-Token={plex['serverApiKey']}" - # cancelRefreshRequest = requests.delete(refreshEndpoint, headers={'Accept': 'application/json'}) - # refreshRequest = requests.get(refreshEndpoint, headers={'Accept': 'application/json'}) - - continue - - - os.makedirs(os.path.join(file.fileInfo.folderPathCompleted, relRoot), exist_ok=True) - os.symlink(os.path.join(root, filename), os.path.join(file.fileInfo.folderPathCompleted, relRoot, filename)) - print('Recursive:', f"{os.path.join(file.fileInfo.folderPathCompleted, relRoot, filename)} -> {os.path.join(root, filename)}") - # refreshEndpoint = f"{plex['serverHost']}/library/sections/{plex['serverMovieLibraryId'] if isRadarr else plex['serverTvShowLibraryId']}/refresh?path={urllib.parse.quote_plus(os.path.join(file.fileInfo.folderPathCompleted, relRoot))}&X-Plex-Token={plex['serverApiKey']}" - # cancelRefreshRequest = requests.delete(refreshEndpoint, headers={'Accept': 'application/json'}) - # refreshRequest = requests.get(refreshEndpoint, headers={'Accept': 'application/json'}) - print('Refreshed') - discordUpdate(f"Sucessfully processed {file.fileInfo.filenameWithoutExt}", f"Now available for immediate consumption! existsCount: {existsCount}") + symlinks_created = False + try: + for root, dirs, files in os.walk(folderPathMountTorrent): + relRoot = os.path.relpath(root, folderPathMountTorrent) + for filename in files: + if multiSeasonMatch: + seasonMatch = re.search(r'S([\d]{2})E[\d]{2}', filename) + if seasonMatch: + season = seasonMatch.group(1) + seasonShort = season[1:] if season[0] == '0' else season + seasonFolderPathCompleted = re.sub(multiSeasonRegex1, seasonShort, file.fileInfo.folderPathCompleted) + seasonFolderPathCompleted = re.sub(multiSeasonRegex2, season, seasonFolderPathCompleted) + os.makedirs(os.path.join(seasonFolderPathCompleted, relRoot), exist_ok=True) + os.symlink(os.path.join(root, filename), os.path.join(seasonFolderPathCompleted, relRoot, filename)) + print('Season Recursive:', f"{os.path.join(seasonFolderPathCompleted, relRoot, filename)} -> {os.path.join(root, filename)}") + symlinks_created = True + continue + + os.makedirs(os.path.join(file.fileInfo.folderPathCompleted, relRoot), exist_ok=True) + os.symlink(os.path.join(root, filename), os.path.join(file.fileInfo.folderPathCompleted, relRoot, filename)) + print('Recursive:', f"{os.path.join(file.fileInfo.folderPathCompleted, relRoot, filename)} -> {os.path.join(root, filename)}") + symlinks_created = True + + if symlinks_created: + current_status.update({ + 'symlinked': True, + 'status': 'Symlinks created', + 'progress': 85 + }) + await send_status_update(current_status) + except Exception as e: + print(f"Error creating symlinks: {e}") + return await handle_error('Symlink creation failed', str(e)) + + # Give UI time to show symlink status + await asyncio.sleep(2) + + # First mark as importing + current_status.update({ + 'status': f'Importing to {"Radarr" if isinstance(arr, Radarr) else "Sonarr"}', + 'cached': True, + 'added': True, + 'mounted': True, + 'symlinked': True, + 'imported': False, + 'progress': 95 + }) + await send_status_update(current_status) + + # Start refresh process before marking as complete + print(f"[PROCESS] Starting refresh for {file.fileInfo.filenameWithoutExt}") + refresh_complete = await refreshArr(arr) + print(f"[PROCESS] Refresh completed: {refresh_complete}") + + if refresh_complete: + # Now mark as complete after refresh + current_status.update({ + 'status': 'Complete', + 'cached': True, + 'added': True, + 'mounted': True, + 'symlinked': True, + 'imported': True, + 'progress': 100, + 'completedTime': int(time.time()) + }) + await send_status_update(current_status) + + # Send notification + print(f"[PROCESS] Sending completion notification for {file.fileInfo.filenameWithoutExt}") + ws_manager = WebSocketManager.get_instance() + await ws_manager.broadcast_status({ + 'type': 'notification', + 'notification': { + 'type': 'success', + 'title': 'Processing Complete', + 'message': f"Successfully processed {file.fileInfo.filenameWithoutExt}", + 'timestamp': int(time.time()) + } + }) + + print(f"[PROCESS] Waiting before removal of {file.fileInfo.filenameWithoutExt}") + await asyncio.sleep(5) + + print(f"[PROCESS] Removing {file.fileInfo.filenameWithoutExt}") + ws_manager.remove_active_item(file.fileInfo.filename) + print(f"[PROCESS] Removed {file.fileInfo.filenameWithoutExt}") + + return True - # refreshEndpoint = f"{plex['serverHost']}/library/sections/{plex['serverMovieLibraryId'] if isRadarr else plex['serverTvShowLibraryId']}/refresh?X-Plex-Token={plex['serverApiKey']}" - # cancelRefreshRequest = requests.delete(refreshEndpoint, headers={'Accept': 'application/json'}) - # refreshRequest = requests.get(refreshEndpoint, headers={'Accept': 'application/json'}) - await refreshArr(arr) + print(f"[PROCESS] Refresh failed for {file.fileInfo.filenameWithoutExt}") + return False - # await asyncio.get_running_loop().run_in_executor(None, copyFiles, file, folderPathMountTorrent, arr) - return True - if existsCount >= blackhole['rdMountRefreshSeconds'] + 1: + current_status.update({ + 'status': 'Folder not found in filesystem', + 'error': True, + 'progress': 0 + }) + await send_status_update(current_status) print(f"Torrent folder not found in filesystem: {file.fileInfo.filenameWithoutExt}") discordError("Torrent folder not found in filesystem", file.fileInfo.filenameWithoutExt) - return False await asyncio.sleep(1) - + + await send_status_update(current_status) + + if status == torrent.STATUS_ERROR: + return await handle_error('Error occurred', f"Debrid provider error for {file.fileInfo.filenameWithoutExt}") + if torrent.failIfNotCached and count >= blackhole['waitForTorrentTimeout']: + current_status.update({ + 'status': 'Timeout reached', + 'error': True, + 'progress': 0 + }) + await send_status_update(current_status) print(f"Torrent timeout: {file.fileInfo.filenameWithoutExt} - {status}") discordError("Torrent timeout", f"{file.fileInfo.filenameWithoutExt} - {status}") - return False + await asyncio.sleep(1) + + # When reaching completion point: + print(f"[PROCESS] Starting completion for {file.fileInfo.filenameWithoutExt}") + + # First mark as importing + current_status.update({ + 'status': f'Importing to {"Radarr" if isinstance(arr, Radarr) else "Sonarr"}', + 'cached': True, + 'added': True, + 'mounted': True, + 'symlinked': True, + 'imported': False, + 'progress': 95 + }) + await send_status_update(current_status) + + # Start refresh process before marking as complete + print(f"[PROCESS] Starting refresh for {file.fileInfo.filenameWithoutExt}") + refresh_complete = await refreshArr(arr) + print(f"[PROCESS] Refresh completed: {refresh_complete}") + + if refresh_complete: + # Now mark as complete after refresh + current_status.update({ + 'status': 'Complete', + 'cached': True, + 'added': True, + 'mounted': True, + 'symlinked': True, + 'imported': True, + 'progress': 100, + 'completedTime': int(time.time()) # Add completion timestamp + }) + await send_status_update(current_status) + + # Send notification + print(f"[PROCESS] Sending completion notification for {file.fileInfo.filenameWithoutExt}") + ws_manager = WebSocketManager.get_instance() + await ws_manager.broadcast_status({ + 'type': 'notification', + 'notification': { + 'type': 'success', + 'title': 'Processing Complete', + 'message': f"Successfully processed {file.fileInfo.filenameWithoutExt}", + 'timestamp': int(time.time()) + } + }) + + print(f"[PROCESS] Waiting before removal of {file.fileInfo.filenameWithoutExt}") + await asyncio.sleep(5) + + print(f"[PROCESS] Removing {file.fileInfo.filenameWithoutExt}") + ws_manager.remove_active_item(file.fileInfo.filename) + print(f"[PROCESS] Removed {file.fileInfo.filenameWithoutExt}") + + return True + + print(f"[PROCESS] Refresh failed for {file.fileInfo.filenameWithoutExt}") + return False + async def processFile(file: TorrentFileInfo, arr: Arr, isRadarr): try: _print = globals()['print'] - def print(*values: object): _print(f"[{file.fileInfo.filenameWithoutExt}]", *values) @@ -268,15 +614,14 @@ async def is_accessible(path, timeout=10): loop = asyncio.get_event_loop() try: await asyncio.wait_for(loop.run_in_executor(executor, read_file, path), timeout=timeout) - discordUpdate('good') return True except Exception as e: - discordError('error', e) + print(f"Error accessing file: {e}") return False finally: executor.shutdown(wait=False) - time.sleep(.1) # Wait before processing the file in case it isn't fully written yet. + time.sleep(.1) os.renames(file.fileInfo.filePath, file.fileInfo.filePathProcessing) with open(file.fileInfo.filePathProcessing, 'rb' if file.torrentInfo.isDotTorrentFile else 'r') as f: @@ -290,30 +635,80 @@ async def is_accessible(path, timeout=10): torrentConstructors.append(TorboxTorrent if file.torrentInfo.isDotTorrentFile else TorboxMagnet) onlyLargestFile = isRadarr or bool(re.search(r'S[\d]{2}E[\d]{2}(?![\W_][\d]{2}[\W_])', file.fileInfo.filename)) + + # Send initial status with consistent ID + ws_manager = WebSocketManager.get_instance() + await ws_manager.broadcast_status({ + 'type': 'processing_status', + 'items': [{ + 'id': file.id, + 'title': file.fileInfo.filenameWithoutExt, + 'type': 'movie' if isRadarr else 'series', + 'status': { + 'cached': False, + 'added': False, + 'mounted': False, + 'symlinked': False, + 'imported': False, # Added imported status + 'status': 'Starting', + 'progress': 0 + }, + 'progress': 0, + 'debridProvider': '', + 'fileInfo': { + 'name': file.fileInfo.filename, + 'resolution': extractResolution(file.fileInfo.filename), + 'codec': extractCodec(file.fileInfo.filename), + 'year': extract_year(file.fileInfo.filename), + 'season': extract_season(file.fileInfo.filename), + 'episode': extract_episode(file.fileInfo.filename) + } + }] + }) + if not blackhole['failIfNotCached']: torrents = [constructor(f, fileData, file, blackhole['failIfNotCached'], onlyLargestFile) for constructor in torrentConstructors] results = await asyncio.gather(*(processTorrent(torrent, file, arr) for torrent in torrents)) if not any(results): await asyncio.gather(*(fail(torrent, arr) for torrent in torrents)) + # Ensure item is removed after failure + ws_manager = WebSocketManager.get_instance() + ws_manager.remove_active_item(file.id) else: + success = False for i, constructor in enumerate(torrentConstructors): isLast = (i == len(torrentConstructors) - 1) torrent = constructor(f, fileData, file, blackhole['failIfNotCached'], onlyLargestFile) if await processTorrent(torrent, file, arr): + success = True break elif isLast: await fail(torrent, arr) + # Ensure item is removed after failure + ws_manager = WebSocketManager.get_instance() + ws_manager.remove_active_item(file.id) os.remove(file.fileInfo.filePathProcessing) except: e = traceback.format_exc() - print(f"Error processing {file.fileInfo.filenameWithoutExt}") print(e) - discordError(f"Error processing {file.fileInfo.filenameWithoutExt}", e) + + # Clean up WebSocket status and ensure item is removed + ws_manager = WebSocketManager.get_instance() + await ws_manager.broadcast_status({ + 'type': 'notification', + 'notification': { + 'type': 'error', + 'title': 'Processing Error', + 'message': f"Error processing {file.fileInfo.filenameWithoutExt}", + 'timestamp': int(time.time()) + } + }) + ws_manager.remove_active_item(file.id) async def fail(torrent: TorrentBase, arr: Arr): _print = globals()['print'] @@ -374,5 +769,27 @@ async def on_created(isRadarr): discordError(f"Error processing", e) print("Exit 'on_created'") +def main(): + print("Starting blackhole watcher") + +async def handle_delete_request(item_id: str): + ws_manager = WebSocketManager.get_instance() + if item_id in ws_manager.get_active_items(): + # Remove from active items + ws_manager.remove_active_item(item_id) + + # Find and remove the processing file if it exists + for isRadarr in [True, False]: + processing_path = os.path.join(getPath(isRadarr), 'processing', item_id) + if os.path.exists(processing_path): + try: + os.remove(processing_path) + print(f"Removed processing file: {item_id}") + return True + except Exception as e: + print(f"Error removing processing file {item_id}: {e}") + return False + return False + if __name__ == "__main__": asyncio.run(on_created(isRadarr=sys.argv[1] == 'radarr')) diff --git a/blackhole_watcher.py b/blackhole_watcher.py index 180b687..ce521b4 100644 --- a/blackhole_watcher.py +++ b/blackhole_watcher.py @@ -2,6 +2,359 @@ from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler from blackhole import on_created, getPath +from fastapi import FastAPI, WebSocket, WebSocketDisconnect +from fastapi.staticfiles import StaticFiles +from fastapi.responses import FileResponse +from pydantic import BaseModel +from typing import List, Optional, Dict, Any, Tuple +from shared.arr import Radarr, Sonarr +from shared.websocket import WebSocketManager +import uvicorn +import os +from fastapi.middleware.cors import CORSMiddleware +from fastapi import HTTPException +import requests + +app = FastAPI() + +# Add CORS middleware +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +# Mount static files +app.mount("/static", StaticFiles(directory="/app/static", html=True), name="static") + +# API routes must come before the catch-all route +@app.get("/api/tmdb/{media_type}/{tmdb_id}/images") +async def get_tmdb_images(media_type: str, tmdb_id: int): + api_key = os.getenv('TMDB_API_KEY') + if not api_key: + print("TMDB_API_KEY not found in environment variables") + raise HTTPException(status_code=500, detail="TMDB API key not configured") + + url = f"https://api.themoviedb.org/3/{media_type}/{tmdb_id}/images" + headers = { + "accept": "application/json", + "Authorization": f"Bearer {api_key}" + } + + try: + response = requests.get(url, headers=headers) + if response.status_code != 200: + print(f"TMDB Error Response: {response.text}") + return {"logo_path": None} + + data = response.json() + + if 'logos' in data and data['logos']: + english_logos = [logo for logo in data['logos'] if logo.get('iso_639_1') == 'en'] + if english_logos: + best_logo = sorted(english_logos, key=lambda x: (x.get('vote_average', 0), x.get('width', 0)), reverse=True)[0] + return {"logo_path": best_logo['file_path']} + + return {"logo_path": None} + except Exception as e: + print(f"Error in TMDB API:", str(e)) + raise HTTPException(status_code=500, detail=str(e)) + +# Serve index.html for the root route +@app.get("/") +async def read_root(): + return FileResponse("/app/static/index.html") + +# Add the arrinfo endpoint before the catch-all route +@app.get("/arrinfo") +async def get_arr_info(): + try: + # Initialize both Radarr and Sonarr clients + radarr = Radarr() + sonarr = Sonarr() + + # Get latest movie and series info + latest_movie = None + latest_series = None + + # Try to get latest movie from Radarr + try: + movies = radarr.getMovies() + if movies: + latest_movie = max(movies, key=lambda x: x.json.get('added', '')) + if latest_movie: + media_info = latest_movie.json.get('movieFile', {}).get('mediaInfo', {}) + + # Parse audio codec using the new function + audio_codec = parse_audio_codec(media_info.get('audioCodec', '')) + + latest_movie = { + "title": latest_movie.title, + "year": latest_movie.json.get('year'), + "images": [ + { + "coverType": img.get('coverType'), + "remoteUrl": img.get('remoteUrl') + } + for img in latest_movie.json.get('images', []) + ], + "quality": latest_movie.json.get('movieFile', {}).get('quality', {}).get('quality', {}), + "mediaInfo": { + "audioCodec": audio_codec.get('audioCodec'), + "videoCodec": media_info.get('videoCodec'), + "videoDynamicRange": media_info.get('videoDynamicRange'), + "audioChannels": media_info.get('audioChannels'), + "resolution": media_info.get('resolution') + } + } + except Exception as e: + print(f"Error getting Radarr info: {str(e)}") + + # Try to get latest series from Sonarr + try: + series = sonarr.getSeries() + if series: + latest_series = max(series, key=lambda x: x.json.get('added', '')) + if latest_series: + media_info = latest_series.json.get('episodeFile', {}).get('mediaInfo', {}) + + # Parse audio codec using the new function + audio_codec = parse_audio_codec(media_info.get('audioCodec', '')) + + latest_series = { + "title": latest_series.title, + "images": [ + { + "coverType": img.get('coverType'), + "remoteUrl": img.get('remoteUrl') + } + for img in latest_series.json.get('images', []) + ], + "quality": latest_series.json.get('episodeFile', {}).get('quality', {}).get('quality', {}), + "mediaInfo": { + "audioCodec": audio_codec.get('audioCodec'), + "videoCodec": media_info.get('videoCodec'), + "videoDynamicRange": media_info.get('videoDynamicRange'), + "audioChannels": media_info.get('audioChannels'), + "resolution": media_info.get('resolution') + } + } + except Exception as e: + print(f"Error getting Sonarr info: {str(e)}") + + return { + "movie": latest_movie, + "series": latest_series + } + except Exception as e: + print(f"Error in get_arr_info: {str(e)}") + raise HTTPException(status_code=500, detail=str(e)) + +# Serve index.html for any unmatched routes (for client-side routing) +@app.get("/{full_path:path}") +async def serve_spa(full_path: str): + if full_path.startswith("api/"): + raise HTTPException(status_code=404, detail="API route not found") + return FileResponse("/app/static/index.html") + +class Image(BaseModel): + coverType: str + remoteUrl: str + +class Quality(BaseModel): + name: str + source: str + resolution: int + +class MediaInfo(BaseModel): + audioCodec: str + videoCodec: str + videoDynamicRange: str + +class Movie(BaseModel): + title: str + year: int + images: List[Image] + quality: Optional[Quality] + mediaInfo: Optional[MediaInfo] + +class Series(BaseModel): + title: str + seasonNumber: int + episodeNumbers: List[int] + images: List[Image] + quality: Optional[Quality] + mediaInfo: Optional[MediaInfo] + +class ArrInfo(BaseModel): + movie: Optional[Movie] + series: Optional[Series] + +def parse_audio_codec(audio_codec: str) -> str: + """Parse audio codec and handle all possible combinations""" + + # Normalize the input + audio_codec = audio_codec.upper() if audio_codec else '' + + # Combined format mappings + combined_formats = { + ('TRUEHD', 'ATMOS'): 'TrueHD-Atmos', + ('DTS', 'HD'): 'DTS-HD', + ('DTS', 'X'): 'DTS-X', + ('DIGITAL', 'PLUS'): 'DigitalPlus', + ('EAC3', 'ATMOS'): 'DigitalPlus', # EAC3 is also known as DD+ or Digital Plus + ('DD', 'PLUS'): 'DigitalPlus', + ('AC3', 'PLUS'): 'DigitalPlus', + } + + # Check for combined formats + for (format1, format2), result in combined_formats.items(): + if format1 in audio_codec and format2 in audio_codec: + return result + + # Single format mappings + single_formats = { + 'TRUEHD': 'TrueHD', + 'DTS': 'DTS', + 'AC3': 'AC3', + 'AAC': 'AAC', + 'EAC3': 'DigitalPlus', + 'DD': 'AC3', # Dolby Digital is AC3 + } + + # Check for single formats + for format_key, result in single_formats.items(): + if format_key in audio_codec: + return result + + return audio_codec + +def parse_video_format(video_codec: str, dynamic_range: str) -> tuple[str, str]: + """Parse video codec and dynamic range, handling all combinations""" + + # Normalize inputs + video_codec = video_codec.upper() if video_codec else '' + dynamic_range = dynamic_range.upper() if dynamic_range else '' + + # Dynamic Range mappings + dynamic_formats = { + 'DOLBY VISION': 'DV', + 'HDR10': 'HDR', + 'HDR10+': 'Plus', + 'HDR': 'HDR', + 'DV': 'DV', + } + + # Find matching dynamic range format + detected_range = None + for format_key, result in dynamic_formats.items(): + if format_key in dynamic_range: + detected_range = result + break + + # Handle combined formats + combined_format = None + if detected_range: + if detected_range == 'DV' and 'HDR' in dynamic_range: + combined_format = 'DV-HDR' + elif detected_range == 'DV' and 'PLUS' in dynamic_range: + combined_format = 'DV-Plus' + + # Video codec mappings (if needed for future use) + video_formats = { + 'X265': 'HEVC', + 'HEVC': 'HEVC', + 'X264': 'AVC', + 'AVC': 'AVC', + 'H264': 'AVC', + 'H.264': 'AVC', + } + + # Find matching video codec + detected_codec = None + for format_key, result in video_formats.items(): + if format_key in video_codec: + detected_codec = result + break + + return detected_codec, combined_format or detected_range + +async def parse_media_info(media_info: Dict[str, Any]) -> Dict[str, Any]: + """Parse media info and return formatted data""" + audio_codec = parse_audio_codec(media_info.get('audioCodec', '')) + video_codec, dynamic_range = parse_video_format( + media_info.get('videoCodec', ''), + media_info.get('videoDynamicRange', '') or media_info.get('videoDynamicRangeType', '') + ) + + return { + "audioCodec": audio_codec, + "videoCodec": video_codec, + "videoDynamicRange": dynamic_range, + "audioChannels": media_info.get('audioChannels'), + "resolution": media_info.get('resolution') + } + +async def get_latest_media(client: Any, is_movie: bool) -> Optional[Dict[str, Any]]: + """Get latest media from Radarr/Sonarr""" + try: + items = client.getMovies() if is_movie else client.getSeries() + if not items: + return None + + latest_item = max(items, key=lambda x: x.json.get('added', '')) + if not latest_item: + return None + + media_info = ( + latest_item.json.get('movieFile', {}) if is_movie + else latest_item.json.get('episodeFile', {}) + ).get('mediaInfo', {}) + + parsed_media_info = await parse_media_info(media_info) + + return { + "title": latest_item.title, + "year": latest_item.json.get('year') if is_movie else None, + "images": [ + { + "coverType": img.get('coverType'), + "remoteUrl": img.get('remoteUrl') + } + for img in latest_item.json.get('images', []) + ], + "quality": ( + latest_item.json.get('movieFile', {}) if is_movie + else latest_item.json.get('episodeFile', {}) + ).get('quality', {}).get('quality', {}), + "mediaInfo": parsed_media_info + } + except Exception as e: + print(f"Error getting {'movie' if is_movie else 'series'} info: {str(e)}") + return None + +@app.get("/api/arrinfo") +async def get_arr_info() -> Dict[str, Optional[Dict[str, Any]]]: + """Get latest media info from both Radarr and Sonarr""" + try: + radarr = Radarr() + sonarr = Sonarr() + + latest_movie = await get_latest_media(radarr, is_movie=True) + latest_series = await get_latest_media(sonarr, is_movie=False) + + return { + "movie": latest_movie, + "series": latest_series + } + except Exception as e: + print(f"Error in get_arr_info: {str(e)}") + raise HTTPException( + status_code=500, + detail=f"Failed to fetch media info: {str(e)}" + ) class BlackholeHandler(FileSystemEventHandler): def __init__(self, is_radarr): @@ -16,33 +369,56 @@ def on_created(self, event): async def on_run(self): await on_created(self.is_radarr) -async def main(): - print("Watching blackhole") +async def start_application(): + config = uvicorn.Config(app, host="0.0.0.0", port=8000, log_level="info") + server = uvicorn.Server(config) + await server.serve() - radarr_handler = BlackholeHandler(is_radarr=True) - sonarr_handler = BlackholeHandler(is_radarr=False) +async def main(): + print("Starting blackhole watcher") + + radarr_handler = BlackholeHandler(is_radarr=True) + sonarr_handler = BlackholeHandler(is_radarr=False) - radarr_observer = Observer() - radarr_observer.schedule(radarr_handler, radarr_handler.path_name) + radarr_observer = Observer() + radarr_observer.schedule(radarr_handler, radarr_handler.path_name) - sonarr_observer = Observer() - sonarr_observer.schedule(sonarr_handler, sonarr_handler.path_name) + sonarr_observer = Observer() + sonarr_observer.schedule(sonarr_handler, sonarr_handler.path_name) - try: - radarr_observer.start() - sonarr_observer.start() - - await asyncio.gather( - radarr_handler.on_run(), - sonarr_handler.on_run() - ) - except KeyboardInterrupt: - radarr_observer.stop() - sonarr_observer.stop() + try: + radarr_observer.start() + sonarr_observer.start() + + await asyncio.gather( + start_application(), + radarr_handler.on_run(), + sonarr_handler.on_run() + ) + except KeyboardInterrupt: + radarr_observer.stop() + sonarr_observer.stop() - radarr_observer.join() - sonarr_observer.join() + radarr_observer.join() + sonarr_observer.join() +@app.websocket("/ws") +async def websocket_endpoint(websocket: WebSocket): + try: + await websocket.accept() + await WebSocketManager.get_instance().add_websocket(websocket) + try: + while True: + data = await websocket.receive_json() + print(f"Received data from {websocket.client}: {data}") + if data.get('type') == 'ping': + await websocket.send_json({"type": "pong"}) + except WebSocketDisconnect: + await WebSocketManager.get_instance().remove_websocket(websocket) + except Exception as e: + WebSocketManager.get_instance().remove_websocket(websocket) + except Exception as e: + print(f"Failed to accept WebSocket connection: {e}") if __name__ == "__main__": - asyncio.run(main()) \ No newline at end of file + asyncio.run(main()) diff --git a/client/.gitignore b/client/.gitignore new file mode 100644 index 0000000..4d29575 --- /dev/null +++ b/client/.gitignore @@ -0,0 +1,23 @@ +# 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 + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/client/package-lock.json b/client/package-lock.json new file mode 100644 index 0000000..8a236f6 --- /dev/null +++ b/client/package-lock.json @@ -0,0 +1,17727 @@ +{ + "name": "client", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "client", + "version": "0.1.0", + "dependencies": { + "@emotion/react": "^11.11.3", + "@emotion/styled": "^11.11.0", + "@mui/icons-material": "^5.15.6", + "@mui/material": "^5.15.6", + "@mui/system": "^5.15.6", + "@mui/types": "^7.2.13", + "@types/axios": "^0.9.36", + "@types/node": "^20.11.16", + "@types/react": "^18.2.52", + "@types/react-dom": "^18.2.18", + "axios": "^1.7.8", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.22.0", + "react-scripts": "5.0.1", + "typescript": "^4.9.5", + "web-vitals": "^3.5.2" + }, + "devDependencies": { + "@babel/plugin-proposal-private-property-in-object": "^7.21.11" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.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/compat-data": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", + "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/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==", + "license": "MIT" + }, + "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==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.9.tgz", + "integrity": "sha512-5UXfgpK0j0Xr/xIdgdLEhOFxaDZ0bRPWJJchRpqOSur/3rZoPbqqki5mm0p4NE2cs28krBEiSM2MB7//afRSQQ==", + "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.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@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-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==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", + "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.9", + "@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==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "license": "MIT", + "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.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.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==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", + "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.1.1", + "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==", + "license": "ISC", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "license": "MIT", + "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==", + "license": "MIT", + "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.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", + "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.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" + }, + "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/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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.", + "license": "MIT", + "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==", + "license": "MIT", + "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.", + "license": "MIT", + "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.", + "license": "MIT", + "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.", + "license": "MIT", + "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.", + "license": "MIT", + "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.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.", + "dev": true, + "license": "MIT", + "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/@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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", + "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^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-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==", + "license": "MIT", + "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.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", + "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", + "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^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-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==", + "license": "MIT", + "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.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.9.tgz", + "integrity": "sha512-/VVukELzPDdci7UUsWQaSkhgnjIWXnIyRpM02ldxaVoFK96c41So8JcKT3m0gYjyv7j5FNPGS5vfELrWalkbDA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-flow": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", + "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-simple-access": "^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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", + "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", + "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "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/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/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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "license": "MIT", + "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-typeof-symbol": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", + "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", + "license": "MIT", + "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-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", + "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", + "license": "MIT", + "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", + "@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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", + "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@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.25.9", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@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.25.9", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.25.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.25.9", + "@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.25.9", + "@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.25.9", + "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@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.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.38.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/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==", + "license": "MIT", + "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==", + "license": "ISC", + "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==", + "license": "MIT", + "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.25.9", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.25.9.tgz", + "integrity": "sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==", + "license": "MIT", + "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==", + "license": "MIT", + "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.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "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==", + "license": "MIT" + }, + "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==", + "license": "CC0-1.0" + }, + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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", + "@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.13.5", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.13.5.tgz", + "integrity": "sha512-Z3xbtJ+UcK76eWkagZ1onvn/wAVb1GOMuR15s30Fm2wrMgC7jzpnO2JZXr4eujTTqoQFUrZIw/rT0c6Zzjca1g==", + "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.13.5", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.5.tgz", + "integrity": "sha512-6zeCUxUH+EPF1s+YF/2hPVODeV/7V07YU5x+2tfuRL8MdW6rv5vb2+CBEGTGwBdux0OIERcOS+RzxeK80k2DsQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.13.5", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.1.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.13.5", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.13.5.tgz", + "integrity": "sha512-gnOQ+nGLPvDXgIx119JqGalys64lhMdnNQA9TMxhDA4K0Hq5+++OE20Zs5GxiCV9r814xQ2K5WmtofSpHVW6BQ==", + "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.1.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.1.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz", + "integrity": "sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==", + "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/@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==", + "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/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "license": "MIT", + "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" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "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==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "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" + }, + "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==", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.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", + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "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==", + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "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==", + "license": "ISC", + "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" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "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/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==", + "license": "MIT", + "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==", + "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==", + "license": "MIT" + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.16.8", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.8.tgz", + "integrity": "sha512-DARxShbBsWz6azwkTmv05rR7rJfcd9cXFsQtbcr24A+5esQBSnK2N3cbg/izlvuMGxonfWaysz/ae+6Ij9RAHQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/icons-material": { + "version": "5.16.8", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.16.8.tgz", + "integrity": "sha512-2HKzTsCPbNgJq2z4tI6sLDwxKXqiiPh6L3IhuB8w+ypShE/qAI4FZQfI2o93vysQnkPB4Rw3FKSwAJWTThhHQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@mui/material": "^5.0.0", + "@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": "5.16.8", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.16.8.tgz", + "integrity": "sha512-amnDx385shdQasC7wAk/oQjfti8N4wm0fLEcD7n5KXDZxn9Y+0VKEC+ieVseOUGuY5B2FqzdNfeVwUPTmUBszQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/core-downloads-tracker": "^5.16.8", + "@mui/system": "^5.16.8", + "@mui/types": "^7.2.15", + "@mui/utils": "^5.16.8", + "@popperjs/core": "^2.11.8", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^18.3.1", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.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", + "react-dom": "^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/private-theming": { + "version": "5.16.8", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.16.8.tgz", + "integrity": "sha512-3Vl9yFVLU6T3CFtxRMQTcJ60Ijv7wxQi4yjH92+9YXcsqvVspeIYoocqNoIV/1bXGYfyWu5zrCmwQVHaGY7bug==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.16.8", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.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": "5.16.8", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.8.tgz", + "integrity": "sha512-OFdgFf8JczSRs0kvWGdSn0ZeXxWrY0LITDPJ/nAtLEvUUTyrlFaO4il3SECX8ruzvf1VnAxHx4M/4mX9oOn9yA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.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": "5.16.8", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.8.tgz", + "integrity": "sha512-L32TaFDFpGIi1g6ysRtmhc9zDgrlxDXu3NlrGE8gAsQw/ziHrPdr0PNr20O0POUshA1q14W4dNZ/z0Nx2F9lhA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.16.8", + "@mui/styled-engine": "^5.16.8", + "@mui/types": "^7.2.15", + "@mui/utils": "^5.16.8", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.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.19", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.19.tgz", + "integrity": "sha512-6XpZEM/Q3epK9RN8ENoXuygnqUQxE+siN/6rGRi2iwJPgBUR25mphYQ9ZI87plGh58YoZ5pp40bFvKYOCDJ3tA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.16.8", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.8.tgz", + "integrity": "sha512-P/yb7BSWallQUeiNGxb+TM8epHteIUC8gzNTdPV2VfKhVY/EnGliHgt5np0GPkjQ7EzwDi/+gBevrAJtf+K94A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/types": "^7.2.15", + "@types/prop-types": "^15.7.12", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^18.3.1" + }, + "engines": { + "node": ">=12.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/@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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "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==", + "license": "MIT", + "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/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "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/@remix-run/router": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.21.0.tgz", + "integrity": "sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 10.0.0" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", + "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", + "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==", + "license": "MIT" + }, + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "Apache-2.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "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==", + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/axios": { + "version": "0.9.36", + "resolved": "https://registry.npmjs.org/@types/axios/-/axios-0.9.36.tgz", + "integrity": "sha512-NLOpedx9o+rxo/X5ChbdiX6mS1atE4WHmEEIcR9NLenRVa5HoVjAvjafwU3FPTqnZEstpoqCaW7fagqSoTDNeg==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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.2", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.2.tgz", + "integrity": "sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.15", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", + "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "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==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.17.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.9.tgz", + "integrity": "sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.17", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", + "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.11", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.11.tgz", + "integrity": "sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==", + "license": "MIT", + "dependencies": { + "@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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.5.13", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", + "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "license": "ISC" + }, + "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==", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "Apache-2.0", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "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==", + "license": "BSD-3-Clause" + }, + "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==", + "license": "Apache-2.0" + }, + "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", + "license": "BSD-3-Clause" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "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==", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "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==", + "license": "MIT", + "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==", + "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/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "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" + ], + "license": "Apache-2.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" + ], + "license": "Apache-2.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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "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==", + "license": "MIT" + }, + "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==", + "license": "ISC", + "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==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "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.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "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==", + "license": "MIT", + "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.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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/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==", + "license": "ISC", + "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" + } + ], + "license": "MIT", + "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==", + "license": "MIT", + "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" + } + }, + "node_modules/axios": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.8.tgz", + "integrity": "sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==", + "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.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", + "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "license": "MIT", + "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-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/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/bfj": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", + "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "ISC" + }, + "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==", + "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==", + "license": "MIT", + "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==", + "license": "BSD-2-Clause" + }, + "node_modules/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "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==", + "license": "Apache-2.0", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.30001684", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz", + "integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==", + "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" + } + ], + "license": "CC-BY-4.0" + }, + "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==", + "license": "MIT", + "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==", + "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/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==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "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==", + "license": "ISC", + "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==", + "license": "MIT", + "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" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", + "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "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/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "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==", + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "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/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", + "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "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==", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "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": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/core-js": { + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.39.0.tgz", + "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", + "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.39.0.tgz", + "integrity": "sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==", + "hasInstallScript": true, + "license": "MIT", + "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==", + "license": "MIT" + }, + "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/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "ISC", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "CC0-1.0", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "BSD-2-Clause", + "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" + } + ], + "license": "CC0-1.0" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0" + }, + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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/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-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "license": "MIT", + "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.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "license": "MIT" + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "license": "MIT" + }, + "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==", + "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==", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, + "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-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", + "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/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" + } + ], + "license": "BSD-2-Clause" + }, + "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", + "license": "MIT", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "BSD-2-Clause" + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.67", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.67.tgz", + "integrity": "sha512-nz88NNBsD7kQSAGGJyp8hS6xSPtWwqNogA0mjtc2nUYeEf3nURK9qpV18TuBdDmEDgVWotS8Wkzf+V52dSQ/LQ==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.23.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", + "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "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==", + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "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-iterator-helpers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", + "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.3", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "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==", + "license": "MIT", + "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/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT" + }, + "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/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "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==", + "license": "BSD-3-Clause", + "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.", + "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", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "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", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "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" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.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" + }, + "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" + }, + "peerDependenciesMeta": { + "eslint": { + "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.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.1.0", + "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.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "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==", + "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" + } + }, + "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==", + "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" + } + }, + "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==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.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==", + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.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==", + "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/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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.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==", + "license": "BSD-2-Clause", + "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==", + "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==", + "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==", + "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==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "license": "MIT", + "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.10", + "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" + } + }, + "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==", + "license": "MIT", + "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==", + "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==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "license": "MIT", + "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.4" + }, + "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==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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==", + "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==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "license": "ISC", + "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==", + "license": "Apache-2.0", + "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==", + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "Apache-2.0", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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_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": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "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/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "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==", + "license": "ISC", + "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==", + "license": "ISC", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.2.tgz", + "integrity": "sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "Unlicense" + }, + "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==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "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/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "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==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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", + "license": "ISC", + "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==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "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==", + "license": "BSD-2-Clause" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "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==", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.1.0.tgz", + "integrity": "sha512-FQoVQnqcdk4hVM4JN1eromaun4iuS34oStkdlLENLdpULsuQcTyXj8w7ayhuUfPwEYZ1ZOooOTT6fdA9Vmx/RA==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "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==", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "(Apache-2.0 OR MPL-1.1)" + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "license": "MIT", + "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==", + "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==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "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/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "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/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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" + } + ], + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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" + } + ], + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "Apache-2.0", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "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==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "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==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "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/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "license": "MIT", + "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==", + "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.", + "license": "ISC", + "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==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "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==", + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "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==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz", + "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.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==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.0.tgz", + "integrity": "sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "gopd": "^1.1.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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "ISC", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + }, + "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==", + "license": "BlueOak-1.0.0", + "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==", + "license": "Apache-2.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "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": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "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==", + "license": "MIT", + "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.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "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==", + "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": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "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==", + "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==", + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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" + } + }, + "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==", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.9.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", + "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "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.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "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==", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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==", + "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/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "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==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "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==", + "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==", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "ISC", + "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==", + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "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==", + "license": "CC0-1.0" + }, + "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==", + "license": "MIT", + "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==", + "license": "Unlicense", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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" + } + }, + "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/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "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==", + "license": "ISC", + "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==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "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/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==", + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "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==", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "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==", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "BSD-2-Clause", + "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==", + "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/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "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==", + "license": "MIT", + "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.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "license": "MIT", + "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/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "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": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "BlueOak-1.0.0" + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "license": "MIT" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "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==", + "license": "MIT", + "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==", + "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-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "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==", + "license": "ISC" + }, + "node_modules/path-to-regexp": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "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==", + "license": "MIT" + }, + "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/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "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.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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" + } + ], + "license": "MIT", + "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.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", + "license": "ISC", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.1.0.tgz", + "integrity": "sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==", + "license": "MIT", + "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.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "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==", + "license": "ISC", + "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.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "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==", + "license": "ISC", + "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" + } + ], + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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" + } + ], + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0" + }, + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "asap": "~2.0.6" + } + }, + "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==", + "license": "MIT", + "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", + "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/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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "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/psl": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.14.0.tgz", + "integrity": "sha512-Syk1bnf6fRZ9wQs03AtKJHcM12cKbOLo9L8JtCCdYj5/DTsHmTyXM4BK5ouWeG2P6kZ4nmFvuNTdtaqfobCOCg==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "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)", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT" + }, + "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" + } + ], + "license": "MIT" + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "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/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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==", + "license": "MIT" + }, + "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==", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.28.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.28.0.tgz", + "integrity": "sha512-HrYdIFqdrnhDw0PqG/AKjAqEqM7AvxCz0DQ4h2W8k6nqmc5uRBYDag0SBxx9iYz5G8gnuNVLzUe13wl9eAsXXg==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.21.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.28.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.28.0.tgz", + "integrity": "sha512-kQ7Unsl5YdyOltsPGl31zOjLrDv+m2VcIEcIHqYYD3Lp0UppLjrzcfJqDJwXxFw3TH/yvapbnUvPlAj7Kx5nbg==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.21.0", + "react-router": "6.28.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "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/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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.7.tgz", + "integrity": "sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "which-builtin-type": "^1.1.4" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "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/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==", + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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/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==", + "license": "MIT", + "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" + }, + "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/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "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", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "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" + } + ], + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "CC0-1.0" + }, + "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==", + "license": "MIT", + "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==", + "license": "ISC" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "license": "ISC", + "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.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "license": "MIT", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "ISC" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "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==", + "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==", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.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==", + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "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==", + "license": "MIT" + }, + "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==", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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", + "license": "MIT" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause" + }, + "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", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "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", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "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.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "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==", + "license": "MIT", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "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==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "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==", + "license": "MIT" + }, + "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.", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "BSD-2-Clause" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/tailwindcss": { + "version": "3.4.15", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.15.tgz", + "integrity": "sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw==", + "license": "MIT", + "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": "^2.1.0", + "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/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "(MIT OR CC0-1.0)", + "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==", + "license": "MIT", + "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.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "license": "BSD-2-Clause", + "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.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "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-webpack-plugin/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==", + "license": "MIT", + "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/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==", + "license": "MIT" + }, + "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==", + "license": "ISC", + "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==", + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "license": "MIT" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "license": "BSD-3-Clause" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "Apache-2.0" + }, + "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" + } + }, + "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/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==", + "license": "0BSD" + }, + "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==", + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "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==", + "license": "MIT", + "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==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "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==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz", + "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "reflect.getprototypeof": "^1.0.6" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "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==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "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==", + "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==", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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" + } + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "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.", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "Apache-2.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-vitals": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-3.5.2.tgz", + "integrity": "sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==", + "license": "Apache-2.0" + }, + "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==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.96.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", + "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.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": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "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==", + "license": "MIT", + "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" + }, + "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==", + "license": "MIT", + "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" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webpack/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==", + "license": "MIT", + "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/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", + "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==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.0.tgz", + "integrity": "sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "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==", + "license": "MIT", + "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.16", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.16.tgz", + "integrity": "sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "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==", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "BSD-2-Clause" + }, + "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==", + "license": "MIT", + "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", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/workbox-expiration": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "license": "MIT", + "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", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "ISC" + }, + "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==", + "license": "ISC", + "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==", + "license": "MIT", + "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==", + "license": "Apache-2.0" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "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==", + "license": "ISC" + }, + "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/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", + "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" + }, + "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==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/client/package.json b/client/package.json new file mode 100644 index 0000000..1d8746c --- /dev/null +++ b/client/package.json @@ -0,0 +1,51 @@ +{ + "name": "client", + "version": "0.1.0", + "private": true, + "dependencies": { + "@emotion/react": "^11.11.3", + "@emotion/styled": "^11.11.0", + "@mui/icons-material": "^5.15.6", + "@mui/material": "^5.15.6", + "@mui/system": "^5.15.6", + "@mui/types": "^7.2.13", + "@types/axios": "^0.9.36", + "@types/node": "^20.11.16", + "@types/react": "^18.2.52", + "@types/react-dom": "^18.2.18", + "axios": "^1.7.8", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.22.0", + "react-scripts": "5.0.1", + "typescript": "^4.9.5", + "web-vitals": "^3.5.2" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "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" + ] + }, + "devDependencies": { + "@babel/plugin-proposal-private-property-in-object": "^7.21.11" + } +} diff --git a/client/public/favicon.ico b/client/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/client/public/index.html b/client/public/index.html new file mode 100644 index 0000000..54e27ab --- /dev/null +++ b/client/public/index.html @@ -0,0 +1,14 @@ + + + + + + + + Blackhole UI + + + +
+ + \ No newline at end of file diff --git a/client/public/logo192.png b/client/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 zcmZWtbyO6NvR-oO24RV%BvuJ&=?+<7=`LvyB&A_#M7mSDYw1v6DJkiYl9XjT!%$dLEBTQ8R9|wd3008in6lFF3GV-6mLi?MoP_y~}QUnaDCHI#t z7w^m$@6DI)|C8_jrT?q=f8D?0AM?L)Z}xAo^e^W>t$*Y0KlT5=@bBjT9kxb%-KNdk zeOS1tKO#ChhG7%{ApNBzE2ZVNcxbrin#E1TiAw#BlUhXllzhN$qWez5l;h+t^q#Eav8PhR2|T}y5kkflaK`ba-eoE+Z2q@o6P$)=&` z+(8}+-McnNO>e#$Rr{32ngsZIAX>GH??tqgwUuUz6kjns|LjsB37zUEWd|(&O!)DY zQLrq%Y>)Y8G`yYbYCx&aVHi@-vZ3|ebG!f$sTQqMgi0hWRJ^Wc+Ibv!udh_r%2|U) zPi|E^PK?UE!>_4`f`1k4hqqj_$+d!EB_#IYt;f9)fBOumGNyglU(ofY`yHq4Y?B%- zp&G!MRY<~ajTgIHErMe(Z8JG*;D-PJhd@RX@QatggM7+G(Lz8eZ;73)72Hfx5KDOE zkT(m}i2;@X2AT5fW?qVp?@WgN$aT+f_6eo?IsLh;jscNRp|8H}Z9p_UBO^SJXpZew zEK8fz|0Th%(Wr|KZBGTM4yxkA5CFdAj8=QSrT$fKW#tweUFqr0TZ9D~a5lF{)%-tTGMK^2tz(y2v$i%V8XAxIywrZCp=)83p(zIk6@S5AWl|Oa2hF`~~^W zI;KeOSkw1O#TiQ8;U7OPXjZM|KrnN}9arP)m0v$c|L)lF`j_rpG(zW1Qjv$=^|p*f z>)Na{D&>n`jOWMwB^TM}slgTEcjxTlUby89j1)|6ydRfWERn3|7Zd2&e7?!K&5G$x z`5U3uFtn4~SZq|LjFVrz$3iln-+ucY4q$BC{CSm7Xe5c1J<=%Oagztj{ifpaZk_bQ z9Sb-LaQMKp-qJA*bP6DzgE3`}*i1o3GKmo2pn@dj0;He}F=BgINo};6gQF8!n0ULZ zL>kC0nPSFzlcB7p41doao2F7%6IUTi_+!L`MM4o*#Y#0v~WiO8uSeAUNp=vA2KaR&=jNR2iVwG>7t%sG2x_~yXzY)7K& zk3p+O0AFZ1eu^T3s};B%6TpJ6h-Y%B^*zT&SN7C=N;g|#dGIVMSOru3iv^SvO>h4M=t-N1GSLLDqVTcgurco6)3&XpU!FP6Hlrmj}f$ zp95;b)>M~`kxuZF3r~a!rMf4|&1=uMG$;h^g=Kl;H&Np-(pFT9FF@++MMEx3RBsK?AU0fPk-#mdR)Wdkj)`>ZMl#^<80kM87VvsI3r_c@_vX=fdQ`_9-d(xiI z4K;1y1TiPj_RPh*SpDI7U~^QQ?%0&!$Sh#?x_@;ag)P}ZkAik{_WPB4rHyW#%>|Gs zdbhyt=qQPA7`?h2_8T;-E6HI#im9K>au*(j4;kzwMSLgo6u*}-K`$_Gzgu&XE)udQ zmQ72^eZd|vzI)~!20JV-v-T|<4@7ruqrj|o4=JJPlybwMg;M$Ud7>h6g()CT@wXm` zbq=A(t;RJ^{Xxi*Ff~!|3!-l_PS{AyNAU~t{h;(N(PXMEf^R(B+ZVX3 z8y0;0A8hJYp@g+c*`>eTA|3Tgv9U8#BDTO9@a@gVMDxr(fVaEqL1tl?md{v^j8aUv zm&%PX4^|rX|?E4^CkplWWNv*OKM>DxPa z!RJ)U^0-WJMi)Ksc!^ixOtw^egoAZZ2Cg;X7(5xZG7yL_;UJ#yp*ZD-;I^Z9qkP`} zwCTs0*%rIVF1sgLervtnUo&brwz?6?PXRuOCS*JI-WL6GKy7-~yi0giTEMmDs_-UX zo=+nFrW_EfTg>oY72_4Z0*uG>MnXP=c0VpT&*|rvv1iStW;*^={rP1y?Hv+6R6bxFMkxpWkJ>m7Ba{>zc_q zEefC3jsXdyS5??Mz7IET$Kft|EMNJIv7Ny8ZOcKnzf`K5Cd)&`-fTY#W&jnV0l2vt z?Gqhic}l}mCv1yUEy$%DP}4AN;36$=7aNI^*AzV(eYGeJ(Px-j<^gSDp5dBAv2#?; zcMXv#aj>%;MiG^q^$0MSg-(uTl!xm49dH!{X0){Ew7ThWV~Gtj7h%ZD zVN-R-^7Cf0VH!8O)uUHPL2mO2tmE*cecwQv_5CzWeh)ykX8r5Hi`ehYo)d{Jnh&3p z9ndXT$OW51#H5cFKa76c<%nNkP~FU93b5h-|Cb}ScHs@4Q#|}byWg;KDMJ#|l zE=MKD*F@HDBcX@~QJH%56eh~jfPO-uKm}~t7VkHxHT;)4sd+?Wc4* z>CyR*{w@4(gnYRdFq=^(#-ytb^5ESD?x<0Skhb%Pt?npNW1m+Nv`tr9+qN<3H1f<% zZvNEqyK5FgPsQ`QIu9P0x_}wJR~^CotL|n zk?dn;tLRw9jJTur4uWoX6iMm914f0AJfB@C74a;_qRrAP4E7l890P&{v<}>_&GLrW z)klculcg`?zJO~4;BBAa=POU%aN|pmZJn2{hA!d!*lwO%YSIzv8bTJ}=nhC^n}g(ld^rn#kq9Z3)z`k9lvV>y#!F4e{5c$tnr9M{V)0m(Z< z#88vX6-AW7T2UUwW`g<;8I$Jb!R%z@rCcGT)-2k7&x9kZZT66}Ztid~6t0jKb&9mm zpa}LCb`bz`{MzpZR#E*QuBiZXI#<`5qxx=&LMr-UUf~@dRk}YI2hbMsAMWOmDzYtm zjof16D=mc`^B$+_bCG$$@R0t;e?~UkF?7<(vkb70*EQB1rfUWXh$j)R2)+dNAH5%R zEBs^?N;UMdy}V};59Gu#0$q53$}|+q7CIGg_w_WlvE}AdqoS<7DY1LWS9?TrfmcvT zaypmplwn=P4;a8-%l^e?f`OpGb}%(_mFsL&GywhyN(-VROj`4~V~9bGv%UhcA|YW% zs{;nh@aDX11y^HOFXB$a7#Sr3cEtNd4eLm@Y#fc&j)TGvbbMwze zXtekX_wJqxe4NhuW$r}cNy|L{V=t#$%SuWEW)YZTH|!iT79k#?632OFse{+BT_gau zJwQcbH{b}dzKO?^dV&3nTILYlGw{27UJ72ZN){BILd_HV_s$WfI2DC<9LIHFmtyw? zQ;?MuK7g%Ym+4e^W#5}WDLpko%jPOC=aN)3!=8)s#Rnercak&b3ESRX3z{xfKBF8L z5%CGkFmGO@x?_mPGlpEej!3!AMddChabyf~nJNZxx!D&{@xEb!TDyvqSj%Y5@A{}9 zRzoBn0?x}=krh{ok3Nn%e)#~uh;6jpezhA)ySb^b#E>73e*frBFu6IZ^D7Ii&rsiU z%jzygxT-n*joJpY4o&8UXr2s%j^Q{?e-voloX`4DQyEK+DmrZh8A$)iWL#NO9+Y@!sO2f@rI!@jN@>HOA< z?q2l{^%mY*PNx2FoX+A7X3N}(RV$B`g&N=e0uvAvEN1W^{*W?zT1i#fxuw10%~))J zjx#gxoVlXREWZf4hRkgdHx5V_S*;p-y%JtGgQ4}lnA~MBz-AFdxUxU1RIT$`sal|X zPB6sEVRjGbXIP0U+?rT|y5+ev&OMX*5C$n2SBPZr`jqzrmpVrNciR0e*Wm?fK6DY& zl(XQZ60yWXV-|Ps!A{EF;=_z(YAF=T(-MkJXUoX zI{UMQDAV2}Ya?EisdEW;@pE6dt;j0fg5oT2dxCi{wqWJ<)|SR6fxX~5CzblPGr8cb zUBVJ2CQd~3L?7yfTpLNbt)He1D>*KXI^GK%<`bq^cUq$Q@uJifG>p3LU(!H=C)aEL zenk7pVg}0{dKU}&l)Y2Y2eFMdS(JS0}oZUuVaf2+K*YFNGHB`^YGcIpnBlMhO7d4@vV zv(@N}(k#REdul8~fP+^F@ky*wt@~&|(&&meNO>rKDEnB{ykAZ}k>e@lad7to>Ao$B zz<1(L=#J*u4_LB=8w+*{KFK^u00NAmeNN7pr+Pf+N*Zl^dO{LM-hMHyP6N!~`24jd zXYP|Ze;dRXKdF2iJG$U{k=S86l@pytLx}$JFFs8e)*Vi?aVBtGJ3JZUj!~c{(rw5>vuRF$`^p!P8w1B=O!skwkO5yd4_XuG^QVF z`-r5K7(IPSiKQ2|U9+`@Js!g6sfJwAHVd|s?|mnC*q zp|B|z)(8+mxXyxQ{8Pg3F4|tdpgZZSoU4P&9I8)nHo1@)9_9u&NcT^FI)6|hsAZFk zZ+arl&@*>RXBf-OZxhZerOr&dN5LW9@gV=oGFbK*J+m#R-|e6(Loz(;g@T^*oO)0R zN`N=X46b{7yk5FZGr#5&n1!-@j@g02g|X>MOpF3#IjZ_4wg{dX+G9eqS+Es9@6nC7 zD9$NuVJI}6ZlwtUm5cCAiYv0(Yi{%eH+}t)!E^>^KxB5^L~a`4%1~5q6h>d;paC9c zTj0wTCKrhWf+F#5>EgX`sl%POl?oyCq0(w0xoL?L%)|Q7d|Hl92rUYAU#lc**I&^6p=4lNQPa0 znQ|A~i0ip@`B=FW-Q;zh?-wF;Wl5!+q3GXDu-x&}$gUO)NoO7^$BeEIrd~1Dh{Tr` z8s<(Bn@gZ(mkIGnmYh_ehXnq78QL$pNDi)|QcT*|GtS%nz1uKE+E{7jdEBp%h0}%r zD2|KmYGiPa4;md-t_m5YDz#c*oV_FqXd85d@eub?9N61QuYcb3CnVWpM(D-^|CmkL z(F}L&N7qhL2PCq)fRh}XO@U`Yn<?TNGR4L(mF7#4u29{i~@k;pLsgl({YW5`Mo+p=zZn3L*4{JU;++dG9 X@eDJUQo;Ye2mwlRs?y0|+_a0zY+Zo%Dkae}+MySoIppb75o?vUW_?)>@g{U2`ERQIXV zeY$JrWnMZ$QC<=ii4X|@0H8`si75jB(ElJb00HAB%>SlLR{!zO|C9P3zxw_U8?1d8uRZ=({Ga4shyN}3 zAK}WA(ds|``G4jA)9}Bt2Hy0+f3rV1E6b|@?hpGA=PI&r8)ah|)I2s(P5Ic*Ndhn^ z*T&j@gbCTv7+8rpYbR^Ty}1AY)YH;p!m948r#%7x^Z@_-w{pDl|1S4`EM3n_PaXvK z1JF)E3qy$qTj5Xs{jU9k=y%SQ0>8E$;x?p9ayU0bZZeo{5Z@&FKX>}s!0+^>C^D#z z>xsCPvxD3Z=dP}TTOSJhNTPyVt14VCQ9MQFN`rn!c&_p?&4<5_PGm4a;WS&1(!qKE z_H$;dDdiPQ!F_gsN`2>`X}$I=B;={R8%L~`>RyKcS$72ai$!2>d(YkciA^J0@X%G4 z4cu!%Ps~2JuJ8ex`&;Fa0NQOq_nDZ&X;^A=oc1&f#3P1(!5il>6?uK4QpEG8z0Rhu zvBJ+A9RV?z%v?!$=(vcH?*;vRs*+PPbOQ3cdPr5=tOcLqmfx@#hOqX0iN)wTTO21jH<>jpmwRIAGw7`a|sl?9y9zRBh>(_%| zF?h|P7}~RKj?HR+q|4U`CjRmV-$mLW>MScKnNXiv{vD3&2@*u)-6P@h0A`eeZ7}71 zK(w%@R<4lLt`O7fs1E)$5iGb~fPfJ?WxhY7c3Q>T-w#wT&zW522pH-B%r5v#5y^CF zcC30Se|`D2mY$hAlIULL%-PNXgbbpRHgn<&X3N9W!@BUk@9g*P5mz-YnZBb*-$zMM z7Qq}ic0mR8n{^L|=+diODdV}Q!gwr?y+2m=3HWwMq4z)DqYVg0J~^}-%7rMR@S1;9 z7GFj6K}i32X;3*$SmzB&HW{PJ55kT+EI#SsZf}bD7nW^Haf}_gXciYKX{QBxIPSx2Ma? zHQqgzZq!_{&zg{yxqv3xq8YV+`S}F6A>Gtl39_m;K4dA{pP$BW0oIXJ>jEQ!2V3A2 zdpoTxG&V=(?^q?ZTj2ZUpDUdMb)T?E$}CI>r@}PFPWD9@*%V6;4Ag>D#h>!s)=$0R zRXvdkZ%|c}ubej`jl?cS$onl9Tw52rBKT)kgyw~Xy%z62Lr%V6Y=f?2)J|bZJ5(Wx zmji`O;_B+*X@qe-#~`HFP<{8$w@z4@&`q^Q-Zk8JG3>WalhnW1cvnoVw>*R@c&|o8 zZ%w!{Z+MHeZ*OE4v*otkZqz11*s!#s^Gq>+o`8Z5 z^i-qzJLJh9!W-;SmFkR8HEZJWiXk$40i6)7 zZpr=k2lp}SasbM*Nbn3j$sn0;rUI;%EDbi7T1ZI4qL6PNNM2Y%6{LMIKW+FY_yF3) zSKQ2QSujzNMSL2r&bYs`|i2Dnn z=>}c0>a}>|uT!IiMOA~pVT~R@bGlm}Edf}Kq0?*Af6#mW9f9!}RjW7om0c9Qlp;yK z)=XQs(|6GCadQbWIhYF=rf{Y)sj%^Id-ARO0=O^Ad;Ph+ z0?$eE1xhH?{T$QI>0JP75`r)U_$#%K1^BQ8z#uciKf(C701&RyLQWBUp*Q7eyn76} z6JHpC9}R$J#(R0cDCkXoFSp;j6{x{b&0yE@P7{;pCEpKjS(+1RQy38`=&Yxo%F=3y zCPeefABp34U-s?WmU#JJw23dcC{sPPFc2#J$ZgEN%zod}J~8dLm*fx9f6SpO zn^Ww3bt9-r0XaT2a@Wpw;C23XM}7_14#%QpubrIw5aZtP+CqIFmsG4`Cm6rfxl9n5 z7=r2C-+lM2AB9X0T_`?EW&Byv&K?HS4QLoylJ|OAF z`8atBNTzJ&AQ!>sOo$?^0xj~D(;kS$`9zbEGd>f6r`NC3X`tX)sWgWUUOQ7w=$TO&*j;=u%25ay-%>3@81tGe^_z*C7pb9y*Ed^H3t$BIKH2o+olp#$q;)_ zfpjCb_^VFg5fU~K)nf*d*r@BCC>UZ!0&b?AGk_jTPXaSnCuW110wjHPPe^9R^;jo3 zwvzTl)C`Zl5}O2}3lec=hZ*$JnkW#7enKKc)(pM${_$9Hc=Sr_A9Biwe*Y=T?~1CK z6eZ9uPICjy-sMGbZl$yQmpB&`ouS8v{58__t0$JP%i3R&%QR3ianbZqDs<2#5FdN@n5bCn^ZtH992~5k(eA|8|@G9u`wdn7bnpg|@{m z^d6Y`*$Zf2Xr&|g%sai#5}Syvv(>Jnx&EM7-|Jr7!M~zdAyjt*xl;OLhvW-a%H1m0 z*x5*nb=R5u><7lyVpNAR?q@1U59 zO+)QWwL8t zyip?u_nI+K$uh{y)~}qj?(w0&=SE^8`_WMM zTybjG=999h38Yes7}-4*LJ7H)UE8{mE(6;8voE+TYY%33A>S6`G_95^5QHNTo_;Ao ztIQIZ_}49%{8|=O;isBZ?=7kfdF8_@azfoTd+hEJKWE!)$)N%HIe2cplaK`ry#=pV z0q{9w-`i0h@!R8K3GC{ivt{70IWG`EP|(1g7i_Q<>aEAT{5(yD z=!O?kq61VegV+st@XCw475j6vS)_z@efuqQgHQR1T4;|-#OLZNQJPV4k$AX1Uk8Lm z{N*b*ia=I+MB}kWpupJ~>!C@xEN#Wa7V+7{m4j8c?)ChV=D?o~sjT?0C_AQ7B-vxqX30s0I_`2$in86#`mAsT-w?j{&AL@B3$;P z31G4(lV|b}uSDCIrjk+M1R!X7s4Aabn<)zpgT}#gE|mIvV38^ODy@<&yflpCwS#fRf9ZX3lPV_?8@C5)A;T zqmouFLFk;qIs4rA=hh=GL~sCFsXHsqO6_y~*AFt939UYVBSx1s(=Kb&5;j7cSowdE;7()CC2|-i9Zz+_BIw8#ll~-tyH?F3{%`QCsYa*b#s*9iCc`1P1oC26?`g<9))EJ3%xz+O!B3 zZ7$j~To)C@PquR>a1+Dh>-a%IvH_Y7^ys|4o?E%3`I&ADXfC8++hAdZfzIT#%C+Jz z1lU~K_vAm0m8Qk}K$F>|>RPK%<1SI0(G+8q~H zAsjezyP+u!Se4q3GW)`h`NPSRlMoBjCzNPesWJwVTY!o@G8=(6I%4XHGaSiS3MEBK zhgGFv6Jc>L$4jVE!I?TQuwvz_%CyO!bLh94nqK11C2W$*aa2ueGopG8DnBICVUORP zgytv#)49fVXDaR$SukloYC3u7#5H)}1K21=?DKj^U)8G;MS)&Op)g^zR2($<>C*zW z;X7`hLxiIO#J`ANdyAOJle4V%ppa*(+0i3w;8i*BA_;u8gOO6)MY`ueq7stBMJTB; z-a0R>hT*}>z|Gg}@^zDL1MrH+2hsR8 zHc}*9IvuQC^Ju)^#Y{fOr(96rQNPNhxc;mH@W*m206>Lo<*SaaH?~8zg&f&%YiOEG zGiz?*CP>Bci}!WiS=zj#K5I}>DtpregpP_tfZtPa(N<%vo^#WCQ5BTv0vr%Z{)0q+ z)RbfHktUm|lg&U3YM%lMUM(fu}i#kjX9h>GYctkx9Mt_8{@s%!K_EI zScgwy6%_fR?CGJQtmgNAj^h9B#zmaMDWgH55pGuY1Gv7D z;8Psm(vEPiwn#MgJYu4Ty9D|h!?Rj0ddE|&L3S{IP%H4^N!m`60ZwZw^;eg4sk6K{ ziA^`Sbl_4~f&Oo%n;8Ye(tiAdlZKI!Z=|j$5hS|D$bDJ}p{gh$KN&JZYLUjv4h{NY zBJ>X9z!xfDGY z+oh_Z&_e#Q(-}>ssZfm=j$D&4W4FNy&-kAO1~#3Im;F)Nwe{(*75(p=P^VI?X0GFakfh+X-px4a%Uw@fSbmp9hM1_~R>?Z8+ ziy|e9>8V*`OP}4x5JjdWp}7eX;lVxp5qS}0YZek;SNmm7tEeSF*-dI)6U-A%m6YvCgM(}_=k#a6o^%-K4{`B1+}O4x zztDT%hVb;v#?j`lTvlFQ3aV#zkX=7;YFLS$uIzb0E3lozs5`Xy zi~vF+%{z9uLjKvKPhP%x5f~7-Gj+%5N`%^=yk*Qn{`> z;xj&ROY6g`iy2a@{O)V(jk&8#hHACVDXey5a+KDod_Z&}kHM}xt7}Md@pil{2x7E~ zL$k^d2@Ec2XskjrN+IILw;#7((abu;OJii&v3?60x>d_Ma(onIPtcVnX@ELF0aL?T zSmWiL3(dOFkt!x=1O!_0n(cAzZW+3nHJ{2S>tgSK?~cFha^y(l@-Mr2W$%MN{#af8J;V*>hdq!gx=d0h$T7l}>91Wh07)9CTX zh2_ZdQCyFOQ)l(}gft0UZG`Sh2`x-w`5vC2UD}lZs*5 zG76$akzn}Xi))L3oGJ75#pcN=cX3!=57$Ha=hQ2^lwdyU#a}4JJOz6ddR%zae%#4& za)bFj)z=YQela(F#Y|Q#dp}PJghITwXouVaMq$BM?K%cXn9^Y@g43$=O)F&ZlOUom zJiad#dea;-eywBA@e&D6Pdso1?2^(pXiN91?jvcaUyYoKUmvl5G9e$W!okWe*@a<^ z8cQQ6cNSf+UPDx%?_G4aIiybZHHagF{;IcD(dPO!#=u zWfqLcPc^+7Uu#l(Bpxft{*4lv#*u7X9AOzDO z1D9?^jIo}?%iz(_dwLa{ex#T}76ZfN_Z-hwpus9y+4xaUu9cX}&P{XrZVWE{1^0yw zO;YhLEW!pJcbCt3L8~a7>jsaN{V3>tz6_7`&pi%GxZ=V3?3K^U+*ryLSb)8^IblJ0 zSRLNDvIxt)S}g30?s_3NX>F?NKIGrG_zB9@Z>uSW3k2es_H2kU;Rnn%j5qP)!XHKE zPB2mHP~tLCg4K_vH$xv`HbRsJwbZMUV(t=ez;Ec(vyHH)FbfLg`c61I$W_uBB>i^r z&{_P;369-&>23R%qNIULe=1~T$(DA`ev*EWZ6j(B$(te}x1WvmIll21zvygkS%vwG zzkR6Z#RKA2!z!C%M!O>!=Gr0(J0FP=-MN=5t-Ir)of50y10W}j`GtRCsXBakrKtG& zazmITDJMA0C51&BnLY)SY9r)NVTMs);1<=oosS9g31l{4ztjD3#+2H7u_|66b|_*O z;Qk6nalpqdHOjx|K&vUS_6ITgGll;TdaN*ta=M_YtyC)I9Tmr~VaPrH2qb6sd~=AcIxV+%z{E&0@y=DPArw zdV7z(G1hBx7hd{>(cr43^WF%4Y@PXZ?wPpj{OQ#tvc$pABJbvPGvdR`cAtHn)cSEV zrpu}1tJwQ3y!mSmH*uz*x0o|CS<^w%&KJzsj~DU0cLQUxk5B!hWE>aBkjJle8z~;s z-!A=($+}Jq_BTK5^B!`R>!MulZN)F=iXXeUd0w5lUsE5VP*H*oCy(;?S$p*TVvTxwAeWFB$jHyb0593)$zqalVlDX=GcCN1gU0 zlgU)I$LcXZ8Oyc2TZYTPu@-;7<4YYB-``Qa;IDcvydIA$%kHhJKV^m*-zxcvU4viy&Kr5GVM{IT>WRywKQ9;>SEiQD*NqplK-KK4YR`p0@JW)n_{TU3bt0 zim%;(m1=#v2}zTps=?fU5w^(*y)xT%1vtQH&}50ZF!9YxW=&7*W($2kgKyz1mUgfs zfV<*XVVIFnohW=|j+@Kfo!#liQR^x>2yQdrG;2o8WZR+XzU_nG=Ed2rK?ntA;K5B{ z>M8+*A4!Jm^Bg}aW?R?6;@QG@uQ8&oJ{hFixcfEnJ4QH?A4>P=q29oDGW;L;= z9-a0;g%c`C+Ai!UmK$NC*4#;Jp<1=TioL=t^YM)<<%u#hnnfSS`nq63QKGO1L8RzX z@MFDqs1z ztYmxDl@LU)5acvHk)~Z`RW7=aJ_nGD!mOSYD>5Odjn@TK#LY{jf?+piB5AM-CAoT_ z?S-*q7}wyLJzK>N%eMPuFgN)Q_otKP;aqy=D5f!7<=n(lNkYRXVpkB{TAYLYg{|(jtRqYmg$xH zjmq?B(RE4 zQx^~Pt}gxC2~l=K$$-sYy_r$CO(d=+b3H1MB*y_5g6WLaWTXn+TKQ|hNY^>Mp6k*$ zwkovomhu776vQATqT4blf~g;TY(MWCrf^^yfWJvSAB$p5l;jm@o#=!lqw+Lqfq>X= z$6~kxfm7`3q4zUEB;u4qa#BdJxO!;xGm)wwuisj{0y2x{R(IGMrsIzDY9LW>m!Y`= z04sx3IjnYvL<4JqxQ8f7qYd0s2Ig%`ytYPEMKI)s(LD}D@EY>x`VFtqvnADNBdeao zC96X+MxnwKmjpg{U&gP3HE}1=s!lv&D{6(g_lzyF3A`7Jn*&d_kL<;dAFx!UZ>hB8 z5A*%LsAn;VLp>3${0>M?PSQ)9s3}|h2e?TG4_F{}{Cs>#3Q*t$(CUc}M)I}8cPF6% z=+h(Kh^8)}gj(0}#e7O^FQ6`~fd1#8#!}LMuo3A0bN`o}PYsm!Y}sdOz$+Tegc=qT z8x`PH$7lvnhJp{kHWb22l;@7B7|4yL4UOOVM0MP_>P%S1Lnid)+k9{+3D+JFa#Pyf zhVc#&df87APl4W9X)F3pGS>@etfl=_E5tBcVoOfrD4hmVeTY-cj((pkn%n@EgN{0f zwb_^Rk0I#iZuHK!l*lN`ceJn(sI{$Fq6nN& zE<-=0_2WN}m+*ivmIOxB@#~Q-cZ>l136w{#TIJe478`KE7@=a{>SzPHsKLzYAyBQO zAtuuF$-JSDy_S@6GW0MOE~R)b;+0f%_NMrW(+V#c_d&U8Z9+ec4=HmOHw?gdjF(Lu zzra83M_BoO-1b3;9`%&DHfuUY)6YDV21P$C!Rc?mv&{lx#f8oc6?0?x zK08{WP65?#>(vPfA-c=MCY|%*1_<3D4NX zeVTi-JGl2uP_2@0F{G({pxQOXt_d{g_CV6b?jNpfUG9;8yle-^4KHRvZs-_2siata zt+d_T@U$&t*xaD22(fH(W1r$Mo?3dc%Tncm=C6{V9y{v&VT#^1L04vDrLM9qBoZ4@ z6DBN#m57hX7$C(=#$Y5$bJmwA$T8jKD8+6A!-IJwA{WOfs%s}yxUw^?MRZjF$n_KN z6`_bGXcmE#5e4Ym)aQJ)xg3Pg0@k`iGuHe?f(5LtuzSq=nS^5z>vqU0EuZ&75V%Z{ zYyhRLN^)$c6Ds{f7*FBpE;n5iglx5PkHfWrj3`x^j^t z7ntuV`g!9Xg#^3!x)l*}IW=(Tz3>Y5l4uGaB&lz{GDjm2D5S$CExLT`I1#n^lBH7Y zDgpMag@`iETKAI=p<5E#LTkwzVR@=yY|uBVI1HG|8h+d;G-qfuj}-ZR6fN>EfCCW z9~wRQoAPEa#aO?3h?x{YvV*d+NtPkf&4V0k4|L=uj!U{L+oLa(z#&iuhJr3-PjO3R z5s?=nn_5^*^Rawr>>Nr@K(jwkB#JK-=+HqwfdO<+P5byeim)wvqGlP-P|~Nse8=XF zz`?RYB|D6SwS}C+YQv+;}k6$-%D(@+t14BL@vM z2q%q?f6D-A5s$_WY3{^G0F131bbh|g!}#BKw=HQ7mx;Dzg4Z*bTLQSfo{ed{4}NZW zfrRm^Ca$rlE{Ue~uYv>R9{3smwATcdM_6+yWIO z*ZRH~uXE@#p$XTbCt5j7j2=86e{9>HIB6xDzV+vAo&B?KUiMP|ttOElepnl%|DPqL b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/client/public/manifest.json b/client/public/manifest.json new file mode 100644 index 0000000..080d6c7 --- /dev/null +++ b/client/public/manifest.json @@ -0,0 +1,25 @@ +{ + "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/client/public/robots.txt b/client/public/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/client/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/client/src/App.css b/client/src/App.css new file mode 100644 index 0000000..74b5e05 --- /dev/null +++ b/client/src/App.css @@ -0,0 +1,38 @@ +.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/client/src/App.tsx b/client/src/App.tsx new file mode 100644 index 0000000..e66a6e7 --- /dev/null +++ b/client/src/App.tsx @@ -0,0 +1,91 @@ +import React, { useState } from 'react'; +import { BrowserRouter, Routes, Route } from 'react-router-dom'; +import { ThemeProvider, createTheme } from '@mui/material'; +import Navbar from './components/Navbar.tsx'; +import Dashboard from './pages/Dashboard.tsx'; +import Scripts from './pages/Scripts.tsx'; +import NotificationCenter from './components/NotificationCenter.tsx'; +import { NotificationProvider } from './contexts/NotificationContext.tsx'; +import { CssBaseline } from '@mui/material'; +import Notifications from './components/Notifications.tsx'; +import { WebSocketProvider } from './hooks/useWebSocketContext.tsx'; +import Import from './pages/Import.tsx'; + +const theme = createTheme({ + palette: { + mode: 'dark', + primary: { + main: '#2196f3', + light: '#64b5f6', + dark: '#1976d2', + }, + secondary: { + main: '#ff4081', + light: '#ff79b0', + dark: '#c60055', + }, + background: { + default: '#0a1929', + paper: '#132f4c', + }, + }, + components: { + MuiCard: { + styleOverrides: { + root: { + backgroundImage: 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))', + boxShadow: '0 0 20px rgba(0, 0, 0, 0.1)', + }, + }, + }, + MuiButton: { + styleOverrides: { + root: { + borderRadius: 8, + textTransform: 'none', + fontWeight: 600, + }, + }, + }, + }, + typography: { + fontFamily: '"Inter", "Roboto", "Helvetica", "Arial", sans-serif', + h4: { + fontWeight: 600, + }, + h6: { + fontWeight: 600, + }, + }, +}); + +function App() { + const [notificationDrawerOpen, setNotificationDrawerOpen] = useState(false); + + return ( + + + + + +
+ setNotificationDrawerOpen(true)} /> + + + } /> + } /> + } /> + + setNotificationDrawerOpen(false)} + /> +
+
+
+
+
+ ); +} + +export default App; \ No newline at end of file diff --git a/client/src/components/DashboardContainer.tsx b/client/src/components/DashboardContainer.tsx new file mode 100644 index 0000000..446d01a --- /dev/null +++ b/client/src/components/DashboardContainer.tsx @@ -0,0 +1,27 @@ +import { Box } from '@mui/material'; +import { styled } from '@mui/system'; + +const DashboardContainer = styled(Box)(({ theme }) => ({ + padding: theme.spacing(3), + maxWidth: '1400px', + margin: '0 auto', + minHeight: '100vh', + background: `linear-gradient(135deg, ${theme.palette.background.default} 0%, ${theme.palette.background.paper} 100%)`, + backgroundAttachment: 'fixed', + position: 'relative', + '&::before': { + content: '""', + position: 'absolute', + top: 0, + left: 0, + right: 0, + bottom: 0, + background: `radial-gradient(circle at 50% 0%, ${theme.palette.primary.main}15, transparent 25%)`, + pointerEvents: 'none', + }, + '& > *': { + position: 'relative', + }, +})); + +export default DashboardContainer; \ No newline at end of file diff --git a/client/src/components/Navbar.tsx b/client/src/components/Navbar.tsx new file mode 100644 index 0000000..8cf8b67 --- /dev/null +++ b/client/src/components/Navbar.tsx @@ -0,0 +1,158 @@ +import React from 'react'; +import { + AppBar, + Toolbar, + Typography, + Button, + Box, + IconButton, + alpha, + Badge, + Avatar +} from '@mui/material'; +import { + Dashboard, + Code, + Settings, + Notifications, + DarkMode, + LightMode, + CloudUpload +} from '@mui/icons-material'; +import { Link, useLocation } from 'react-router-dom'; +import { styled } from '@mui/system'; +import { useNotifications } from '../contexts/NotificationContext.tsx'; + +const GlassAppBar = styled(AppBar)(({ theme }) => ({ + background: alpha(theme.palette.background.paper, 0.7), + backdropFilter: 'blur(20px)', + borderBottom: `1px solid ${alpha(theme.palette.divider, 0.1)}`, + boxShadow: 'none', +})); + +const NavButton = styled(Button, { + shouldForwardProp: (prop) => prop !== 'component' && prop !== 'selected' +})<{ component?: React.ElementType; to?: string }>(({ theme }) => ({ + margin: theme.spacing(0, 1), + padding: theme.spacing(1, 2), + borderRadius: '12px', + textTransform: 'none', + fontWeight: 500, + transition: 'all 0.2s ease-in-out', + '&:hover': { + backgroundColor: alpha(theme.palette.primary.main, 0.1), + transform: 'translateY(-2px)', + }, + '&.Mui-selected': { + backgroundColor: alpha(theme.palette.primary.main, 0.2), + }, +})); + +const StyledIconButton = styled(IconButton)(({ theme }) => ({ + borderRadius: '12px', + padding: theme.spacing(1), + transition: 'all 0.2s ease-in-out', + '&:hover': { + backgroundColor: alpha(theme.palette.primary.main, 0.1), + transform: 'translateY(-2px)', + }, +})); + +const Logo = styled(Box)(({ theme }) => ({ + display: 'flex', + alignItems: 'center', + gap: theme.spacing(1), + '& svg': { + fontSize: '2rem', + color: theme.palette.primary.main, + }, +})); + +interface NavbarProps { + onNotificationClick: () => void; + onThemeToggle?: () => void; + isDarkMode?: boolean; +} + +const Navbar: React.FC = ({ + onNotificationClick, + onThemeToggle, + isDarkMode = true +}) => { + const location = useLocation(); + const { notifications } = useNotifications(); + + return ( + + + + + + BlackHole + + + + + } + color={location.pathname === '/' ? 'primary' : 'inherit'} + > + Dashboard + + + } + color={location.pathname === '/scripts' ? 'primary' : 'inherit'} + > + Scripts + + + + + + + + + + {isDarkMode ? : } + + + + + + + window.open('/import', 'Import Torrent', 'width=500,height=600')} + title="Import Torrent" + > + + + + + + + + ); +}; + +export default Navbar; \ No newline at end of file diff --git a/client/src/components/NotificationCenter.tsx b/client/src/components/NotificationCenter.tsx new file mode 100644 index 0000000..1e116ae --- /dev/null +++ b/client/src/components/NotificationCenter.tsx @@ -0,0 +1,173 @@ +import React from 'react'; +import { + Drawer, + List, + ListItem, + ListItemText, + ListItemIcon, + Typography, + IconButton, + Box, + useTheme, + alpha, +} from '@mui/material'; +import { + CheckCircle, + Error, + Info, + Warning, + Close, + Delete, + Notifications as NotificationsIcon +} from '@mui/icons-material'; +import { styled } from '@mui/system'; +import { useNotifications } from '../contexts/NotificationContext.tsx'; + +const DrawerHeader = styled(Box)(({ theme }) => ({ + display: 'flex', + alignItems: 'center', + padding: theme.spacing(2), + background: alpha(theme.palette.background.paper, 0.9), + backdropFilter: 'blur(10px)', + borderBottom: `1px solid ${alpha(theme.palette.divider, 0.1)}`, + position: 'sticky', + top: 0, + zIndex: 1, +})); + +const NotificationList = styled(List)(({ theme }) => ({ + padding: theme.spacing(2), + '& .MuiListItem-root': { + marginBottom: theme.spacing(2), + borderRadius: theme.shape.borderRadius, + background: alpha(theme.palette.background.paper, 0.6), + backdropFilter: 'blur(10px)', + border: `1px solid ${alpha(theme.palette.divider, 0.1)}`, + transition: 'all 0.2s ease-in-out', + '&:hover': { + background: alpha(theme.palette.background.paper, 0.8), + transform: 'translateX(5px)', + }, + }, +})); + +const EmptyState = styled(Box)(({ theme }) => ({ + display: 'flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + padding: theme.spacing(4), + color: theme.palette.text.secondary, + height: '100%', + minHeight: 400, + textAlign: 'center', + '& svg': { + fontSize: 48, + marginBottom: theme.spacing(2), + opacity: 0.5, + }, +})); + +interface NotificationCenterProps { + open: boolean; + onClose: () => void; +} + +const NotificationCenter = ({ open, onClose }: NotificationCenterProps) => { + const theme = useTheme(); + const { notifications, removeNotification } = useNotifications(); + + const getNotificationIcon = (type: 'success' | 'error' | 'warning' | 'info') => { + switch (type) { + case 'success': + return ; + case 'error': + return ; + case 'warning': + return ; + default: + return ; + } + }; + + const formatTime = (timestamp: number) => { + return new Date(timestamp * 1000).toLocaleTimeString(); + }; + + return ( + + + + + Notifications + + + + + + + {notifications.length > 0 ? ( + + {notifications.map((notification, index) => ( + removeNotification(notification.timestamp)} + size="small" + > + + + } + > + + {getNotificationIcon(notification.type)} + + + {notification.title} + + } + secondary={ + + + {notification.message} + + + {formatTime(notification.timestamp)} + + + } + /> + + ))} + + ) : ( + + + + No notifications + + + You're all caught up! + + + )} + + ); +}; + +export default NotificationCenter; \ No newline at end of file diff --git a/client/src/components/Notifications.tsx b/client/src/components/Notifications.tsx new file mode 100644 index 0000000..720c016 --- /dev/null +++ b/client/src/components/Notifications.tsx @@ -0,0 +1,47 @@ +import { useRef } from 'react'; +import { useNotifications } from '../contexts/NotificationContext.tsx'; +import useWebSocket from '../hooks/useWebSocket.ts'; + +interface NotificationCache { + [key: string]: number; +} + +const Notifications = () => { + const { addNotification } = useNotifications(); + const notificationCache = useRef({}); + const NOTIFICATION_COOLDOWN = 5000; + + useWebSocket('/ws', (data) => { + try { + if (data.type === 'notification') { + const notification = data.notification; + const notificationKey = `${notification.type}-${notification.title}-${notification.message}`; + const now = Date.now(); + + if (!notificationCache.current[notificationKey] || + now - notificationCache.current[notificationKey] > NOTIFICATION_COOLDOWN) { + + notificationCache.current[notificationKey] = now; + + addNotification({ + type: notification.type, + title: notification.title, + message: notification.message + }); + + Object.keys(notificationCache.current).forEach(key => { + if (now - notificationCache.current[key] > NOTIFICATION_COOLDOWN) { + delete notificationCache.current[key]; + } + }); + } + } + } catch (error) { + console.error('Error processing notification:', error); + } + }); + + return null; +}; + +export default Notifications; \ No newline at end of file diff --git a/client/src/components/ProcessingCard.tsx b/client/src/components/ProcessingCard.tsx new file mode 100644 index 0000000..0131147 --- /dev/null +++ b/client/src/components/ProcessingCard.tsx @@ -0,0 +1,432 @@ +import React, { useEffect, useState } from 'react'; +import { Typography, LinearProgress, Box, Chip, Stack, alpha, useTheme, IconButton } from '@mui/material'; +import { styled } from '@mui/material/styles'; +import { Movie, Tv, Check, CloudDownload, Error, Pending, Delete } from '@mui/icons-material'; +import GlassCard from './shared/GlassCard.tsx'; +import { ProcessingItem } from '../types/ProcessingItem.ts'; +import { getMediaInfoImage } from '../utils/mediaInfoImages.ts'; + +const StyledChip = styled(Chip)(({ theme }) => ({ + borderRadius: '6px', + '& .MuiChip-label': { + fontWeight: 500, + }, +})); + +const ProgressBar = styled(LinearProgress)(({ theme }) => ({ + height: 8, + borderRadius: 4, + backgroundColor: alpha(theme.palette.primary.main, 0.1), + '& .MuiLinearProgress-bar': { + borderRadius: 4, + }, +})); + +interface ProcessingCardProps { + item: ProcessingItem; + setProcessingItems: React.Dispatch>; +} + +const cardStyle = { + height: '100%', + display: 'flex', + flexDirection: 'column', + position: 'relative' +} as const; + +const getStatusIcon = (status: string) => { + switch (status.toLowerCase()) { + case 'completed': return ; + case 'downloading': return ; + case 'error': return ; + default: return ; + } +}; + +// Create a cache Map outside the component to persist across renders +const logoCache = new Map(); + +const ProcessingCard = ({ item, setProcessingItems }: ProcessingCardProps) => { + const theme = useTheme(); + const [logoUrl, setLogoUrl] = useState(logoCache.get(item.id) || null); + + useEffect(() => { + const fetchData = async () => { + const tmdbId = item.status.parsedInfo?.parsedMovieInfo?.tmdbId || + item.status.parsedInfo?.parsedEpisodeInfo?.tmdbId || + item.status.parsedInfo?.movie?.tmdbId || + item.status.parsedInfo?.series?.tmdbId || + (item.type === 'movie' && item.status.parsedInfo?.movie?.tmdbId); + + if (tmdbId) { + const isMovie = item.type === 'movie'; + try { + // First try to get arrInfo + const arrResponse = await fetch('/arrinfo'); + if (arrResponse.ok) { + const arrData = await arrResponse.json(); + const mediaInfo = isMovie ? arrData.movie?.mediaInfo : arrData.series?.mediaInfo; + const quality = isMovie ? arrData.movie?.quality : arrData.series?.quality; + + // Update mediaInfo if available from arrInfo + if (mediaInfo) { + item.fileInfo.mediaInfo = { + ...item.fileInfo.mediaInfo, // Keep existing mediaInfo as fallback + dynamicRange: mediaInfo.videoDynamicRange || item.fileInfo.mediaInfo?.dynamicRange, + audioFormat: mediaInfo.audioCodec || item.fileInfo.mediaInfo?.audioFormat, + }; + } + + // Update resolution if available from arrInfo + if (quality?.resolution) { + const arrResolution = `${quality.resolution}p`; + // Only use arrInfo resolution if it's valid + if (['2160p', '1080p', '720p', '480p'].includes(arrResolution)) { + item.fileInfo.resolution = [arrResolution]; + } + } + } + + // Fetch logo + const response = await fetch(`/api/tmdb/${isMovie ? 'movie' : 'tv'}/${tmdbId}/images`); + if (response.ok) { + const data = await response.json(); + if (data.logo_path) { + setLogoUrl(`https://image.tmdb.org/t/p/w200${data.logo_path}`); + logoCache.set(item.id, `https://image.tmdb.org/t/p/w200${data.logo_path}`); + } + } + } catch (error) { + console.error('Error fetching data:', error); + // File processing info remains as fallback + } + } + }; + + if (item.status.parsedInfo) { + fetchData(); + } + }, [item.status.parsedInfo, item.type, item.fileInfo, item.id]); + + // Clean up cache when item is removed + useEffect(() => { + if (item.status.imported && + item.status.status === 'Complete' && + item.status.cached && + item.status.added && + item.status.mounted && + item.status.symlinked && + item.status.progress === 100) { + const timer = setTimeout(() => { + setProcessingItems(prevItems => { + const newItems = prevItems.filter(i => i.id !== item.id); + if (newItems.length < prevItems.length) { + logoCache.delete(item.id); + } + return newItems; + }); + }, 10000); // Increase delay to 10 seconds to ensure all updates are visible + return () => clearTimeout(timer); + } + }, [item.status.imported, item.status.status, item.status.cached, + item.status.added, item.status.mounted, item.status.symlinked, + item.status.progress, item.id, setProcessingItems]); + + const handleDelete = () => { + const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; + const ws = new WebSocket(`${protocol}//${window.location.host}/ws`); + ws.onopen = () => { + ws.send(JSON.stringify({ + type: 'delete_item', + itemId: item.id + })); + }; + setProcessingItems(prevItems => prevItems.filter(i => i.id !== item.id)); + }; + + if (!logoUrl) { + return
Loading...
; + } + + const isError = item.status.error; + const fanartUrl = item.status.parsedInfo?.movie?.images?.find(img => img.coverType === 'fanart')?.remoteUrl + || item.status.parsedInfo?.series?.images?.find(img => img.coverType === 'fanart')?.remoteUrl; + const posterUrl = item.status.parsedInfo?.movie?.images?.find(img => img.coverType === 'poster')?.remoteUrl + || item.status.parsedInfo?.series?.images?.find(img => img.coverType === 'poster')?.remoteUrl; + + // Get the parsed title based on media type + const getParsedTitle = () => { + if (item.status.parsedInfo) { + if (item.type === 'movie' && item.status.parsedInfo.parsedMovieInfo) { + const { movieTitle: title, year } = item.status.parsedInfo.parsedMovieInfo; + return year ? `${title} (${year})` : title; + } else if (item.type === 'series' && item.status.parsedInfo.parsedEpisodeInfo) { + const { seriesTitle: title, seasonNumber, episodeNumbers } = item.status.parsedInfo.parsedEpisodeInfo; + if (seasonNumber !== undefined && episodeNumbers?.length) { + return `${title} S${seasonNumber.toString().padStart(2, '0')}E${episodeNumbers[0].toString().padStart(2, '0')}`; + } + return title; + } + } + return item.title; + }; + + return ( + + + + + + + {posterUrl ? ( + + ) : ( + item.type === 'movie' ? : + )} + {logoUrl ? ( + + ) : ( + + {getParsedTitle()} + + )} + + + {/* File Info Images */} + + {/* Dynamic Range */} + {item.fileInfo.mediaInfo?.dynamicRange?.map((range, index) => ( + + ))} + + {/* Audio Format */} + {item.fileInfo.mediaInfo?.audioFormat?.map((format, index) => ( + + ))} + + {/* Combined Format */} + {item.fileInfo.mediaInfo?.combinedFormat?.map((format, index) => ( + + ))} + + {/* Resolution */} + {item.fileInfo.resolution.map((res, index) => ( + + ))} + + + {/* Status and Progress */} + + + + {getStatusIcon(item.status.status)} + + {item.status.status} + + + {item.debridProvider && ( + + {item.debridProvider} + + )} + + + + + {/* Status Chips */} + + + + + + + + {/* Media Info Icons */} + + {item.fileInfo.mediaInfo?.dynamicRange?.map((range, index) => ( + {range} + ))} + {item.fileInfo.mediaInfo?.audioFormat?.map((format, index) => ( + {format} + ))} + {item.fileInfo.mediaInfo?.combinedFormat?.map((format, index) => ( + {format} + ))} + {item.fileInfo.mediaInfo?.resolution?.map((res, index) => ( + {res} + ))} + + + {process.env.NODE_ENV === 'development' && ( + + + Debug Info: + {item.fileInfo.mediaInfo?.dynamicRange?.map((range, index) => ( +
Dynamic Range Path: {getMediaInfoImage('dynamicRange', range)}
+ ))} + {item.fileInfo.mediaInfo?.audioFormat?.map((format, index) => ( +
Audio Format Path: {getMediaInfoImage('audioFormat', format)}
+ ))} + {item.fileInfo.resolution.map((res, index) => ( +
Resolution Path: {getMediaInfoImage('resolution', res)}
+ ))} +
+
+ )} + + {/* Torrent Name */} + + {item.fileInfo.name} + +
+
+ ); +}; + +export default ProcessingCard; \ No newline at end of file diff --git a/client/src/components/ScriptCard.tsx b/client/src/components/ScriptCard.tsx new file mode 100644 index 0000000..b5c7cde --- /dev/null +++ b/client/src/components/ScriptCard.tsx @@ -0,0 +1,123 @@ +import React, { useState } from 'react'; +import { + Typography, + Box, + Button, + TextField, + Switch, + FormControlLabel, + Collapse, + IconButton, + Stack, + Divider +} from '@mui/material'; +import { PlayArrow, ExpandMore, Code } from '@mui/icons-material'; +import GlassCard from './shared/GlassCard.tsx'; + +export type ArgType = { + name: string; + type: "string" | "number" | "boolean"; + required: boolean; +}; + +interface ScriptCardProps { + name: string; + description: string; + script: string; + args: ArgType[]; + onExecute?: (script: string, args: Record) => void; +} + +const ScriptCard: React.FC = ({ + name, + description, + script, + args, + onExecute +}) => { + const [expanded, setExpanded] = useState(false); + const [argValues, setArgValues] = useState>({}); + + const handleExecute = () => { + onExecute?.(script, argValues); + }; + + return ( + + + + + {name} + + setExpanded(!expanded)} + sx={{ + transform: expanded ? 'rotate(180deg)' : 'rotate(0deg)', + transition: 'transform 0.3s' + }} + > + + + + + + {description} + + + + + + {args.map((arg) => ( + + {arg.type === 'boolean' ? ( + + setArgValues({ + ...argValues, + [arg.name]: e.target.checked + }) + } + /> + } + label={arg.name} + /> + ) : ( + + setArgValues({ + ...argValues, + [arg.name]: e.target.value + }) + } + variant="outlined" + size="small" + /> + )} + + ))} + + + + + + + + ); +}; + +export default ScriptCard; \ No newline at end of file diff --git a/client/src/components/TorrentImport.tsx b/client/src/components/TorrentImport.tsx new file mode 100644 index 0000000..03ae146 --- /dev/null +++ b/client/src/components/TorrentImport.tsx @@ -0,0 +1,77 @@ +import React from 'react'; +import { Button, TextField, Box, Typography } from '@mui/material'; +import { styled } from '@mui/system'; +import { Theme } from '@mui/material/styles'; + +const ImportBox = styled(Box)(({ theme }: { theme?: Theme }) => ({ + padding: theme?.spacing(3), + borderRadius: theme?.shape.borderRadius, + backgroundColor: theme?.palette.background.paper, + boxShadow: theme?.shadows[1], +})); + +const HiddenInput = styled('input')({ + display: 'none', +}); + +interface TorrentImportProps { + onTorrentImport: (file: File | string) => void; +} + +export const TorrentImport: React.FC = ({ onTorrentImport }) => { + const [magnetLink, setMagnetLink] = React.useState(''); + + const handleFileChange = (event: React.ChangeEvent) => { + const file = event.target.files?.[0]; + if (file && file.name.endsWith('.torrent')) { + onTorrentImport(file); + } + }; + + const handleMagnetSubmit = (event: React.FormEvent) => { + event.preventDefault(); + if (magnetLink.startsWith('magnet:')) { + onTorrentImport(magnetLink); + setMagnetLink(''); + } + }; + + return ( + + Import Torrent + + + + + + + setMagnetLink(e.target.value)} + placeholder="magnet:?xt=urn:btih:..." + margin="normal" + /> + + + + + ); +}; \ No newline at end of file diff --git a/client/src/components/shared/CustomTooltip.tsx b/client/src/components/shared/CustomTooltip.tsx new file mode 100644 index 0000000..e74b875 --- /dev/null +++ b/client/src/components/shared/CustomTooltip.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { Tooltip, tooltipClasses, TooltipProps } from '@mui/material'; +import { styled } from '@mui/system'; + +const CustomTooltip = styled(({ className, ...props }: TooltipProps) => ( + +))(({ theme }) => ({ + [`& .${tooltipClasses.tooltip}`]: { + backgroundColor: 'rgba(33, 33, 33, 0.9)', + backdropFilter: 'blur(10px)', + color: theme.palette.common.white, + padding: theme.spacing(1, 2), + fontSize: '0.875rem', + maxWidth: 300, + borderRadius: 8, + boxShadow: '0 4px 12px rgba(0, 0, 0, 0.2)', + border: '1px solid rgba(255, 255, 255, 0.1)', + }, + [`& .${tooltipClasses.arrow}`]: { + color: 'rgba(33, 33, 33, 0.9)', + }, +})); + +export default CustomTooltip; \ No newline at end of file diff --git a/client/src/components/shared/ErrorBoundary.tsx b/client/src/components/shared/ErrorBoundary.tsx new file mode 100644 index 0000000..6e027bb --- /dev/null +++ b/client/src/components/shared/ErrorBoundary.tsx @@ -0,0 +1,81 @@ +import React, { Component, ErrorInfo } from 'react'; +import { Box, Button, Typography, Paper } from '@mui/material'; +import { styled } from '@mui/system'; +import { Error as ErrorIcon, Refresh } from '@mui/icons-material'; + +const ErrorContainer = styled(Paper)(({ theme }) => ({ + padding: theme.spacing(4), + display: 'flex', + flexDirection: 'column', + alignItems: 'center', + gap: theme.spacing(2), + textAlign: 'center', + borderRadius: 16, + background: 'rgba(255, 255, 255, 0.05)', + backdropFilter: 'blur(10px)', + border: '1px solid rgba(255, 255, 255, 0.1)', + '& .MuiSvgIcon-root': { + fontSize: 48, + color: theme.palette.error.main, + marginBottom: theme.spacing(2), + }, +})); + +interface Props { + children: React.ReactNode; +} + +interface State { + hasError: boolean; + error?: Error; +} + +class ErrorBoundary extends Component { + constructor(props: Props) { + super(props); + this.state = { hasError: false }; + } + + static getDerivedStateFromError(error: Error): State { + return { hasError: true, error }; + } + + componentDidCatch(error: Error, errorInfo: ErrorInfo) { + console.error('Error caught by boundary:', error, errorInfo); + } + + handleReset = () => { + this.setState({ hasError: false, error: undefined }); + window.location.reload(); + }; + + render() { + if (this.state.hasError) { + return ( + + + + + Something went wrong + + + {this.state.error?.message || 'An unexpected error occurred'} + + + + + ); + } + + return this.props.children; + } +} + +export default ErrorBoundary; \ No newline at end of file diff --git a/client/src/components/shared/GlassCard.tsx b/client/src/components/shared/GlassCard.tsx new file mode 100644 index 0000000..004c6f7 --- /dev/null +++ b/client/src/components/shared/GlassCard.tsx @@ -0,0 +1,19 @@ +import { Card } from '@mui/material'; +import { styled } from '@mui/system'; + +const GlassCard = styled(Card)(({ theme }) => ({ + background: 'linear-gradient(135deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.03) 100%)', + backdropFilter: 'blur(10px)', + borderRadius: '16px', + padding: '20px', + margin: '10px', + border: '1px solid rgba(255, 255, 255, 0.1)', + transition: 'all 0.3s ease-in-out', + '&:hover': { + transform: 'translateY(-5px)', + boxShadow: '0 8px 25px rgba(0, 0, 0, 0.2)', + borderColor: theme.palette.primary.main, + }, +})); + +export default GlassCard; \ No newline at end of file diff --git a/client/src/components/shared/LoadingSpinner.tsx b/client/src/components/shared/LoadingSpinner.tsx new file mode 100644 index 0000000..3c304ff --- /dev/null +++ b/client/src/components/shared/LoadingSpinner.tsx @@ -0,0 +1,49 @@ +import React from 'react'; +import { Box, CircularProgress, Typography } from '@mui/material'; +import { styled, keyframes } from '@mui/system'; + +const pulse = keyframes` + 0% { opacity: 0.6; } + 50% { opacity: 1; } + 100% { opacity: 0.6; } +`; + +const SpinnerContainer = styled(Box)(({ theme }) => ({ + display: 'flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + minHeight: 200, + gap: theme.spacing(2), + '& .MuiCircularProgress-root': { + color: theme.palette.primary.main, + }, + '& .pulse': { + animation: `${pulse} 1.5s ease-in-out infinite`, + }, +})); + +interface LoadingSpinnerProps { + message?: string; + size?: number; +} + +const LoadingSpinner: React.FC = ({ + message = 'Loading...', + size = 40 +}) => { + return ( + + + + {message} + + + ); +}; + +export default LoadingSpinner; \ No newline at end of file diff --git a/client/src/components/shared/ProgressIndicator.tsx b/client/src/components/shared/ProgressIndicator.tsx new file mode 100644 index 0000000..1cac5c2 --- /dev/null +++ b/client/src/components/shared/ProgressIndicator.tsx @@ -0,0 +1,73 @@ +import React from 'react'; +import { Box, LinearProgress, Typography, alpha } from '@mui/material'; +import { styled } from '@mui/system'; + +const ProgressContainer = styled(Box)(({ theme }) => ({ + width: '100%', + background: alpha(theme.palette.background.paper, 0.1), + borderRadius: 12, + padding: theme.spacing(2), + border: `1px solid ${alpha(theme.palette.divider, 0.1)}`, + backdropFilter: 'blur(8px)', +})); + +const StyledLinearProgress = styled(LinearProgress)(({ theme }) => ({ + height: 8, + borderRadius: 4, + backgroundColor: alpha(theme.palette.primary.main, 0.1), + '& .MuiLinearProgress-bar': { + borderRadius: 4, + backgroundImage: `linear-gradient(45deg, + ${alpha(theme.palette.primary.main, 0.8)} 0%, + ${alpha(theme.palette.primary.light, 0.9)} 100% + )`, + }, +})); + +interface ProgressIndicatorProps { + value: number; + label?: string; + showPercentage?: boolean; + size?: 'small' | 'medium' | 'large'; + color?: 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info'; +} + +const ProgressIndicator: React.FC = ({ + value, + label, + showPercentage = true, + size = 'medium', + color = 'primary' +}) => { + const height = size === 'small' ? 4 : size === 'medium' ? 8 : 12; + + return ( + + {label && ( + + + {label} + + {showPercentage && ( + + {Math.round(value)}% + + )} + + )} + + + ); +}; + +export default ProgressIndicator; \ No newline at end of file diff --git a/client/src/components/shared/StatusBadge.tsx b/client/src/components/shared/StatusBadge.tsx new file mode 100644 index 0000000..40eac98 --- /dev/null +++ b/client/src/components/shared/StatusBadge.tsx @@ -0,0 +1,126 @@ +import React from 'react'; +import { Box, Typography, keyframes } from '@mui/material'; +import { styled } from '@mui/system'; +import { + CheckCircle, + Error, + Warning, + Pending, + CloudDone, + CloudQueue, + CloudOff +} from '@mui/icons-material'; + +const pulse = keyframes` + 0% { transform: scale(1); } + 50% { transform: scale(1.1); } + 100% { transform: scale(1); } +`; + +const StatusContainer = styled(Box)(({ theme }) => ({ + display: 'inline-flex', + alignItems: 'center', + padding: theme.spacing(0.5, 1.5), + borderRadius: '20px', + gap: theme.spacing(1), + background: 'rgba(255, 255, 255, 0.1)', + backdropFilter: 'blur(10px)', + border: '1px solid rgba(255, 255, 255, 0.2)', + transition: 'all 0.2s ease-in-out', + '&:hover': { + transform: 'translateY(-2px)', + boxShadow: '0 4px 12px rgba(0, 0, 0, 0.1)', + }, + '& .MuiSvgIcon-root': { + fontSize: '1.2rem', + }, + '&.active .MuiSvgIcon-root': { + animation: `${pulse} 2s infinite ease-in-out`, + }, +})); + +type StatusType = 'success' | 'error' | 'warning' | 'pending' | 'connected' | 'disconnected' | 'syncing'; + +interface StatusConfig { + icon: React.ReactNode; + color: string; + background: string; +} + +const statusConfigs: Record = { + success: { + icon: , + color: '#4caf50', + background: 'rgba(76, 175, 80, 0.1)', + }, + error: { + icon: , + color: '#f44336', + background: 'rgba(244, 67, 54, 0.1)', + }, + warning: { + icon: , + color: '#ff9800', + background: 'rgba(255, 152, 0, 0.1)', + }, + pending: { + icon: , + color: '#2196f3', + background: 'rgba(33, 150, 243, 0.1)', + }, + connected: { + icon: , + color: '#4caf50', + background: 'rgba(76, 175, 80, 0.1)', + }, + disconnected: { + icon: , + color: '#f44336', + background: 'rgba(244, 67, 54, 0.1)', + }, + syncing: { + icon: , + color: '#2196f3', + background: 'rgba(33, 150, 243, 0.1)', + }, +}; + +interface StatusBadgeProps { + status: StatusType; + label?: string; + active?: boolean; +} + +const StatusBadge: React.FC = ({ + status, + label, + active = false, +}) => { + const config = statusConfigs[status]; + + return ( + + {config.icon} + {label && ( + + {label} + + )} + + ); +}; + +export default StatusBadge; \ No newline at end of file diff --git a/client/src/contexts/NotificationContext.tsx b/client/src/contexts/NotificationContext.tsx new file mode 100644 index 0000000..05fc7b7 --- /dev/null +++ b/client/src/contexts/NotificationContext.tsx @@ -0,0 +1,58 @@ +import React, { createContext, useContext, useState, useCallback } from 'react'; + +export interface Notification { + type: 'success' | 'error' | 'warning' | 'info'; + title: string; + message: string; + timestamp: number; +} + +export const NotificationContext = createContext<{ + notifications: Notification[]; + addNotification: (notification: Omit) => void; + removeNotification: (timestamp: number) => void; + clearAllNotifications: () => void; +}>({ + notifications: [], + addNotification: () => {}, + removeNotification: () => {}, + clearAllNotifications: () => {}, +}); + +export const NotificationProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => { + const [notifications, setNotifications] = useState([]); + + const addNotification = useCallback((notification: Omit) => { + setNotifications(prev => [...prev, { + ...notification, + timestamp: Date.now() + }]); + }, []); + + const removeNotification = useCallback((timestamp: number) => { + setNotifications(prev => prev.filter(notification => notification.timestamp !== timestamp)); + }, []); + + const clearAllNotifications = useCallback(() => { + setNotifications([]); + }, []); + + return ( + + {children} + + ); +}; + +export const useNotifications = () => { + const context = useContext(NotificationContext); + if (context === undefined) { + throw new Error('useNotifications must be used within a NotificationProvider'); + } + return context; +}; \ No newline at end of file diff --git a/client/src/hooks/useWebSocket.ts b/client/src/hooks/useWebSocket.ts new file mode 100644 index 0000000..d66d284 --- /dev/null +++ b/client/src/hooks/useWebSocket.ts @@ -0,0 +1,71 @@ +import { useEffect, useRef, useState } from 'react'; + +const getWebSocketUrl = () => { + const wsProtocol = window.location.protocol === 'https:' ? 'wss' : 'ws'; + return `${wsProtocol}://${window.location.host}/ws`; +}; + +const useWebSocket = (url: string, onMessage: (data: any) => void) => { + const [connectionStatus, setConnectionStatus] = useState('Connecting...'); + const ws = useRef(null); + const reconnectTimeout = useRef(); + const pingInterval = useRef(); + const wsUrl = getWebSocketUrl(); + + useEffect(() => { + let mounted = true; + + const connect = () => { + if (!mounted) return; + if (ws.current?.readyState === WebSocket.OPEN) return; + + ws.current = new WebSocket(wsUrl); + + ws.current.onopen = () => { + if (!mounted) return; + setConnectionStatus('Connected'); + if (pingInterval.current) clearInterval(pingInterval.current); + pingInterval.current = setInterval(() => { + if (ws.current?.readyState === WebSocket.OPEN) { + ws.current.send(JSON.stringify({ type: 'ping' })); + } + }, 30000); + }; + + ws.current.onclose = () => { + if (!mounted) return; + setConnectionStatus('Reconnecting...'); + if (pingInterval.current) clearInterval(pingInterval.current); + if (reconnectTimeout.current) clearTimeout(reconnectTimeout.current); + reconnectTimeout.current = setTimeout(connect, 1000); + }; + + ws.current.onmessage = (event) => { + if (!mounted) return; + try { + const data = JSON.parse(event.data); + console.log('WebSocket message received:', data); + onMessage(data); + } catch (error) { + console.error('Error parsing message:', error); + } + }; + }; + + connect(); + + return () => { + mounted = false; + if (pingInterval.current) clearInterval(pingInterval.current); + if (reconnectTimeout.current) clearTimeout(reconnectTimeout.current); + if (ws.current) { + ws.current.close(); + ws.current = null; + } + }; + }, [wsUrl, onMessage]); + + return connectionStatus; +}; + +export default useWebSocket; \ No newline at end of file diff --git a/client/src/hooks/useWebSocketContext.tsx b/client/src/hooks/useWebSocketContext.tsx new file mode 100644 index 0000000..e15f027 --- /dev/null +++ b/client/src/hooks/useWebSocketContext.tsx @@ -0,0 +1,74 @@ +import React, { createContext, useContext, ReactNode, useState, useCallback } from 'react'; +import useWebSocket from './useWebSocket.ts'; +import { ProcessingItem } from '../types/ProcessingItem.ts'; +import { getWebSocketUrl } from '../utils/api.ts'; + +type WebSocketContextType = { + connectionStatus: string; + processingItems: ProcessingItem[]; + setProcessingItems: React.Dispatch>; +}; + +const WebSocketContext = createContext(null); + +export const WebSocketProvider = ({ children }: { children: ReactNode }) => { + const [processingItems, setProcessingItems] = useState([]); + + const handleProcessingItems = useCallback((newItems: ProcessingItem[]) => { + setProcessingItems(prevItems => { + const updatedItems = prevItems.map(prevItem => { + const newItem = newItems.find(item => item.id === prevItem.id); + if (!newItem) return prevItem; + + const statusChanged = + prevItem.status.cached !== newItem.status.cached || + prevItem.status.added !== newItem.status.added || + prevItem.status.mounted !== newItem.status.mounted || + prevItem.status.symlinked !== newItem.status.symlinked || + prevItem.status.status !== newItem.status.status || + prevItem.status.error !== newItem.status.error || + prevItem.progress !== newItem.progress; + + return statusChanged ? newItem : prevItem; + }); + + const itemsToAdd = newItems.filter( + newItem => !updatedItems.some(item => item.id === newItem.id) + ); + + return [ + ...updatedItems, + ...itemsToAdd + ].filter(item => + !item.status.symlinked && + !(item.status.error && item.status.errorTime && + Date.now() - item.status.errorTime * 1000 > 5000) + ); + }); + }, []); + + const connectionStatus = useWebSocket(getWebSocketUrl('/ws'), (data) => { + console.log('Processing WebSocket data:', data); + if (data.type === 'processing_status') { + handleProcessingItems(data.items); + } + }); + + return ( + + {children} + + ); +}; + +export const useWebSocketContext = () => { + const context = useContext(WebSocketContext); + if (!context) { + throw new Error('useWebSocketContext must be used within a WebSocketProvider'); + } + return context; +}; \ No newline at end of file diff --git a/client/src/images/mediainfo/codec/Atmos.png b/client/src/images/mediainfo/codec/Atmos.png new file mode 100644 index 0000000000000000000000000000000000000000..410c1158cd8a26fd9b41868a088cbd44e31e9630 GIT binary patch literal 4618 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 literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/DTS-HD.png b/client/src/images/mediainfo/codec/DTS-HD.png new file mode 100644 index 0000000000000000000000000000000000000000..f883c604db223fe109f02d6fbe407a37ada4b635 GIT binary patch literal 2203 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 literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/DV-DTS-X.png b/client/src/images/mediainfo/codec/DV-DTS-X.png new file mode 100644 index 0000000000000000000000000000000000000000..57d2b77ae51bec313697f31d96a6b8d1948cbcc9 GIT binary patch literal 9595 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 Gr~d<@%1#sj literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/DV-HDR-Atmos.png b/client/src/images/mediainfo/codec/DV-HDR-Atmos.png new file mode 100644 index 0000000000000000000000000000000000000000..c01fb13f7d711ac17d00dac1b3cfc5097077e1e3 GIT binary patch literal 7978 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 literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/DV-HDR-DTS-X.png b/client/src/images/mediainfo/codec/DV-HDR-DTS-X.png new file mode 100644 index 0000000000000000000000000000000000000000..57d2b77ae51bec313697f31d96a6b8d1948cbcc9 GIT binary patch literal 9595 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 Gr~d<@%1#sj literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/DV-HDR-TrueHD-Atmos.png b/client/src/images/mediainfo/codec/DV-HDR-TrueHD-Atmos.png new file mode 100644 index 0000000000000000000000000000000000000000..689a6d5ee6b99b3cd2be91dc97ded7fe131affc8 GIT binary patch literal 8882 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 literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/DV-HDR-TrueHD.png b/client/src/images/mediainfo/codec/DV-HDR-TrueHD.png new file mode 100644 index 0000000000000000000000000000000000000000..e79b7ca02a26fa1196a71b152290a0e4a84463f9 GIT binary patch literal 9505 zcmd6sXHXMP)b2wEkq*+75(K16mEL=Ap;u8_K#(3f2!bFT=}oB#RYXc45D}#Z=}1RP z=%I%eeEq-opurp`)QDB`PB&B_t*+3IJ%oD>e(Z z%ECTST*1DivQV8n`kd<(0|0W>kq%H>f1=I=ILA@bD*uR2yk|krKvSd*>WiJer(K-* zr|e0)n@UomO)|(%`jCCG`fEfe=HTFF_NEJ6guX>V#;BrcXn8WWK6wIUOylKc=h)MX zwEG4T(fAD7tArfXTf@C>L_Yw4BLYZBWI&VBEncG!03YBxE&Q0af9>xZxG|3iV{KC%~3R;LUUCPX&iMO(LuY2imBhyX#UR_RpAPJrlqRlyMe zhcrGwjg4-UfJ2|4?CC_$D%8<8zFiv+fE@lXnyWVDcOByD`w9AJSo(q0Tw@;ScRjl-MzQ4vs7^d`U`1AZ0wP*u+idu^^0AwPPV6g%bX^o0Qqv83CiE-lgQm}V1#Df~d?jv98B zq@QK};{g&>_R%??z~d|}Yzon>pQ^|8wgUqI5lN{o(c_|&uJ3<4+r3ZFaC&FO!qfl2 zWz$O1B2Ciek=3&x23BN=GlujresVP3KB+?-b+1=!db*aCzLi=H_dZt(Eu7Sn>`k0# zFE22w#;Aoml=iAGE46O8>G$AbsV`FZRu3$MwvH*-#6OmWq&08(I@-#*t8;>R#)<+ z(k5YLshDbh8O&r9S~5inOO!3O(eW+|G8QpQfYM0>7I2RiK2RI35GtSkRp8;~fpr(z z34oI=ymg<2B3PYL}b4wEbjG;e7B@?B%hQ>WrTS z!JZ&E&)~Uj^VPn75YY{5kVu%mnVLV$wazuewRr3GC?4g{&#Ol=zl(HHoG1!Zm=J-G zlF;WF&wAJT$ogmVq4VAI&ky_#9vtk=V*-7Pm5T+7&t<)3v4Lc8DYywd9=;GbwyQYl zvIp5AJ0Ciy+*umeI`=*+KWE&<%wWdZpFNczl}cy!5|ws28cBEA2IqOSj~~UY)zA#P z!!!Ea%g1%fdE0po6WrD%Ll_lZ>wF$Quaj7Qxd@hbe(oW*P|;WMW22jIG#gyt3LkHo z3>X<15L~RAs~g-;m6X_r=(wk%zR8X5<3o!u>!AI21&qqs z5!UL@>yh>1>cZ;Y({!|mLy&{D!wrJX=t~h#$;?ylfrUQXRm53!lUU@wB7^FEG74*Uzbqdl;|c4Pi}<3OV8J-U5NR=k4eRyO5gvWE8Jg6$ zW27t8kv>&d`a2`7q=~CqUWx7O9?bcSR}u7l{9-WSU6U5GfY$+7!I`=Z>l-&j>Tw$M zeTUqFXRBY3Tb-wush7)sVS98ttUV?q;Zox`mo|XzG1UKrMw`{I3?9*)#1+OHX>@-| z`DF6BtzB0>bF0|m!-e#cT!h-S`&%Q;z@Oq|My3Lg4Cc%Zu2TaG^_k_mvEQ$M3&~^` zWfzs3Qh4OF2+Tfhd(vj)Dj<+Wu>slg9%9W(7{YFFUHP9bFnGo5kC(TYHW*Vr&=;u@ z2(e|d4Qba#XxmJQuejdrUU8AfJ_tvoHyO7#eVJFr(H-*0l z@i>}@72P6i{_p~X@ywmJ zwTR+p{NPyUTUXO?*`(RN^~ciCaXS1Q;ypjVtlKtpu&2FOvG=MDYu(eRi||yL{`K~V zqMr3QWs}v>TX#9&W2onO>S)X8&?teVv*dy8NNe4~$w#U3i_qdI`(X=QeQjI!Z=U&? zo~7WhQ_44w803~Q+525z1wt&r2#tvIR}+V^OKB|6S>ZifkxT7b!A3ty(!wgkNG>!m zd!7M4UW<)AJ&hZ+}F6U;IA0 zk{{J}PP(TJ5txwe39J(;_byZTh`?;WFE4)N@JOq>?QbMTbloMeUoy?Iq^$Uf!tvEc zY}R`9i|UeMLnVc&{6z>>|27|NZ(@&dQyVK$VhlLcZ*#;Bo-U))?2o#9&w$wH3*2pb z^$HCNT9LlEHSI=QpS_pZ;R8$ghJZ7JJ-KnrWYo1Ma@v3Pa#q;B6oSC~+-Gfj#k2IV zog03B8FX>L7<}(gf6+cPEu`_bdmgt-a!s`x)pGawCDMEK(h2D__T8EaLrIoUa+m#g zGGT2(YeZ|BOOq=lt(cvim4XFv@&c8$R^41pH#QV$@fWh^UyEMB{khQ_v$~x-BEL!= z>uG>MPyH~p&_>yQu736|6hz^;>b4%W5P@mOz*qVa?D9K#1$>E}HY5)L)@&EwQaR9*ezpdzP03h%w0I=%>0LbP60F1sxa1;4| z0-3M2wLbtrPWRuy0~8efqf{1E9d#A+kfMX7;I79SUy;X-OJ9bC?=_QZXFoBCivX6D zWvVE%sXWLo(+dHr5SCseNsVY!Ao3^p_dSS5lXN| zJJ;H3-T-XCipA7VBI0bK z*#9(9f+2jBf6LE2yq7U$|0yHU&C0+2Q(Tp;Io$s#OyXsN)Dr)j$oK&%%YTROKly)^ z##4WpL5d}%2R|7fBf&s{=YwyAM}^;pCmyYYUP=(wCsZU4r?n!odYH%PF0u5CI7C<7 z0`=uJ2ti|&guNU2iARz+@DV@8C z9zss`t1Hnjqp7$fSoALKadaWHA$dmyUG@dt0f(eVFIq3(*a@H%s2_Kcjb)j(0ywpcNcW5E z3W@AUi^$|Hl%pmDiTBC&HA&g#C0nDr5V_?9<(dGNH>4F>05gCK;C#wmLi zYj;PH+(-!U#B>>__xZuvcjJ*4AcUs6@bG8Ebj)T!Lj*_vwbmmH?p+*u%GMgY<;Awj zgkF68Srvn`B#jb4Z~U5}E<=hVA0Y$KiwDIPe-J&{NAOu~oPTtEk-t%(3Fa8-I)X!_ z;&mSs-5C6w?Gf3@bvuknl}{ll@k1%hqeho+)S|h__s86uD4SBTktVBd9W(ogvGb2G zqgoi|&v7e^4GJTN@e?U-nN71pcWdo0P6zFx@S_pe9HVBrp=1o0{wO0K=dqQ$Hs-O&$D6|O12Of_Xh)Ee?v5j^@6YD+Myc7 z`Q=;7H(yV#KentbQg(|>=G(2e^4HTmB!7s%NWO1u%xa5=1tic^74fU6vk^3;(aShh zcP;2G&$T7fBk<{EQwm8yIBs8jXO>RJFo3wEK6thO7MXlBf2Er`Ell{3a|@cZWNLpE}@+&KAdR(|r+zV{XzpVut8(2#?V$qd!#@b_Ke zm8-dXe9t}GEt3gy@%m}2PEPy?kCqubhjqeZriXPM*9qd`FoYwuc(C(qx(u1#nL{pUUXhR)6Wy|{v5vSgQ@y2l1c zQDn;KH!rcub|PPZv)M20G};-anN*k|AW~~jDRzuz<_1UH&dVIZX5DY4%F+IyNufUK z!HV(p5B0}svoG3E7Sr778wZLP&c-_I3k|*d(}b&G$f)xU_Q3Hj3%G4hFzO)FVjH2v zbXh93Cp#n)tdk6Hz;D&zdnJu_ZT)T7*+61=wA_e)o2Q6i1g-s;9zw-E`|O}!d9A_$ zoB*J7_)y+(BTz0+x6VcoO@~}#&`A|+U5CoNhYQI1Zb0%gjR6frLtU6AgCZKIMZZK< zCj`VY{@PT9?sg%CDoA2{@Rjf_=reE{FKqm&NjZT2>KiIF9m?uFG>RWfCO+*HgU&xW z+^oEbk9NHHj8kbv7?!ZEhdyCH zSvJ}(t8bM-v-zS7@C^k&-3fx&Xdbq5an5603od&GgGbHB4Y}UON!`#M6&KB4nhu@o zrV-Q5NC-1^M0O?Kb}i|uZ@d7VBO{T-z?0{OIDrN33XJ9*T~pXI52wt=-$vh2yU@OB zogmZc8}*GN!#&I|Uw+t@0kE@nml=4n5WDaU6Zphe_BVKZ8BfvBDs^&*DtcislD&X& zdsA)KL`SY3zn!@0sdF1HROrx_)GEufLScA85!pCMnKLh%dRz6ju-ZXRh@B72^DztV zhc3E-Vgf&8Bf=VBO~p)EOnuY~Kx>!{9t?fsEwRRA$p)a_w*8 z6VpihxagMO@i6%N#ElHGz7|fM@(Bxm1`JMVfReD$54AMy-`|Xbz2QTcbzx^|92*t9 zC^X$TF0=h#g{b?qz`kc@a*@eE^vuqoYZ)l+?r)r~q))hCYT-?2ZiTY_HlGem?14H8 z0zpy7{nrY9zkh6|Jx}a%QX?QKp`A!zjB%SXo z_ETG~X7^Ts*vkV_Wq9}z)!a9M%g&GP;*Zq74U{W9GwE%3H{cJ0bNjkggm8nF?A7N{ zj58nCDgjy1B*4uZ*e(RAmI_)S8tTs{pt$shV<<{Hr|> zh_maXRHvi*tG(7`MLoH1uI8rGRQO@l^ic-tu8iXii6exO8K&V@G~PTC9)DFc1>y%E~o7xnWR{?4oe~xwWzJT6S%!Wis>c@)}}{)o*?#4j-0xMBvw}Ys@5T}$o-xaKRZj8k%ijIrb<3_! z$(wqcxTs?Fc*RQ%WZydM>7ue>i-g$EShmhl&W*u5{T-0wfTZe!emOqg-1dToaJ3pb9JdPtIv_Vrb8C`Y~|mwv-diKZ8BiO zs!TLqLGg)ar*k!ii|Kwieh@AMs<1-UiOyy+)tRUw_=R~Hm z53w)x+LJHNbeUjrK_)?inVNC;B|)+2u&7*Yqy;b4stN|D6R{u6ySLMf-{i3JY#w(l zpY;M;XSm~{sXM&hVh2S$S*Gt54IAa5GfW$(fCME7rygE-vEGmbwrboV5eI7@r zc0u3@-3@S(^;PqWb1bghv`el8@tN9$4d+bb(d1XbEU8hNuYx$Aey;1@*tW94hCTN) zvbpypt6?%8TRQk;Y_IP<%sL6>FHEU-Q)ctljI0B@yoKNjRVA&F$Dpd@?R*_|izi0) z?6nB{=`dlPWYu6!=FeeIOwTkx-p>MuHU=astI%JQ1{~s^^$7~#tpFN`?iyhIwVw0Z zevkCEI~+U<@K*D)_pCjNPg+TiY&Nb7U^e|{CRzUQ{*n5F#oFZ?ikQ+Dix=7=#mtr0 zLFU!|hY<8)F{&f1*dLn`vUpI`DR6}u*)Ykamub~(qBs=|Zs665(2};5QSkFtnKxqV z(%YDq9E8$*eGFWA{64!?j-~bfQQ)d82qDZ2sw*VR0Ar}B-X>*Vkn~K=Iy477FU|hL z6*_0{2sf09pCis}C|X67ZXtR;{&0a~@1%OqZsXoxKOdYXvG18BD`1{$x1zcUvA!bB@3q%Qva6pNqCj3cuxIJ+;(J3})bx zn8dpxSfsJK4aH#p%!C3TaCUR{`yFit6gl-cZ80cL8Dr)hzHu;pU0jSdSk2|6Q}Q1yRvww9x7BySTe=S80|bxa-u^)SfXcux5QMHsjpg zmRSYI&Ay)5F5wmY&Z0LbEuMNw%ahe$3ZB_xA?;SVC6Tc? zbM1I`NIli_yFahL`V?fJ;yX1aRe^a*GG`7Fq04AUI}|XnLH0cH^?8T0lGqHLpZ})% zZeS7yXFoPMT+dv=(7nXglA8@W5J-PLa>%m~evPu9!5GqSfY5e=dhvXkFI_Fly3M|O z_{gSZ|9(enKv0ro=M%WG*xL7OtSDbEjbC5=kS?QKePc52HVoa?9zg<1IZ&)GXmP5_ zZV~csu{?X#WeyZ0YFDUipT>0SQu2hS>xheY^q=+1pgM}Lm)_y0952uMISqvMRA3_o zFt`WHH=_uwEl-+v7j_{O({{Ry*+r}@hdF*Y-KlM!BB}A=$jgzd-!Jm4)HW^cn?Qtr z(pYYpW9i)ip14OU)GE?+*sBL|=`;6a`Yo7n2SIIvtL;R>cmr%aQ*Lw*ek@L;b}T4^ z{+3Ub1US39yGu3E9Gmn&k(z@FRaR`5B%B^s<#Bcma(j6Shr#Kc@dCcc7C+7upy`OA z?(3T%sjGp3a~3NNmo&RDwl$u7r5m6?8IBA80&ZZ0y|M_93U9@TPtgR#$p1xYiHU`! zKtV#HrT^EjbS}bpRtgG=j*a;A?eSM>JvJk&R6R@*W@&GC_UYBnfP*%iB$?rN$Z z;z#D0-VTc0Oh8|l8G8kvsUlOk16}?BxvrNYZ3Y)<6hXnLT0~W1OcP(9)Z2}%$LK{J zREJBEKQDF8Xv>KK28WO8&=uN#2A#(#fVfEsYo<`Avc$1y*X-&_TV@KwWIJ1+4xPBE zpmdS!J;T|7?^k_)IRq_&wBWubL+5JAudF}`q~-jg){TQ=KTcd#nPhOLPz6!Yaml1u zk$)6PB2++VqdTS6nky_&thT*mI*IF!1;k-#wSDx$tY-5dMYbv-1w-rGL4K#a&21#!Z>U-(yki2Qy@XN{>} zQv7SPIaEJoIHj^tRCrjlfRbtRKbaGS?5ErP)tSj8z#zDa-hv8biDG>Ke}8Ww{$WgX zutXkh$3^7w(!*xkirb1ma5FhQykxD0eoeC4?S5o!#$LR>8+5m~!UuJom1vh0TqvWn zpwZ>uEV|twCg%d{mkH)R4xIf9k3Tf3@%Z2rA-FWAEI9jVe^hu+V!BzZK5DF^){H|s z|ALCDRPEa4qYYg~Sd5ZZl9cK6bWD6(4s9WEikRo8yDjD{)f&O+?clGHNdwEdv_0QH`82^ z!8Z8hZvi$EvYHmhx6~q8%ND|FRWhRjCfI&?m3F$E#;vb_{ygK$wtB#F*wxT`7P|9p zeUF;dkmO?T1l(hg2QJNa4CY@`UA0>7EDI3*<1_zt>`@I&fPfLe&i?w!3uI4r8I$;; zJ0!~m-N32H?QbU+X#Ory-(ngR9mw^Ao#>V2vFZ24~7OwwedZ zb4EFw)=2jw7B~5-wmxbo&-U|J5quw2Q52>SN%s~+t zTX#`QRvz$DsAo6uYK+P0pJOl9o8S-Q1#_+JOYM35>s+AP(FgAvecI|%Lom5qb$?Sg z0m6142)<>-bhTolGMboI%ZheuW6cIB3BgJ%+9A$t+DtU>tv@sctfFC|tehV&1>)3) z1!!qC+OFd|z3op0k_K2|aJIF}ik63v^~~nA6JGQ4m%a4Aq2 z8!5R}GWr_17l(}wdVjp!Xf)@=SeO)*+_WQ{5`vi}cF?=J4ubSzn@QIcJY9N8j$SKF z{m$Yijujzrgz!MnkP$!T1DbHw0 z-y|gkT`$Rm!8~+C1{;CF@z6(kj$fcU9Hf%yxf{FQ76Pza#$$wks>Q#8IaiHj&dU8@ zt>8;~RVTA49im*?Od)nP$p`TlyCV-?<|Yl)=KdJ08CJcg>3FEn!A-&8Uo$#$w$f|1^RGx5d`a*t^8m zP=-3A5J!Pt1!NAY!!VVyxVo&nuZ6{4oWZm&(P{rI#)6HL(A^CWySZH0fl!{)3BSil z(T|FIWPPxEb|WxhjU4BD`4Ua3Kb-twmOV^;1L9-}QlObj@O9meqlC3nSQ!k>FE7v02zCD37Y@rbZ!;JUqC28Kr&(L}aR7W?P6-bAE4O>UyBSNZIQNv-~} zf(a%QXW>~0K5h5~Da9bI{uN#6O#~hG$p+`9B6o6&tKo^M4JGpV@u?UwI+_ dw=;7cRr$&X#;GTz_|IYj=x7+KH>f(r{tx{BcDn!o literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/DV-HDR.png b/client/src/images/mediainfo/codec/DV-HDR.png new file mode 100644 index 0000000000000000000000000000000000000000..3b45ed5312874e89c0cc389d4bfa24f70d147929 GIT binary patch literal 4308 zcmcgw`8yN})E`S)n%OGMfmYAX}naQAw7_McIk$sdc!c6Jf)rYtE@~HEf21MCNSD#8p>N@N52kTUcgf+kfZ?vd96y&+oc0BuFV7dcSL?e*X2Rtl zhKAVXbNOyoK@Q$LgE3{J*$T*GK+te;ii2;{|DT$^)4^cc&6ObmY#!FS%_)!Hk1rK? zmS2Wv5@@aWSB7%2=u6o|^JeL0qh^`r){VGuKo7nxnAAJWwM0oa9We)Zs32e8C-r6> zlfY=TJK&(~r8wL?Xnt|Uy9=-i1V0ykAVAmT2!NhKA8}(C?-|M12HY_AWcqJTaIfhP zRg4s-fIJ9Ui!p6Jvn6Nxz5R!seRB#Y1`;fr z{f*+S4OR9GwqSpxxFYzh_!VKaGtl5+;m)(b1zCCPN0`@z`J`dK_#DIqzVjbm6V`d6 zb8@3UzV=oMK$r4n09Alm30s9=UKbhjZx)0oJ+GP;zMyuG*+lb6&&A^DiS+d(7u2l5 zq7@2l&QruId*xS8>yG1=Xs?#Wz*$I_D{BQbG%Gq)70KNJHHv+Tk%-;DkKoS-aSfe$ zC&0edo{&oWg{;`L?Nu5(-z7JV!8CiXD#nInZ3lsNSYdlLeS1O|>P^q0%@mNlikCtL z;vSkyrXr(FshcI!>5}880jVnT{(n~GYNFfklZN@f@Y4}L2Bdo%(`4BuY#s=7fH|S> z@=nu57-Bub95TVWTpqZR)=DW5i+5tf*vhC)gs~OhoCs6xe9}i=_yfS?lM7|^NX^L~V#J$im}ryJ5a?aZ=0RlEyC{I7z+5;wnMjKQ*8|JU zdo5#~%7wYA3cw=ZZ||?2+Pt0;2Up`hG5hxFg=!jp+)f|twfv@mvIv;`Fcb@!^fs4UqeW#4kb6a)$=oHT8rSPd`ZdjNj`MSV^_mR@zAj7mx8Be10TJp*kGe& zglVRcN{h=N`#%EJMld7Jb5yWt1QRzFu|K>XY~_ydD=A(P57HDNGU!3hx;fX8>*qxqqi1?Qah;H zT{AfM_-2Z0hlRG$kvV7x)^KfoUhh?iA{21JiS@SJK%FDZ{>JBj@V>*QU6<|35@>q? z9Me<+b0|?V#MmD4h*bQ+naLqKIzGaDefJG8{T43XDgfQ(q1qE&fN{5D&KnbW@whdXu5A|t_9kxT18%IE6C<)VD8WR$<-4k{S028iw7vJ0VJD{+xbcJc>y!3J$hTSeU7dM4Xue?iBth7VzMLP&Gz(oXNwVwwE#-QXf!9g)cYY)l zk>{+wS7(J7(Z`wbBWFu{Cy#pYl;L6S;>~xPM6J_RUay(8sY?p?$WUCDx?2}%`jc`| zp8RSNRw&u0DJ(F?w$lTXQ;hZdT&vVPKIGe)v0Vg~JoA(&^c{4>&fjkFtD47<%v;*>=!moN?q8 zc<1BZr)r(HAes}fKq#M-_{$~#4PyfW^EY^dkCBa--m>1N;HDIFEtUsTYBN{Eq7B&* z=ngt;LZG^uJjc9cF-#WwDx$+`It5No>TAZ_UUM+8igka%s7SkC*{aD~4g#;TZ z*IAbqEP@6ygeuOK-ovh{FOMqiCOq->U-6pegYrabLp6~N=8(dZ|tq9l+G)7=V ztq63O4&O)4m&jXe6>KS!Tk_;n%ZnDj>s+zEJcP3=r=Pfxd|zl|Q)*0mS0d6)_jp

L=PY;=k><{qiWCV%Y;*jMZ3RfWZNat?M~ za_l*b82t>Fl0W_zUbs1_x_>}}^Mld*=A%G1^KoS+G4u|CWqKIyA*MM@Y!j-aEXFYO zmFPR-5Xbwe<9KO&i|JE3#9^%@$Nr`JD_mdNop=+fdu8#^jpLcPaVT9h|H0)zlCS#F zp4dT)-;J}++wt_trH5@umLeP~k@Tn1+bwNwSE&~%@B2+clF7(~d#mH^Gm8-(nump$ zX8GlhRYspPN8N#?zl>EHU9$weF1|Edy-J}bOIm+dSUZ*KuFCO)FFtI8sHJ|dQuCuH zi2QPj>#fe(zS3K5`S3-(tG@TcSQ(5%VA9h~E9fyzlydmE5sr8@7MgkgTKBC?T2JwV z_)4-rvDWJlADcl2o}^DAx6#;W_ouE+8Q3&uMA|Gf@P2;lm>qEcT%{g57Zf`IqQ=0IlTiG-F`DA zl`gp5!uUJr=nn3J~bsSAmlhJSC88?kABg!@PS5nAQSqZ2_C5=zI#~SZO75{Wc zj@?k5poSNyE7lQurop|!Nmi<#!e7} z=uuzzI+%jKi*|d7otB)dQwZ4`hdwaw2gPAIF`Ayz<<{ZdNQG6cV~! zsm?t4PD$eQ>&t=YZ^PVltHN{Gy|}axm2i*0$*b^Mc+VhH=8^QZtEYa_C1CvPKjt~- zWC>AP8#1L1FB5Nbj+fkH_>Yc$A-H*1xMd5bE(QBLGuK}yl+2QIe9d&f?zTBo z{A1f-B!AA#c*k(dI^_&fjbNbWJN^3}BM>rMsUnZwl|UJ7$8!J~uxFj_fiDyhnU6z5 zPD@L#M&HHx!Yrku&e8dNysHf20<7xHdCFigiOAaRmL_yN2m@_Sc(-*P0<9eDok6#Y zY*qA$QJsnIMS;3XYN0Y5On)Q}%H)=!cMGE?OsS#hcx5#*SlTNlpFHy-spvX6=a#3< zya<<>oDMRO_jE!8YXgSfo8SB*=)moxV4MTx_VuB{R9VC}p=GrD5n>*sd(u z>%UDog&*QVv_dtYg&6cUmgF0O7AT%JLz`9Z*rVHVqzx3BIvk-EFnL-}(&SAC!8MpS zJcE2cmwo8J`im0sFiL`@zb_?fBnl4gw#1lidl+ssg<67v8Innl`lm|RHkQ*&83{?J z$69=B7d1_B;pgw>sg&(k1V2M+`H6Czo6+Ot?2cDI9frAQY*spA(nl!s(G~x$6Iuu7 z&}<09-%KlTA)JV%lH*o=P>h&hVPwai?9i+YFWW$^F^jI zXm81Fyi7|xJ{Ho2Oa;U9wz~&(tSW#^u7{0(>(Y>H)RkW!bo-4_@uSabj%7Q+w6Z_Q zRo9EVB~b=9lv68a{mh0 z5`7>9Wqhpos}HH=3kvEBi2p*&>{%!6Zy=)rqq1AAU${uR6eyFw(*rGh_}-ns%{7oD zgOKAfY_DF~G;Pd@+4|!Qnr8r}S1*ZwTb+57lMZ5YQ)pt{76ytECTV(FB4YywVeDBzJ%bWiH f`tSeq`3Kf+G&ESmy-4x+O#y)0JKHtdpzi(;_Z2IE literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/DV-HDR_extended.png b/client/src/images/mediainfo/codec/DV-HDR_extended.png new file mode 100644 index 0000000000000000000000000000000000000000..064720f94be07fc708b1292f45a272cbc1a6c635 GIT binary patch literal 5765 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 literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/DV-Plus-DTS-X.png b/client/src/images/mediainfo/codec/DV-Plus-DTS-X.png new file mode 100644 index 0000000000000000000000000000000000000000..57d2b77ae51bec313697f31d96a6b8d1948cbcc9 GIT binary patch literal 9595 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 Gr~d<@%1#sj literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/DV-Plus-TrueHD-Atmos.png b/client/src/images/mediainfo/codec/DV-Plus-TrueHD-Atmos.png new file mode 100644 index 0000000000000000000000000000000000000000..689a6d5ee6b99b3cd2be91dc97ded7fe131affc8 GIT binary patch literal 8882 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 literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/DV-Plus-TrueHD.png b/client/src/images/mediainfo/codec/DV-Plus-TrueHD.png new file mode 100644 index 0000000000000000000000000000000000000000..e79b7ca02a26fa1196a71b152290a0e4a84463f9 GIT binary patch literal 9505 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 literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/DV-Plus.png b/client/src/images/mediainfo/codec/DV-Plus.png new file mode 100644 index 0000000000000000000000000000000000000000..3b45ed5312874e89c0cc389d4bfa24f70d147929 GIT binary patch literal 4308 zcmcgw`8yN})E`S)n%OGMfmYAX}naQAw7_McIk$sdc!c6Jf)rYtE@~HEf21MCNSD#8p>N@N52kTUcgf+kfZ?vd96y&+oc0BuFV7dcSL?e*X2Rtl zhKAVXbNOyoK@Q$LgE3{J*$T*GK+te;ii2;{|DT$^)4^cc&6ObmY#!FS%_)!Hk1rK? zmS2Wv5@@aWSB7%2=u6o|^JeL0qh^`r){VGuKo7nxnAAJWwM0oa9We)Zs32e8C-r6> zlfY=TJK&(~r8wL?Xnt|Uy9=-i1V0ykAVAmT2!NhKA8}(C?-|M12HY_AWcqJTaIfhP zRg4s-fIJ9Ui!p6Jvn6Nxz5R!seRB#Y1`;fr z{f*+S4OR9GwqSpxxFYzh_!VKaGtl5+;m)(b1zCCPN0`@z`J`dK_#DIqzVjbm6V`d6 zb8@3UzV=oMK$r4n09Alm30s9=UKbhjZx)0oJ+GP;zMyuG*+lb6&&A^DiS+d(7u2l5 zq7@2l&QruId*xS8>yG1=Xs?#Wz*$I_D{BQbG%Gq)70KNJHHv+Tk%-;DkKoS-aSfe$ zC&0edo{&oWg{;`L?Nu5(-z7JV!8CiXD#nInZ3lsNSYdlLeS1O|>P^q0%@mNlikCtL z;vSkyrXr(FshcI!>5}880jVnT{(n~GYNFfklZN@f@Y4}L2Bdo%(`4BuY#s=7fH|S> z@=nu57-Bub95TVWTpqZR)=DW5i+5tf*vhC)gs~OhoCs6xe9}i=_yfS?lM7|^NX^L~V#J$im}ryJ5a?aZ=0RlEyC{I7z+5;wnMjKQ*8|JU zdo5#~%7wYA3cw=ZZ||?2+Pt0;2Up`hG5hxFg=!jp+)f|twfv@mvIv;`Fcb@!^fs4UqeW#4kb6a)$=oHT8rSPd`ZdjNj`MSV^_mR@zAj7mx8Be10TJp*kGe& zglVRcN{h=N`#%EJMld7Jb5yWt1QRzFu|K>XY~_ydD=A(P57HDNGU!3hx;fX8>*qxqqi1?Qah;H zT{AfM_-2Z0hlRG$kvV7x)^KfoUhh?iA{21JiS@SJK%FDZ{>JBj@V>*QU6<|35@>q? z9Me<+b0|?V#MmD4h*bQ+naLqKIzGaDefJG8{T43XDgfQ(q1qE&fN{5D&KnbW@whdXu5A|t_9kxT18%IE6C<)VD8WR$<-4k{S028iw7vJ0VJD{+xbcJc>y!3J$hTSeU7dM4Xue?iBth7VzMLP&Gz(oXNwVwwE#-QXf!9g)cYY)l zk>{+wS7(J7(Z`wbBWFu{Cy#pYl;L6S;>~xPM6J_RUay(8sY?p?$WUCDx?2}%`jc`| zp8RSNRw&u0DJ(F?w$lTXQ;hZdT&vVPKIGe)v0Vg~JoA(&^c{4>&fjkFtD47<%v;*>=!moN?q8 zc<1BZr)r(HAes}fKq#M-_{$~#4PyfW^EY^dkCBa--m>1N;HDIFEtUsTYBN{Eq7B&* z=ngt;LZG^uJjc9cF-#WwDx$+`It5No>TAZ_UUM+8igka%s7SkC*{aD~4g#;TZ z*IAbqEP@6ygeuOK-ovh{FOMqiCOq->U-6pegYrabLp6~N=8(dZ|tq9l+G)7=V ztq63O4&O)4m&jXe6>KS!Tk_;n%ZnDj>s+zEJcP3=r=Pfxd|zl|Q)*0mS0d6)_jp

L=PY;=k><{qiWCV%Y;*jMZ3RfWZNat?M~ za_l*b82t>Fl0W_zUbs1_x_>}}^Mld*=A%G1^KoS+G4u|CWqKIyA*MM@Y!j-aEXFYO zmFPR-5Xbwe<9KO&i|JE3#9^%@$Nr`JD_mdNop=+fdu8#^jpLcPaVT9h|H0)zlCS#F zp4dT)-;J}++wt_trH5@umLeP~k@Tn1+bwNwSE&~%@B2+clF7(~d#mH^Gm8-(nump$ zX8GlhRYspPN8N#?zl>EHU9$weF1|Edy-J}bOIm+dSUZ*KuFCO)FFtI8sHJ|dQuCuH zi2QPj>#fe(zS3K5`S3-(tG@TcSQ(5%VA9h~E9fyzlydmE5sr8@7MgkgTKBC?T2JwV z_)4-rvDWJlADcl2o}^DAx6#;W_ouE+8Q3&uMA|Gf@P2;lm>qEcT%{g57Zf`IqQ=0IlTiG-F`DA zl`gp5!uUJr=nn3J~bsSAmlhJSC88?kABg!@PS5nAQSqZ2_C5=zI#~SZO75{Wc zj@?k5poSNyE7lQurop|!Nmi<#!e7} z=uuzzI+%jKi*|d7otB)dQwZ4`hdwaw2gPAIF`Ayz<<{ZdNQG6cV~! zsm?t4PD$eQ>&t=YZ^PVltHN{Gy|}axm2i*0$*b^Mc+VhH=8^QZtEYa_C1CvPKjt~- zWC>AP8#1L1FB5Nbj+fkH_>Yc$A-H*1xMd5bE(QBLGuK}yl+2QIe9d&f?zTBo z{A1f-B!AA#c*k(dI^_&fjbNbWJN^3}BM>rMsUnZwl|UJ7$8!J~uxFj_fiDyhnU6z5 zPD@L#M&HHx!Yrku&e8dNysHf20<7xHdCFigiOAaRmL_yN2m@_Sc(-*P0<9eDok6#Y zY*qA$QJsnIMS;3XYN0Y5On)Q}%H)=!cMGE?OsS#hcx5#*SlTNlpFHy-spvX6=a#3< zya<<>oDMRO_jE!8YXgSfo8SB*=)moxV4MTx_VuB{R9VC}p=GrD5n>*sd(u z>%UDog&*QVv_dtYg&6cUmgF0O7AT%JLz`9Z*rVHVqzx3BIvk-EFnL-}(&SAC!8MpS zJcE2cmwo8J`im0sFiL`@zb_?fBnl4gw#1lidl+ssg<67v8Innl`lm|RHkQ*&83{?J z$69=B7d1_B;pgw>sg&(k1V2M+`H6Czo6+Ot?2cDI9frAQY*spA(nl!s(G~x$6Iuu7 z&}<09-%KlTA)JV%lH*o=P>h&hVPwai?9i+YFWW$^F^jI zXm81Fyi7|xJ{Ho2Oa;U9wz~&(tSW#^u7{0(>(Y>H)RkW!bo-4_@uSabj%7Q+w6Z_Q zRo9EVB~b=9lv68a{mh0 z5`7>9Wqhpos}HH=3kvEBi2p*&>{%!6Zy=)rqq1AAU${uR6eyFw(*rGh_}-ns%{7oD zgOKAfY_DF~G;Pd@+4|!Qnr8r}S1*ZwTb+57lMZ5YQ)pt{76ytECTV(FB4YywVeDBzJ%bWiH f`tSeq`3Kf+G&ESmy-4x+O#y)0JKHtdpzi(;_Z2IE literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/DV-Plus_extended.png b/client/src/images/mediainfo/codec/DV-Plus_extended.png new file mode 100644 index 0000000000000000000000000000000000000000..84214eccda37c21516166d4c3abde0ee96562e9c GIT binary patch literal 6706 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 H*}wdMqrMPY literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/DV-TrueHD-Atmos.png b/client/src/images/mediainfo/codec/DV-TrueHD-Atmos.png new file mode 100644 index 0000000000000000000000000000000000000000..689a6d5ee6b99b3cd2be91dc97ded7fe131affc8 GIT binary patch literal 8882 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 literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/DV-TrueHD.png b/client/src/images/mediainfo/codec/DV-TrueHD.png new file mode 100644 index 0000000000000000000000000000000000000000..e79b7ca02a26fa1196a71b152290a0e4a84463f9 GIT binary patch literal 9505 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 literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/DV.png b/client/src/images/mediainfo/codec/DV.png new file mode 100644 index 0000000000000000000000000000000000000000..3b45ed5312874e89c0cc389d4bfa24f70d147929 GIT binary patch literal 4308 zcmcgw`8yN})E`S)n%OGMfmYAX}naQAw7_McIk$sdc!c6Jf)rYtE@~HEf21MCNSD#8p>N@N52kTUcgf+kfZ?vd96y&+oc0BuFV7dcSL?e*X2Rtl zhKAVXbNOyoK@Q$LgE3{J*$T*GK+te;ii2;{|DT$^)4^cc&6ObmY#!FS%_)!Hk1rK? zmS2Wv5@@aWSB7%2=u6o|^JeL0qh^`r){VGuKo7nxnAAJWwM0oa9We)Zs32e8C-r6> zlfY=TJK&(~r8wL?Xnt|Uy9=-i1V0ykAVAmT2!NhKA8}(C?-|M12HY_AWcqJTaIfhP zRg4s-fIJ9Ui!p6Jvn6Nxz5R!seRB#Y1`;fr z{f*+S4OR9GwqSpxxFYzh_!VKaGtl5+;m)(b1zCCPN0`@z`J`dK_#DIqzVjbm6V`d6 zb8@3UzV=oMK$r4n09Alm30s9=UKbhjZx)0oJ+GP;zMyuG*+lb6&&A^DiS+d(7u2l5 zq7@2l&QruId*xS8>yG1=Xs?#Wz*$I_D{BQbG%Gq)70KNJHHv+Tk%-;DkKoS-aSfe$ zC&0edo{&oWg{;`L?Nu5(-z7JV!8CiXD#nInZ3lsNSYdlLeS1O|>P^q0%@mNlikCtL z;vSkyrXr(FshcI!>5}880jVnT{(n~GYNFfklZN@f@Y4}L2Bdo%(`4BuY#s=7fH|S> z@=nu57-Bub95TVWTpqZR)=DW5i+5tf*vhC)gs~OhoCs6xe9}i=_yfS?lM7|^NX^L~V#J$im}ryJ5a?aZ=0RlEyC{I7z+5;wnMjKQ*8|JU zdo5#~%7wYA3cw=ZZ||?2+Pt0;2Up`hG5hxFg=!jp+)f|twfv@mvIv;`Fcb@!^fs4UqeW#4kb6a)$=oHT8rSPd`ZdjNj`MSV^_mR@zAj7mx8Be10TJp*kGe& zglVRcN{h=N`#%EJMld7Jb5yWt1QRzFu|K>XY~_ydD=A(P57HDNGU!3hx;fX8>*qxqqi1?Qah;H zT{AfM_-2Z0hlRG$kvV7x)^KfoUhh?iA{21JiS@SJK%FDZ{>JBj@V>*QU6<|35@>q? z9Me<+b0|?V#MmD4h*bQ+naLqKIzGaDefJG8{T43XDgfQ(q1qE&fN{5D&KnbW@whdXu5A|t_9kxT18%IE6C<)VD8WR$<-4k{S028iw7vJ0VJD{+xbcJc>y!3J$hTSeU7dM4Xue?iBth7VzMLP&Gz(oXNwVwwE#-QXf!9g)cYY)l zk>{+wS7(J7(Z`wbBWFu{Cy#pYl;L6S;>~xPM6J_RUay(8sY?p?$WUCDx?2}%`jc`| zp8RSNRw&u0DJ(F?w$lTXQ;hZdT&vVPKIGe)v0Vg~JoA(&^c{4>&fjkFtD47<%v;*>=!moN?q8 zc<1BZr)r(HAes}fKq#M-_{$~#4PyfW^EY^dkCBa--m>1N;HDIFEtUsTYBN{Eq7B&* z=ngt;LZG^uJjc9cF-#WwDx$+`It5No>TAZ_UUM+8igka%s7SkC*{aD~4g#;TZ z*IAbqEP@6ygeuOK-ovh{FOMqiCOq->U-6pegYrabLp6~N=8(dZ|tq9l+G)7=V ztq63O4&O)4m&jXe6>KS!Tk_;n%ZnDj>s+zEJcP3=r=Pfxd|zl|Q)*0mS0d6)_jp

L=PY;=k><{qiWCV%Y;*jMZ3RfWZNat?M~ za_l*b82t>Fl0W_zUbs1_x_>}}^Mld*=A%G1^KoS+G4u|CWqKIyA*MM@Y!j-aEXFYO zmFPR-5Xbwe<9KO&i|JE3#9^%@$Nr`JD_mdNop=+fdu8#^jpLcPaVT9h|H0)zlCS#F zp4dT)-;J}++wt_trH5@umLeP~k@Tn1+bwNwSE&~%@B2+clF7(~d#mH^Gm8-(nump$ zX8GlhRYspPN8N#?zl>EHU9$weF1|Edy-J}bOIm+dSUZ*KuFCO)FFtI8sHJ|dQuCuH zi2QPj>#fe(zS3K5`S3-(tG@TcSQ(5%VA9h~E9fyzlydmE5sr8@7MgkgTKBC?T2JwV z_)4-rvDWJlADcl2o}^DAx6#;W_ouE+8Q3&uMA|Gf@P2;lm>qEcT%{g57Zf`IqQ=0IlTiG-F`DA zl`gp5!uUJr=nn3J~bsSAmlhJSC88?kABg!@PS5nAQSqZ2_C5=zI#~SZO75{Wc zj@?k5poSNyE7lQurop|!Nmi<#!e7} z=uuzzI+%jKi*|d7otB)dQwZ4`hdwaw2gPAIF`Ayz<<{ZdNQG6cV~! zsm?t4PD$eQ>&t=YZ^PVltHN{Gy|}axm2i*0$*b^Mc+VhH=8^QZtEYa_C1CvPKjt~- zWC>AP8#1L1FB5Nbj+fkH_>Yc$A-H*1xMd5bE(QBLGuK}yl+2QIe9d&f?zTBo z{A1f-B!AA#c*k(dI^_&fjbNbWJN^3}BM>rMsUnZwl|UJ7$8!J~uxFj_fiDyhnU6z5 zPD@L#M&HHx!Yrku&e8dNysHf20<7xHdCFigiOAaRmL_yN2m@_Sc(-*P0<9eDok6#Y zY*qA$QJsnIMS;3XYN0Y5On)Q}%H)=!cMGE?OsS#hcx5#*SlTNlpFHy-spvX6=a#3< zya<<>oDMRO_jE!8YXgSfo8SB*=)moxV4MTx_VuB{R9VC}p=GrD5n>*sd(u z>%UDog&*QVv_dtYg&6cUmgF0O7AT%JLz`9Z*rVHVqzx3BIvk-EFnL-}(&SAC!8MpS zJcE2cmwo8J`im0sFiL`@zb_?fBnl4gw#1lidl+ssg<67v8Innl`lm|RHkQ*&83{?J z$69=B7d1_B;pgw>sg&(k1V2M+`H6Czo6+Ot?2cDI9frAQY*spA(nl!s(G~x$6Iuu7 z&}<09-%KlTA)JV%lH*o=P>h&hVPwai?9i+YFWW$^F^jI zXm81Fyi7|xJ{Ho2Oa;U9wz~&(tSW#^u7{0(>(Y>H)RkW!bo-4_@uSabj%7Q+w6Z_Q zRo9EVB~b=9lv68a{mh0 z5`7>9Wqhpos}HH=3kvEBi2p*&>{%!6Zy=)rqq1AAU${uR6eyFw(*rGh_}-ns%{7oD zgOKAfY_DF~G;Pd@+4|!Qnr8r}S1*ZwTb+57lMZ5YQ)pt{76ytECTV(FB4YywVeDBzJ%bWiH f`tSeq`3Kf+G&ESmy-4x+O#y)0JKHtdpzi(;_Z2IE literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/DigitalPlus.png b/client/src/images/mediainfo/codec/DigitalPlus.png new file mode 100644 index 0000000000000000000000000000000000000000..416dc5ed345b7df6fb4b44c07098fb2d81d9af65 GIT binary patch literal 3488 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 O1u!wNfW6a4#{LgA7rCYY literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/HDR-Atmos.png b/client/src/images/mediainfo/codec/HDR-Atmos.png new file mode 100644 index 0000000000000000000000000000000000000000..0336ab2afd1f10f0b369490d5441278987afa3a3 GIT binary patch literal 5962 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 D@N$ks literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/HDR-DTS-HD.png b/client/src/images/mediainfo/codec/HDR-DTS-HD.png new file mode 100644 index 0000000000000000000000000000000000000000..c54e0faa85de2b34b5dee8cd39305a631410ee7a GIT binary patch literal 3634 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 literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/HDR.png b/client/src/images/mediainfo/codec/HDR.png new file mode 100644 index 0000000000000000000000000000000000000000..79eea9d0c7eb66d724e6850fee3d15bcb4340fed GIT binary patch literal 1250 zcmeAS@N?(olHy`uVBq!ia0vp^^MN>kgAGWsFJ0aUq&N#aB8wRqxP?KOkzv*x2?hq1 zDV{ElAr*7p-u3U88Y*%8fxR_mFy?h+X0051rDj{&zHL z9=Q>eni;*|S>Xct85y7dRvw6apt;}`vx@Tp=L1*G?&mXwH+(%1KQZb%!{Gym`1UT# zVoE+x`GBW@!fCI|z4Ba+*LCNbMe~)yO(xp*Vx4| znpK)7ZsENVuxP`f=jrwjpSvkJSntS7-kyH%+FH$;!tjQ8p?LA&RJW}X z%yqssu|Dr^SLN-#`|-&2$bZhov$;*Q_AP5XFJJcRslas46WPzAnPe3HT#YVEHQs!< zD@oS#?Vdy1IVvt@-Y%Mb;bvaBr>)LL8MaW{FCCXS-OD8v?sR4(TF;p|L+*OM#Oe>8 z?%ECh+*kL_*}b4_chcANcTHULBj%on4R|QLn!iXqh)S9R-q`Ad47ZyX-3KCSW4a`Jlb+ymL$XIC-r zG0zsibk6;NSK9Xl)l>A0%BKrHnEY~m{=A4|4WTUoNB8(fgf7x(UB7z{>$Z{~|C$f< zw^>^LND?orXVxK&ppxFsO+9;=aGgvm<3`NCozQDTzcZ9cHEUhlY= zcYWC@9#i(;xBJ~re*X|4TFsOEtKqqq*}@M$f8ER6EuU2V_~o@pz8W?A+U9PnX0*tV zFy~mKceMqWG+2JzDExh`lxh3)EQg1mH@AK}{rlQOlY&bIdAtvE?5$hRAD8>LTlnG0 zT^}B2tD3F*aP__IA=53l4=Uz(i{!ICdw#E?^FyTAn|VV5J`Jo~`i&e|mw zt`QH5qYq`zzH!ZK8t~t)y**o2VU4iG{BQfW%RPA5a!YpV4-FPUVcE~bXJc%c|CyB6 Xhb?BO=JGBA7FrCRu6{1-oD!M!Z`jjz}eH(2^ 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 literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/Plus-DTS-X.png b/client/src/images/mediainfo/codec/Plus-DTS-X.png new file mode 100644 index 0000000000000000000000000000000000000000..bbab2b854f5c463b64bc65d485f46d5a8e7fefec GIT binary patch literal 7306 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 literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/Plus-DigitalPlus.png b/client/src/images/mediainfo/codec/Plus-DigitalPlus.png new file mode 100644 index 0000000000000000000000000000000000000000..291a4847e1dabc644a5ed6966b6b97c237d6ded8 GIT binary patch literal 5622 zcmc(DXEYpK)U^_w=!EEmh#I4l2qC&8dN+vC>qNBZ;}I<(%IGB#iC#v@s1rN{V@B^~ z63j#lBidks&+~o%zTfX!?^)~KbJyML{McvRyY^W-<(Zj26Fo0I85tRqp@FVB85u>! z_4yes_4WSx{nOm*L>FXW2PPw9VE=EClNA=y?dtXG>wpQc|XU$J)j>Mr)t!}>Btqq|vI#!6K)VB8Ahco()<_P*5^%-vQ zKU3{xjAxo4LM&`^5C~xXG8nWuEC(j2g<(-Wu-DFLz|(`GDC`OV5Vm)*22%$-*1e8O zgW7G1H`np~m&L?gk?VL)&#QM0h#6^r{O?{@(u;$Yl{M=wRmOiP+o$s9|J8lqP)xl> z4RR8mT%)Wh=Kq7mJ}8!hZjJ?ka3N2UBL;+dlb{%ZBENZK552g?l<2ZX@4gIBs)^i|(vh+5hB8wo4vxtF9!t3JVeL(3LYP8YoEcYEJ!3S;%c%H(cSeKc z_CF(>qW8Elb_j4>blfWKu&c&Fp&B9@F&vjhy`Tbd|2++HC-w56<;dp9hskZA<1=b1 zz-DnM@lqY=+5Q098aEC>U+`i`h#Kj!7|TGqj;$USBUQ69Iy?=Y-fy^l_%|QWDbIss z4UYwA#O*IHI6lu?T|d8oY+S0K;JvZKpmzTKO|#x!{r6OeP!v2gdb3Ak-wm^faE2Vt ziu8v{9v5$^zmtI+Zq`E%|6Wl*$)Rev_YM9f#7MFq;p0(_eIck-#huWnH(r%@669wo zFkCoC{P{Tx=!6YpklHAf7AL5NL;daxXI}JtqWYF=ip1MT_Vt@uM^)-Y#y!}~SWpV1 zR7~a9btLvEi}-u+FI0R}360z{L^jgjlIAEf zMimh=jtszq*8zg>-r_ezFE*vlx{1UnLjB+dFX4iwhuAgmh;r&C68@}ReRvT;1E0i? z^uxVuy9-wRK+vMaf&j}Li}QV!&5h4NoWtP*UZu`unIQh{wr7CV!u$YV z9bU?S?T?HXOO&c<&)gT#xXU7+Gz%{kj0uLVf7O;pvMgFIY?@@IfjvY(X_Y1tZNFny zmC}D|Y>!fsxjr5_B9RG_Sw|6`9<*BOhk>d711lhe=HFc9#*JAQdkWBHHOc+0%~W zfjaeGH6O<~C1U3XwLZr*s9Bgs^X`Nx?q^gnWc^A)gz>CyY>pugQV(iG$^of?|Cr0N zn7@M~y5h>B2rl>2`NIj!5{h;)Ea40CCzGFDsWWNIS!zlF&Hid1$8aMN6m_UBC0;;R)1 zZ&PlONo~ZUDffqD70SkdP8NleS5(&F1oRgL3&MpYA_>Ap9simATz!7`BP5UAJFZ|{ zIQ{L zpIW7GG|Yz!x6$={e~p<3VT-{7yd!fZCBkziS7bj(DLrypqW)Rw$tXrvup{bFiq;h0 zh+gbvJl$a<6>u~M&}4)Kn@=p%4a8^Pil-F*#z1?~vX@a=yOFQ{k~RWW(f7?x!OnTB zM@w|9r6V`Gf_OQQ9*dw2Qv2anHpS)vdGs?F0^EmZ9nmmbx0>HHGB^wc7J&CquH02_ z`jlxY#Kl9%;g*)(R1e*$@*hkHd62%&nLI2BF&3iSDB@^*kT4WIj`v2v37_%434;yV z8N>ASyhX?1IyAd8X49ri@$v^p!&xth6gJ4n02fRaXP(E^`)w80CrTaRUKs`*;#=hX z->s=KC@QMYHSF@7GS4Xp7s8Oq{%qh!@ZS6#7chTNNdzck#lgs*{{C)=O-h%nV#(-%vpX~7l z%iD^th-C^(H5zxceWv}4Fdc8@M@~#!ZoD;I(MP_dwe;&K(csx03FFhJ8;s4{}XSkH%6bRvb?ljMJ%HbIW8h~pYLO}u8mQ(^%@ z)ZSqCdy!YOSL4wj-!HW-SsI&|bUu-cJsFM9?6$%(f$1NN8 ziib`e#q`1M>2ISY{QLii=cPI5{~<;=I8kL8b^jZ6RUthV(x*bWa8opotg?NyP}LhC z)C{hj!||2cypLVe3LLsZe-4-bl#a8o^jyus-$o}8W4t=({YSXsNpGylHbceH_I{8n<=#`6(lvDMu#n049xq(CR z=F_z=+Zu6!CXYanNK0)>QL}xPLmCa7bkDldosL zJ%n8!jjQEynV-*DPJGROwj(k-y$V)R=r`CGmzYe#`qXty26U9sO!&0*uKF4Jw51U* z%df>(J}QwI69^oCpX}7*@B8X`9nt98*iS$MmO!IhkeaSE@l>wmiQ-T zTAz$f1ax!+b}W0gFYhuz;Ir0k*SQ4O9@yfiq^^lOQ*h$et)N(vREQFW7*ZPhs{RuTPcZ0}(AnXyhL7Xyj*HpP<`i(LedbFTv?UQwgSdKTO)0Zh6`-8D@9X z3{);C;m#iT$|TKC`d>0J7Cl)dgq=LPC3+N5 zs=xG;V;Vz?VO3jhxDSh_T@6bOs38bTCwA#;7tWJkt=iD-sAS=ium96>Tn9@`x}=9! zn1G;OZU4+J2gcWwTZcE8%@uMqRlI8xI%U$izNy(q9qyB{l^NMXqnfxjHXn((K-~6~ znf!IHa3V@F$kgp&^AgD>e~}Iak9pEMzl%d?&{=>#)xmpt7Wl)hwF{+a+nSs0gY>^t zo;sTw8hhRI>du~st*Fz|*LE*i)2HS2pl`FU&$xcZEd7?;W1jvGZ>xIKW4&&Ct;3vk zi>vW~QSjxvw!~FrtGFf*WE`g@ZJ^Mh`>HvAGYesCup_#77gtR4a4tgZKI{|X9mD(L z&El>W6E&n;vyYmo5_J4ipU*`KU;o2|%jBk|B#I%)d7n1rcKiDI4tp6IJ_^1mpEgGv zJcEh5QI;F0+1D~>{{72jj`6p#>M;1U#~(3wsm7E(Uy?fgbKPiO2{d=S#=^?(i)PSFgl}8EGetZ9KVVDL@IOjgRkSLYD?u8O>mHahtUS6H6=|=uz zU3{|{GP#Rc71{kN6Q$qo?$)WFhqM`59u{3rhWp{feC|gda+|fddtphh{V7Qtmectk zs5FzB)E^loJB!wdw^Zt0TBU9g)pT6`T?o6fu5nR;(L2zRN7ONoU*0(!cNhV-J213| z>ep>enl6Q(Ip%pJ)h4{KYoCm|3f9@}hOB#L)z7H(c}V9=F7pa6-{V!fP{JtctfLj; zw|XE-dFw8j*hNr#GB}_xubrQco_8aU%!bWOUb4(4Y-)W5-M$AeRwi>P564Ew^~7x(W=R1psm=(Q|?b2CdDgcO4JQXj(l`jKYT0@j&WC5ZPab%j0Q zz2#w66;d7cmgP;QK>E)4y-6U-zyumOSvM^Xbaz|Ij<1a`qks~_UpK-ojHW(^bT$H) z{Sn)cn2&uFF^ds(R56ce=R7o}(JlDB9Ee?>Kh<0Qkci(iHu5h(;Jc-fRKOl^Lqp+^ zhUl_jASiL=`<4v1x=iZZGlzHrbAIev9hH+6BVxpf*&))x)E#C`siNGp9>8Lym~t1v z5EpG&mft2jPeHm<<;192-5jy~Fs!R!@f(EmsT(JQe}8i?bC5`ruh_-!cw?w+dt(v;4mzR6t(@C}Kv-H8C|U@q z6Fi8~S{>Ti-7^t_59EbZus^#22DBs5RK~I+j0AvAvZ9M5#B0X}`ZG zzTTS|es#QYx0F!>JArb4=1VJMl$g3&skEkESKe%AdQj-`qfN`gCSD z4RVpA>2#A?+6doWBdF#tiL^2-u2;_=>Z)Spx_F% z|5Q3c&9TT`^>q0t?b)?Q!PDNO-|;ykDBK8N<4)V zZ2>!NAlS$7(b9WXo!w>NfU&wh{VJEg@(Dw>SFE&FqZi0`trl*bIqa#T59eKS8)(dg zkmc)W4D^FWSHWnpiEz&u*5c@Dz(7r$%i^*>QX)v+wV`3*i1$KOP&Lj+J#;K6$Em`T zsls=F9VV?ItQV+?dy z;95V1#6qnEXonHw5F*h+2lidwN5Tkfc8JFQS#x=O+TeL9%g1ci63gs5Lt>7%LU7vU zSzSau#rBjv&TrW|gRHN_KsH|9WX|jIeb}Tt)-t1}o1MQ{3RwrwmJL{A*0f17g^REI zBNit~ZrxGt+I*0Vez(WXTbB literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/Plus-TrueHD-Atmos.png b/client/src/images/mediainfo/codec/Plus-TrueHD-Atmos.png new file mode 100644 index 0000000000000000000000000000000000000000..758b7492addd4f4bfa8adafa0960b11770688892 GIT binary patch literal 7015 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 DAZsO& literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/TrueHD-Atmos.png b/client/src/images/mediainfo/codec/TrueHD-Atmos.png new file mode 100644 index 0000000000000000000000000000000000000000..a865c64e44cdd61f4a2af30d308a616970e373e5 GIT binary patch literal 4790 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 PC;-C9%&=15HTr)5^|L!f literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/codec/TrueHD.png b/client/src/images/mediainfo/codec/TrueHD.png new file mode 100644 index 0000000000000000000000000000000000000000..5515110641c71c59209f305974dd2860dc6aa704 GIT binary patch literal 5770 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 B{!0J= literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/edition/Anniversary-Edition.png b/client/src/images/mediainfo/edition/Anniversary-Edition.png new file mode 100644 index 0000000000000000000000000000000000000000..5dac90fdbcb0ac62c4b2dfabb0f47f8661252fd7 GIT binary patch literal 7114 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 J8^A8H{|`G8<4*tp literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/edition/Collectors-Edition.png b/client/src/images/mediainfo/edition/Collectors-Edition.png new file mode 100644 index 0000000000000000000000000000000000000000..49e3d5bf968235914d179d2818401a60964eaf52 GIT binary patch literal 6855 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 literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/edition/Directors-Cut.png b/client/src/images/mediainfo/edition/Directors-Cut.png new file mode 100644 index 0000000000000000000000000000000000000000..7ae954c1935c2b8c5ffffc6d64a525aca62d056e GIT binary patch literal 5684 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 DuuuH> literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/edition/Final-Cut.png b/client/src/images/mediainfo/edition/Final-Cut.png new file mode 100644 index 0000000000000000000000000000000000000000..894990bf5f10ce67164b2dedaef00f167e3f9262 GIT binary patch literal 3525 zcmc&%`8%827EZ4|M^UXBT5U>-7?0MF7Hth3kOZZMsHmZ(C}I{-L!DD`YA7lc5z;|w zNQoh+G2GB9LQBjVN{unLMUE-%=icZ34d;jNTkCoDyZ5{Hdfv6y-U+uY;iAH4gh3#X zC=y|80|E))0sr=q-+=#hp@x@$5eh`0LqH%AiG%MDC?{7M0OOFx*X_b{mpN7`;C89@ z9}^;tM>W@l{xbZx=C#c?jbU$k0RPVgjLbDju`-jqmVTkWO5Ta;qv9>O;6O_;;p>AM zNwnT)O06_*%r1Lx4}|xyui%P~z~*sgP;(>vucmME~qhfSGIRE^y(X+O_%8C>1tx%W4LQE|B|lt?kIus zUX3u?^fel~Fq9K?aYH#x>|dZiQqZ+&Nq6*9PcYLG!9`TvTGjFFkw(gD!jx`G?_q^1 zy8W)#!}I7MUUFyp7mWsKMf3UhbUcd_g4B>7U|gc3PVGU=r8`_y422!qe}~;Q-i9Ez zaX0QJ(=OvCRQXreUl9EimRX8TG%#EM(v8X3=A8zCUeR1i<&Nq;C#B@Lnrx33Nt>vr zw_g!jRu`YD3*}`*sM;%f=*n0U&%!%3Za(=MhrN;4n9n%g!%<#g*lTHznrLT3oy;Nf z1BO+B-7{%FNeweFJ_KrMSyz)gIw({1h*V4V9xHbuJn%IC5Rjv|;9)Mr zF7QPAtr*&lB32rc_)`0I{yUXnn$Lpws0vC?QZe!~izl~-b<~@|rB*}+CvF$92W08b zg|RbC+H}H(j#~4=xZQlnNp3r#;6;NKSV_a9jHC1Ly~SW~6SYRP>+_R_vW%LVjh^Jh zMgJY+5r-L4&yx5KqI9UO;C@{{C+mb3q+8v{W&#AdcW*me%wJ(90A*+rT;gV%SiAxk z{Mp99C2YK5VZi>g%}I7mHWhWOlIyOdn>3VgL)6E?RZd+XuVfiKy~eK@nMMlvZVZ}% zC+n?)L}!X!)oUXQO49Sm$-q?cNer#de-PP816mj58abACAzVnP2`~2*us}ubd;d0 zDR6YWa);vgg5Q(ZGP-&C`xUc`Yjr5fu4!WyFm?oSWM}S*#l%(A2zf39xoYNulNtF?*_EvV9N(l|gIb%Y@7d_c-t|6x8-AvD9xxsrk1u~|i8Z)i zGq*KX{@PUb(O$_1hX_RiW&#}w5dsiBLPC>U5nxrL;thNnT`&YGYwP&cNs690 zE=qXX;zwGW+-Z2HyO%zotb4DhP<)JK(XS>;Be_Pq-IAJiPnovf0*enBEtSqnWt?a~ z&v!QuuOom=;v#$6x)k^9`o=|YkRbB7@^{46EJ*7hnxiP9_V!LDHvS8K@9IoG|6PA^WukB|Ia^`_iXNSqjTN zzHLBIpl^Sw*_!UZbrT?J?_q>u1oW%1HK_CJcsjr6MAl?`Z7>V_DZ0 zkF<+4B8wv8H}Jnw#$IB-^6Q4%)bPEdAzFrEz$&1d)>zR=S38SCQ5p-)lRsSgAU8+Q zFnS)bv>W5?IZ|f{zeum6kPy|DLlS@G8&Fqf9S3G!>vmkW9>ZTrPjP?9{`(wjA3-%r7w6ygu((zYti$bXbG2mH2?p#Kx1lQtf%0W~1Qn@U5kv=V$@|mTh zR>1h^^fX`2QNmP)t}~_{RP@-={_hg^r=Ptz@V*>t5kHH&4}ny@;!!bbu`qYfuJR5G z%&$z3E@!XNX7&R3Luy92x`y{ElS7A%iPnhJQ5Fe5yI>J7mD-O1T=!If0@bkHRY|O@ zyyB_o(M9!zaSZM}s)X5YK^Y%9f=gzGE+^XF?cks{@#{7 zVk!7F8MfqExB3^qVAj;&9bzkqrqh1;)cw)bAaY*7OmIYPCJom5F4LsXYojv3Gq#q61$k_5j1aqa_Aw@>~2B3%&Znns$~v392) z6sjnlP>G5S`-RwQygt?>CO+pdH8B#Tu)?^_jOf?&k!d(t2F}gXE8D8Skeng|khRz% zjtI(s#d|q#p12&j<{bZ;=0Vxz+8uK>`Z*FG@*%zScOzw!D;q(3kNCc?Z zyU`X$;P9o$sFqD7Gg25YgP3TYr=vTbot1GZ??Qy~okusq7gpHinHN0Isx}kW4bPYC z)2UnagV`gU9Gse4LUhk50waAruOY@R$Pd$cv)(GIJyAIj#md-}bwzHE#SRZnZXx3r zsHPL?XUbGz{tkf30wn=j_m6N)B-ID$gpRCWY--c};!aSCG<_~=6j%D^zZAn^?7Ydt z6IF4~$-!W-$5lyKSF4H_ZQXd~#)o*Xxy3c6$|P8-<6)wXJNW&Vk2l$ft+x%SzOoI# z3G;<$NR!Jo?NpZ8l<|#ps%WYNPdK=~WnmN-oYQq=v)@HY`mk+``u2(j3^l}cvpUYe ze^xc-hxrP1EEvPdAL~ow^LJG zf|QemdKfThe^=4dCtT8mIe*Vr+{jf`+XGe!_OX2%4T&W#-O9lW80SAzvL|jEVPm` zTr)8d1Zc@((uM@=j{XU<&eC_wOovr;Epo!ESC3Gb#|rH&%pMtK6%ZIUX@6YW(*Bm8 zm{z;0813OH0lVA3w*`ilKv2&#`8_O~q118W`%u~M`W53I)AffzAU(YhUR9!}%+o%n z;pD)K+t{Jam6 zS9BkqUifv((I0CxT61iFJajAMug{l7f|A#_iq@Q&wa0>{BS)oG{T#6i8+mW0HtZH~ zavQ5KK>N-eLI;fl^vZQx$3ybKdmjG}KRf>a?BT{l_{l<~9lOy7VIfT{jcGUTJ^2sR C6lrPz literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/edition/IMAX.png b/client/src/images/mediainfo/edition/IMAX.png new file mode 100644 index 0000000000000000000000000000000000000000..d503da9596085e630a7298034219e2e8615bb2dd GIT binary patch literal 3612 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 literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/edition/Restored.png b/client/src/images/mediainfo/edition/Restored.png new file mode 100644 index 0000000000000000000000000000000000000000..de9f37da7bb886ed1f87283d109c839cd0664e92 GIT binary patch literal 6946 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 literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/edition/Signature-Edition.png b/client/src/images/mediainfo/edition/Signature-Edition.png new file mode 100644 index 0000000000000000000000000000000000000000..2061889e039ca06d8011adaf10ffbea12e1e708c GIT binary patch literal 9070 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 Mypykz{qXsJ0Ex+qo&W#< literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/edition/Special-Edition.png b/client/src/images/mediainfo/edition/Special-Edition.png new file mode 100644 index 0000000000000000000000000000000000000000..1f1be828244f5ff279eb015650547d9493cfaf60 GIT binary patch literal 5567 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 YL&%JE-Qa(+fAQE{x^}V7^47!u0eVEiy8r+H literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/edition/Theatrical-Cut.png b/client/src/images/mediainfo/edition/Theatrical-Cut.png new file mode 100644 index 0000000000000000000000000000000000000000..c0eeca5c4046feba85ebd129814e0bfd06b71542 GIT binary patch literal 7743 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 L>Z#N#IYj&)$1nUS literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/edition/Theatrical.png b/client/src/images/mediainfo/edition/Theatrical.png new file mode 100644 index 0000000000000000000000000000000000000000..f9902d88e556f0636b73da00dc86735536991b4e GIT binary patch literal 6801 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 B&29hy literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/edition/Ultimate-Edition.png b/client/src/images/mediainfo/edition/Ultimate-Edition.png new file mode 100644 index 0000000000000000000000000000000000000000..2bffdb4b04adfea060ba5d0d7ad0ba671cbe46b0 GIT binary patch literal 8092 zcmc(D^;gti(Epo|kPwkZMM|VYMQTZrmXMTgi3OyWR!XHCq`MpGrKOgTj)g^Xfd!Uc ziG_#H^F80c;rZd-nRDmdnR{o>oOzwsca8T7WcL~F0{}p#r1(|~0PsTYbPXbcyIqF3 zE&ER3+sdfP06=XF$+h`C0JyJYCnu-jrllbJOi5l&SWr}0m{*8T5C9avXMXU~Pr%Sf zu3)Sm=*rF?)}}aq0a#cohz2PP@+jf~^AHM3>EEH>?(0%fKg>|n>H9i!UorFBTF#4R zTbUoWY0s z&>&oD#lQH^D7Iidw)cJmz#$&QJHWk0>Kdoo8NdZxX871B2Uc%`TQ#2R0ng%qzbuqU z5}a5qV31FHkO~;218P3hTipi|0l*RBC(8nqkpX+BN|N`0`O<_XT3|l!aVZfHg#)C$ zP+-HAZUfA8zG(5_cJ%-`71Atx_+3>vK?aRN3b;Ygdw^%Oe(VEjGax8UmS+TbCV~sd zJ$*Ea_e>QpM_{t^Z>gzEXtN>?&;?5xO;MSAN!6V6hr#Rk@b4P)T90F`tT`mx-Zp6VDW05Dukbl-?b#Ui&hR<~@Bj_A|hc{dJ+&McD5M=Lk&k+}E(#rtve zqUq-5ES}2%PK`&WL#ZLKs0(~rxiEeSC(ikJ|Buf_1VrRo`e|0K#-PNL$M;D{_Sr3R zp#tj>lD98co&QDzoZne*;68`I=bzGPm0kJ4*w5xpo>f}WNEp7Xpc4kkdNU9jh>hl) zSbJ4##6$h#NdJ4Y28-GNq(v+4E%Q*)8s$!)&=FHImN>zS45$cG?|R=z_zULP6>xxq z8$qr==?O>&obX06ki-ELwy%UB7ywA2L znk>HuT?=qaW$ojP6`=0=L0mBoBFSH zV_sW6(SPGf&DfP?jwWKmjR<fLCf68rsaO_ey0O{*Z0Qu(#D)Fysm zwvcREPMPLtY1TAR**CH5k4oSiPYwPL;iZpWdHiG_O{bBA74YWI{P}5TYlr#7zvJFY zyd3;gKIKo!q{BAh4ss{>)QglXj4XIS(c%TY1HCVOFcT?b<%B8bYg;z;(?>DW^b1)Z>C4W#>f)hz z98%RR4C^lTR6XxqF?#a*s(z4jE3>JviL=Sv`aFt5-e3FoP;?psmsY7y<>k|~|ZlX)fv7Q=WDw+gpvwuZLCJ;rw>rz}yB z9pba$GxD9~357H8Y5p1QE_xO{!SqJp6_Ic(y`!Lr<>5%I<+ekrUGv0Y$ZE+$*r(RG zzEAlRO8Fek&kw?F*I#?nO4?L7KeniNg|J?7kTAEf6M`4?75v`l;2ceK_-WHR(JSv^M$M!j^>bg^_;V@YLtWuIp{c!g?>Du#2C^X!AuqTt^3-u=Cwdj$KU z=jP|^=iu}4CnJw3pUjH8i~G5{dyIHGy0oJTR$uj&_LcVT=-D#b=DKB`yrwNuiG@+7 zc&5;P02lu#cFOjFC2cYsv`+q-I?GRQOJAy708cNEfPVXzU#an>GY%Q|g3vOjhZy~} z&m-%Z#p%U8C$UI=6HgNZlPl;`_4GJU=I>hlw(&KQdklj67F;I{Pp>Y@BF? zBEY%mLUm`Pk?7lB1;=mAOm_5Xv={zVoLoX>e7l+rAKX8?V|ZpOHVm$8q0vV%rI9V- zaQjAAPumK6M=eLoz4Ydw=CbB5-r@h`k5VYzAF&bdf8Xev?*n~bcf&)Qq3ZG-c~NAsysRE#ftUf>l?%t*}0 z*CMk^Zs491XnN74Zo|!;K(+zd0uM7Lgb!mjSTEd8;M9(xsuTGQT2&h4G^+e1+}?(C zhThGJP{ohaFIQ}Cb}v{-zS8(XV{0^;YwG8ly$z23vUJL~(Xd8*p!MPtG}dah^0qsi z^oMj_n~!$I)8BlZAzH++X!xC6y))!JMj2Kekv>nAUTq;Vc{?)u|-dfXpZ#v_51_3WFB9xnk_fd+d0+dq)#-OuW8EP*x^C#?(tdj94 zYLn3vtc-Ba^|3#T9&H#M9>sfY{(9eVq_F~ioGYAv?voj44AaF{mN#`QJYSscT=w!k zArF2+Esj7Z?zR8o_SSQN%KM)=O&)w*j$yE1Z0+0%SZ-GEQvaP5<6G!UcrK4d*}FSC zE>(AS))9lXgrlA+in(m22RSdM@Bj4ryhmoUn`5QO&v#v8J9n&isdscGEwJf~ z2&D+&o)qi!sNl^9=YVpd=E;hap&Dsz3?> zF4$GYYC~s~H3qh?CsE~os)iDuKu-l;+IP*k&HbC>GtP!U(fxajO-|33A2+kNp8fMY z->3Duf1tW#>=WZ%eciE$-6gzyup8KLQ)}G?{`=3Y%WS;Y-~pPPI6Uhn@pdYFby8tO zVTSb`Yg9}o6B8pD1N7KxEMc{{uK3aTaDeVD1m#waT*0ngsf_Di&mWRpM2vSYh@qmGe8`rTafV?s`@ zcojs(??C1=OGPa;0PuMZ06}*M^z!Z~Xd3`L1OQ;y3;@JZ0f5#eqg7Ml&Oq#rcI`K#GkrYX5CwL)c+951oDdmr> z{r*7EchDCAQnLc-+Hn5Uf<9AF;NHouw-5i1B{u(cz8jydc>E!PKg!_2Sc}}a7)`uQ zScL*|NzxqRI=0VqA=~m&iNxV1@#kWirJ;D@!qv;B-J09|Ot*nPk8$=<%Zt`MISy-n ztLr67-=mjpT^*VJrlPjkYl2TpNXm|ETHh71M$t?Ewyvv{7u`pbr-oB{p9X{^w&D@O zR{pUKDGdn?Dp3B7%Su%Zq{*b9ygwkofQIfIF?gf7o$DWK49w~)*zr`qN^aVpANy6i zG)IM(=xkDDDtAvGnu5C49yeBj%!*9CuHMvjL{W!x3<ll*I3yo}GA~ZAdb&AU1^(_2T!Qm1Ejlq*u`z@Xo=TXUtru-kgqgF% z#5vA%iIJCu_cttf@HGA?kaDLFSVu9fymkPk=WQ1nXahotf+2k(msq+RXH3-5KwA+WnGIOC#J8OPHOLBJj8xE*Wh9=?UOM z=EU`k^c-($pk!S@0BbZM7|4}P=4L>SHruNJDZbOLbG8jdj+={SKXT0Zz>Da zR(v9((_n-_5dzghmp}Hbq-4geR|Ibb&6j^KtYqsD*0ddBZYnyo_BrrYP#5Ps+SRR% zL@`sjrG}P_ZfW$#eus$aN94;!>|C}bd6tMuW>d&H2D{-LIo9N#@6=>}T zD8p#FZ{s=`*L|MeSbwYT8ros+bFY6UymE-yy05{^>ZanqW71Z_A-ycsq7{02y+!F?Z}vdyu9Z7*LvZjC%%jmCOA;C>Y@Mel|kmibSex7evsjR_iMM0e(H>yeD~-* z$#%cENR;nANm>Kps8!#KcO9#w?$n>e+&S=I^H1=}GN$ukXiM{}^6ks={i!a}CT$EH z+EY+i3?EE?<})tva(M!|s8cZxYfQ8^8LGX{;R)ujaOQKTBv3p;DThP}1Oaz5U=xf$B6(jt-p| z1B#vJq{*soSn*P>%2I!uJ(5@816$dFOd}-1I`0zrJM)q-1mSyvN7r4kdQrLPtby(K zv2by9Zc3@(wJxA+!I;e)-lkCX8sequ#JSUm58Ki!RSV5^Mis2EGt{~y?)TuH5aT@C zo|5}l9e=~MbKA3C9UqWVrz!oQKDohT<5%q|2RBsW?MZ{z;i0S#xxC8a){az|dA^qs z=fFKM86-IkE+EQ07)?gIZ0poN7HgZ9m-mO&&S3D{MF@~{@TTZiT`5q+_u$Ry5rcoqja9Zb}Yj=KLG*<4z(@>M1#=_ZNrQR}Ti2w1eoCEjNf90I4sa76^e%E?p{7f*8J5kx&>Q_%{_O#%*?+Y~c^`g* z@Rd@5w*IC5_sjCe)C%>R4rb`FQiS&KC;7Cb;xiX7*{LC3WJM2i$&FyH9hdwi>oIOS zwPvUV%63UvLqq_FA3f-WE}6n4Rxn_qKYB2USbh=`I+})0M(6Ev=)Z*(A151;>U3dI z%0|p7$K$ySa<4t{eDouifyn1}HFSKlm1G8K>O^Lft@t6g@h=|4F5VTjcVPvkD5|!@ zZLEYg(|9FutD?ehO3hinw~%b86}24HS69g(`bRPzF`JI(zLo)h5g-$Jm-^?tXJ8Ja zwc{WwS^iZ^m1Jih;ztloU7B%;UGGU?PF8y44FT$vBwBI>|P$IBKMM9$45b&uc-;7yAVhu$lpnS&D4*?I*uW0t79keCf}I>i6yJ{EEQ^ z_=;4d|IyAgC4c&8cdBj?su^jCIJ`c(CPpqz_;$vf%BescW}x6g6O+-CfCBiV#57o- z8#_m+QbPrUe&)@?#*5T85b@&-Hyxf2bXyXz5h5agr7bBU`ax-@7BnS z?_J2ueb>0E%GvVPH!73P?AQ<9*Se>qYt+OXuxyqEE@Mr!nf~5$PnJyC&tJp@j8){a z{I`Tv-#2eRWc<-KvP7zK(KZ71_TlGg8nlpP4jK|53>gzWSs&(olqjg8K`?3eQ@qI; zGAgEJGZmXRk8-&22+Gtk3oWFYVXpt;^UQjLT;8-_|H7^l~XazxbXRn$VEPd?B+O4yl^% z5K-fNKOCn&A7i=FbgM>?Q3MJfUR=(3C~>F@!JLmZv1BZ#GN(!!qDFo3gY@{%qIOJ!W#0THuZH#+@y(AgX2p;b z-v5&5k#@r7M(BIsYpwEe=2uP4lWf+7A61*UYV8=3-zistR5<2ND8_FmRI^Oa{GJ@^ z3rhsnw2Pc3gWlFfd928kV%L6qO1GpdUgl)EOZ(7}_J=KlM3A#Ba6F|Wl00?HYC2iv zpl_$n$-PPrrh)b|m1ZK%NF6D_C^(&jsJ9#B`8BZk=?Qf^#sONlnis|mJt28zNg7TL zc@uZ)fz~C}Yb?<5Cm{nx)S{IPm!(p|jW%Y( z3rcq{FOPK6!R+=`soqk&Z=F-)z^<}^EC0nW6esU`1}{T+Kn?Y!e5I0~Q&I3Mq|TGY zBZg7Rr26Djx84)ZQLznP!%5-bkDBGD$HG#Ob*L$w`YdhSX-lP2X2UE!-@nIaesmYt z1-vi)v4{);1cr6gI$eGeX`W8*gTU($f$U32(D(#g*Drm8Yc-u-&o@fg^~x?QX!z0c z4Q>c9=8l9;B8)(~D-@x-jl#=rI%Sw#DPJ^N=e9~$Z6!*e&#&;Z*?NcC#AKEC-Tj#X z5?z{m0-SH?DZ(}j=Hdf{tO7Z9=4u{eWK07`QZCQm3Z_8Vu)(d%PgjR5_2nx^dEz^? z7awJ$8Vp?5UT{7iYXNUBh=3k$Pl<~}6!2RSP4*7yz->ETHWq9C%UUYOf{ZvvT{<4G zTSHx&;UB$y+d_F0z2X;$GoXi(+Tr<+0mFeNxrHIwvI+$jO26 z-3LF@EeRzv_ac*2UTZtN2M2+ z@EZZ?9-NVev3*TpcnW^bOQPF6w7*Lb=H{M|>MT&wBa#Lw~O4V5a7{Pk--SHB{$HqHgql zCDy)7UiJSPK_ZF9*a$ZGgPMlwq%fZarojuyit`QxlW+&32vUTBEpFwjyGcR$vd5kN z(RhkwIewV-(#4GUcHYmnWg;|XLL<`_X|8UHFPGkclQK5eyMqa1^sp`n_*W2e>5nB! z=kSc!G`AY0SgdD;KJ(D&DYMH8t`7V}Q`>4m60Z;2+4&>P1DlhYc5^W2bb?YKt_*%$ zM((d*=(9GU*=K&svUpA7mn{XY)M4m9=@XMSZuIfd-?tv{h9yo|^%+KvB-yghZeM{8 zv5ugzjmg?kXf&Sf*{BC}0M@-yswloy7RXO~*_yY%^DU@Y-sXI@7S^Kf{%?;k@F2It z`orQB(h(Gc8{}Y3PV~RTUDIX}@_!jS;OGA}bNBz_W2Lw^&TMQX#nJyUi%RnE-&V<* Gef=NgZp%{u literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/edition/Uncut.png b/client/src/images/mediainfo/edition/Uncut.png new file mode 100644 index 0000000000000000000000000000000000000000..4f644551649379d0a03683840ce8e34cd776524b GIT binary patch literal 5506 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 literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/resolution/1080P.png b/client/src/images/mediainfo/resolution/1080P.png new file mode 100644 index 0000000000000000000000000000000000000000..aba40f2fc827f582eb28bb37ca101a4b150cce02 GIT binary patch literal 1945 zcmb7_dpOgJAIE2Ga|tn7ImHl%!y+8HEY56m8OJ@5VwGPHF&dgFZ1Wq=S;S7c%_O%; z7z9dq$&= z*602}IZ;=@9w5ha+sE!+bj2eN;ru(tvA9=KK}hBeBk*$NQl-*Yb)1ixkG~g&o$BjN z^z;mRm-$Yh{=;Z@Q$*Cj=rf1g%L6To15=UGPad^82M(n0JH)3J_oOe+txi|@){I{} zYQoEv(!cEWLf#j=1;=@i8MeH~z)`>R#M{Ov%=kLF7-Lj*_BG!sk9RO*78UF z*GiSc)uuk)Ivw_uY=|F&jbW6eBK{@Y7Nw4#(YD056j4@rOHH2!=oR2Jt z#yeJ&FV$;!u@Ru+ZpzE|kec*3r6}9A>gtC}8SxrYgXcxP9!8h+F72HaK9fAL+x!bxZ?K+Sob&i8U#0pX< zU6$a`1Xf}S+w{Z_fj*|u)9a?S0eeBX-#Sn};f?S>=nj8)!srRa@WS~GOLAv}PixMb z4OMnz{TMBF6kH3thrhR#YJS5_r`;*mla0_rNa$rc`ASli@>8s)!KJ0De+7 zD8+{0$!M1O!W43JqH2cuB@LQU0at;zf7z2AY#~C!E=m;#vF6j{^$KP}(G4YJ-baYE z4XS_&nThhH0H0dTsUFSE!EW;&a_jFlDo6d+A)+=>KF^0IYc@g4-wM`67c1p>u>}Wv z^Z}@o^h~+EsF1m{qB&n?Q!**qbIvg0$H6TR$yuvX{a>jX3$l8z+{X@IQT;n}pqLzl zqaqE~WgLyS!1G0VW>EgXSUv=1tlf1*U)4JrYqkSkJ7&SOd2MXq=={QtehuH)mYe>Z!vlUfCAKG=U{sEU{wynS z?6mrDk{JzplDdP@22)m_#O9p`-$^&(q`emXy!?R7^bY0qB+Xfrl1d(#mGAHCpSmCQ zT{q-|QL)}lhGUxWodEjSHN3|5k9$}Z1`0_cd0RXB?VJG6^G8@QObWhYtUMyd+WCcU zgGzT>qF-*ZMuz$n`%MvLV0lC?xX~1^!l?Z4h{KS0)}u-i-LY^{^T;)Uh zh^U6UoB0#nadvBj+meqzE!>9>HhJ{BH)4TBR%d3{IpPRZDI-+yR_a=HC( z4CXs$M!clGata#BxM0w<>hh^KUypXo#87Ve{et-omvgUWXL5;8u`jZnOd$c75RiCK z(nzSRb^69sg%4o}h|OeXwQ=rEMhkqJdbTUuC=VQ*iB9%8vyN>A>V45H9#_5TOn3tC zO%`yIdHAB@=`fr6aSIh8x-@x^)NU1UXgVw&nQcGYJNZsY3ze^}%S>t=wlxHGM@ZfW zDtd5c9kW8#np4p#2onpB$z!3Rd&YMz14XuWkGOi3r3}ovlg2H!S?}cqs}a9cPFmGT z>I(|m6k@nbgvl#KDNi6v`Y)ZS9XT3iIjq#qt+8}xxK$Yre$5}tP$o!~{Wv-GX%4!Ui&<+V1DP7@%KZ_039t=fOPI#2QxYQF-=n2i=NQ zf*L}SNsMFn0hIEVv#;P_AmUo%u<+rMOMmqc9#1_q*UO~T z9X3RBgBhyy`u^*Srkda)g(Qq*rKC)Ni%YwfzFNgf;mUPZd^UsDjVDX6pD|G=W=xVj zJ^IBL+|Gu(ONPQmeACCi=+vPMi>*=f+;hLygm;m9-@ciY{=ZDxN7h}MOxmo`s#~Gp PAJ&50@SZrn6EXF_#lMr- literal 0 HcmV?d00001 diff --git a/client/src/images/mediainfo/resolution/Ultra-HD.png b/client/src/images/mediainfo/resolution/Ultra-HD.png new file mode 100644 index 0000000000000000000000000000000000000000..46f681ffb4d0cfcf9bb64a54324f0ea4f7e786c3 GIT binary patch literal 1680 zcma)7Sy&Q?8bwf4MASqDR6?++p_PMcaZv}gDFGE6%yh;Dwa{j? zQPXBjQ%1A2#c;``u@bY$g(SnJt~6@qR*skZcHi!OIOlx-|DEsu&eQqxLMVZT5EKLe z02q>kNK}pHY7n9a)^N9+V5|{+c2IaK0AOJHA7}x7u0Q|)U|%xHhn7~Mu4Ltgg~9vz z&i^cUcL}-L;vlItDp|4H6AZo7U6ZpZx)w?!$$Iers4Ela6s2(KcBN4T{+Lx;E*-f8 z4u@yV2ODt@f31p%b~!zIKZCyZ(*5tNxWPF=pWJu4Jlt8o? z77=@@i3W>t0@kmPMx6lQJ<~q804Iegn*b;n<~uOQYNLhx4%6rXCwgM|K zl%6Si)tsfH|7TBz)RQ8O=CB_s}h|5IPK-E@TE?Z7=+BVEq~=3 zNy?4VI-dx^(vQntvhx={_OcmRc6;E$3F$XcGj`Zu;rb|Afy=J#)s+sSlYa#rzi_#v zq7jNWMKm}(G{ptoY=OB?VL#Y2Ao$lM`r(LJ9&d-x4FhZIAMX?QYCgQCpqxkfKOKi4V>WJGwrBoB>lyuph zT7x&EtC3!y_5D?1t>WuGKMOdI%j-rX)i^Y=@>7(XWVdEtI-4%Kmvs$3a~{L|)ajyS zVRLsaEN>^|3oN~^{kl`#=QQXdj-A`@F)pz8(}(y+fRW&#&_2g$<#-Hy5k1K2EEo`_ zC1mdXdke1c3z-g6X+5@PK8XI{SLQPb@jg2H5qS4FWrR}+sxw%AE%Es+j*UWaveCS-0#1UD1BahtG5ct zPX$y6??x5tq%d9tx5Hz%!%gX3rr10?L7mJ7&JnPSw=Nca+ z)*gR*pxy!U2eiie>6E}R`$k{<+2*Q<;OD}X^_0@2qGDYSP;I?+JN8FU4bZ#}vj=WHsne z^y-{4!?wAiAt3+w(16}tzR!Z?wjusqpw|zlYVxe?hNBU^r@v2sARFYf3MR6gyq`Ji zT*)d!hByCIA9%O8qc%hS*AQt6wC4|?!mgpJ+^4(6s9k%#V`}bD)lP{cE*omu5HFG( zzP5af_UF>KY=VA!kMlXA#)q>Gx0;Ct|9#YWTyWGo=0RSR@sr_9v5Stk+)CM|J(JnR zpJ)ugBO3CeL`kYsla}kRF2n}7zWcc4PatGGeSUP*qUFw~!kUHF0b0<`-I&&o)N3}~ z&5?zqoSWOQ^w(%5T{XMAa;*d14z7Q(nZ)!!thc7EoVMAVd_+2{{>fAnciHcfT#G~O z)0*P+-pDH^D=7C3Be}BgE$-DPWQ%AMN7@cmO4U+>t8%W+m>J%)?PZX47NzysvhWsN zKYbd>+r1b<+-p|vDjc=ExqhU%q9}=P<}`#EYtec5NU_V)SHC_RX~&D~=I{OBUK?s{ z=p1zLj6auoaL7+gA$37ZjBev4p%XCMEvF}#jcQQ%`Gp?3ZK5oU1!ig&(k`uC`QkN- z?X!OqR(R}--1Hf+30nL1+vSy14EdGrmt2+KNktEE`SYHKoRcwLC5(UBZWuu>j0Yy@ zvI#BCW9YME^HEZ)^p~t#fMlvVz&e!GjKIeIUmg5kg + + +); diff --git a/client/src/index.tsx b/client/src/index.tsx new file mode 100644 index 0000000..581a1ac --- /dev/null +++ b/client/src/index.tsx @@ -0,0 +1,11 @@ +import React from 'react'; +import { createRoot } from 'react-dom/client'; +import './index.css'; +import App from './App.tsx'; + +const root = createRoot(document.getElementById('root')!); +root.render( + + + +); \ No newline at end of file diff --git a/client/src/logo.svg b/client/src/logo.svg new file mode 100644 index 0000000..9dfc1c0 --- /dev/null +++ b/client/src/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/src/pages/Dashboard.tsx b/client/src/pages/Dashboard.tsx new file mode 100644 index 0000000..59a015f --- /dev/null +++ b/client/src/pages/Dashboard.tsx @@ -0,0 +1,91 @@ +import React, { useState, useEffect, useRef } from 'react'; +import { Grid, Typography, Box, useTheme, alpha } from '@mui/material'; +import DashboardContainer from '../components/DashboardContainer.tsx'; +import ProcessingCard from '../components/ProcessingCard.tsx'; +import { ProcessingItem } from '../types/ProcessingItem.ts'; +import StatusBadge from '../components/shared/StatusBadge.tsx'; +import NotificationCenter from '../components/NotificationCenter.tsx'; +import { useWebSocketContext } from '../hooks/useWebSocketContext.tsx'; + +const Dashboard = () => { + const { connectionStatus, processingItems, setProcessingItems } = useWebSocketContext(); + const theme = useTheme(); + const previousItems = useRef([]); + const [isConnected, setIsConnected] = useState(false); + const [notificationDrawerOpen, setNotificationDrawerOpen] = useState(false); + + useEffect(() => { + previousItems.current = processingItems; + }, [processingItems]); + + useEffect(() => { + setIsConnected(connectionStatus === 'Connected'); + }, [connectionStatus]); + + return ( + + setNotificationDrawerOpen(false)} + /> + + + Processing Queue + + + + + + + + {processingItems.length > 0 ? ( + processingItems.map((item) => ( + + + + )) + ) : ( + + + + No Active Tasks + + + {isConnected ? 'Queue is empty' : connectionStatus} + + + + )} + + + ); +}; + +export const fetchArrInfo = async (title: string, isMovie: boolean) => { + try { + const response = await fetch( + `/api/parse?title=${encodeURIComponent(title)}&isMovie=${isMovie}` + ); + + if (!response.ok) { + throw new Error(`API request failed: ${response.statusText}`); + } + + return await response.json(); + } catch (error) { + console.error('Error fetching Arr info:', error); + return null; + } +}; + +export default Dashboard; \ No newline at end of file diff --git a/client/src/pages/Import.tsx b/client/src/pages/Import.tsx new file mode 100644 index 0000000..3f94652 --- /dev/null +++ b/client/src/pages/Import.tsx @@ -0,0 +1,29 @@ +import React from 'react'; +import { Box, Typography } from '@mui/material'; +import { TorrentImport } from '../components/TorrentImport.tsx'; +import { handleFileUpload, handleMagnetUpload } from '../utils/upload.ts'; + +const Import: React.FC = () => { + const handleTorrentImport = async (fileOrMagnet: File | string) => { + try { + if (fileOrMagnet instanceof File) { + await handleFileUpload(fileOrMagnet); + } else { + await handleMagnetUpload(fileOrMagnet); + } + } catch (error) { + console.error('Failed to import torrent:', error); + } + }; + + return ( + + + Import Torrent + + + + ); +}; + +export default Import; \ No newline at end of file diff --git a/client/src/pages/Scripts.tsx b/client/src/pages/Scripts.tsx new file mode 100644 index 0000000..0790ac5 --- /dev/null +++ b/client/src/pages/Scripts.tsx @@ -0,0 +1,63 @@ +import React from 'react'; +import { Container, Grid, Typography } from '@mui/material'; +import { styled } from '@mui/system'; +import ScriptCard from '../components/ScriptCard.tsx'; +import { ArgType } from '../components/ScriptCard.tsx'; + +const ScriptsContainer = styled(Container)({ + marginTop: '2rem', + marginBottom: '2rem', +}); + +const availableScripts: Array<{ + name: string; + description: string; + script: string; + args: ArgType[]; +}> = [ + { + name: 'Import Torrent Folder', + description: 'Import media files from a specified torrent folder', + script: 'import_torrent_folder.py', + args: [ + { name: '--directory', type: 'string', required: false }, + { name: '--custom-regex', type: 'string', required: false }, + { name: '--dry-run', type: 'boolean', required: false }, + { name: '--no-confirm', type: 'boolean', required: false }, + { name: '--radarr', type: 'boolean', required: false }, + { name: '--sonarr', type: 'boolean', required: false }, + { name: '--symlink-directory', type: 'string', required: false }, + ], + }, + { + name: 'Delete Non-Linked Folders', + description: 'Remove folders that are not symbolically linked', + script: 'delete_non_linked_folders.py', + args: [ + { name: 'dst_folder', type: 'string', required: true }, + { name: '--src-folder', type: 'string', required: false }, + { name: '--dry-run', type: 'boolean', required: false }, + { name: '--no-confirm', type: 'boolean', required: false }, + { name: '--only-delete-files', type: 'boolean', required: false }, + ], + }, +]; + +const Scripts = () => { + return ( + + + Available Scripts + + + {availableScripts.map((script) => ( + + + + ))} + + + ); +}; + +export default Scripts; \ No newline at end of file diff --git a/client/src/reportWebVitals.js b/client/src/reportWebVitals.js new file mode 100644 index 0000000..5253d3a --- /dev/null +++ b/client/src/reportWebVitals.js @@ -0,0 +1,13 @@ +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/client/src/types/ProcessingItem.ts b/client/src/types/ProcessingItem.ts new file mode 100644 index 0000000..4e62488 --- /dev/null +++ b/client/src/types/ProcessingItem.ts @@ -0,0 +1,176 @@ +export interface Notification { + type: 'error' | 'success' | 'info' | 'warning'; + title: string; + message: string; + timestamp: number; +} + +export interface ArrInfo { + movie?: { + title: string; + year: number; + tmdbId?: number; + images: { + coverType: string; + remoteUrl: string; + }[]; + quality?: { + quality: { + name: string; + source: string; + resolution: number; + }; + }; + mediaInfo?: { + audioCodec: string; + videoCodec: string; + videoDynamicRange: string; + }; + }; + series?: { + title: string; + seasonNumber: number; + episodeNumbers: number[]; + tmdbId?: number; + images: { + coverType: string; + remoteUrl: string; + }[]; + quality?: { + quality: { + name: string; + source: string; + resolution: number; + }; + }; + mediaInfo?: { + audioCodec: string; + videoCodec: string; + videoDynamicRange: string; + }; + }; +} + +export interface ProcessingItem { + id: string; + title: string; + type: 'movie' | 'series'; + status: { + cached: boolean; + added: boolean; + mounted: boolean; + symlinked: boolean; + imported: boolean; + status: string; + error?: boolean; + errorTime?: number; + errorMessage?: string; + progress: number; + parsedInfo?: { + parsedMovieInfo?: { + movieTitle?: string; + year?: number; + tmdbId?: number; + quality?: { + quality?: { + id?: number; + name?: string; + source?: string; + resolution?: number; + }; + }; + movieFile?: { + mediaInfo?: { + audioCodec?: string; + videoCodec?: string; + videoDynamicRange?: string; + resolution?: string; + }; + }; + }; + parsedEpisodeInfo?: { + seriesTitle?: string; + seasonNumber?: number; + episodeNumbers?: number[]; + tmdbId?: number; + quality?: { + quality?: { + id?: number; + name?: string; + source?: string; + resolution?: number; + }; + }; + mediaInfo?: { + audioCodec?: string; + videoCodec?: string; + videoDynamicRange?: string; + resolution?: string; + }; + }; + movie?: { + tmdbId?: number; + images?: { + coverType?: string; + remoteUrl?: string; + }[]; + }; + series?: { + tmdbId?: number; + images?: { + coverType?: string; + remoteUrl?: string; + }[]; + }; + }; + }; + progress: number; + debridProvider: string; + fileInfo: { + name: string; + resolution: string[]; + codec: string[]; + year?: number; + season?: number[] | null; + episode?: number[] | null; + mediaInfo: { + dynamicRange?: ('DV' | 'HDR' | 'Plus' | 'DV-HDR' | 'DV-Plus')[]; + audioFormat?: ('DigitalPlus' | 'DTS-HD' | 'DTS-X' | 'TrueHD' | 'Atmos' | 'TrueHD-Atmos')[]; + combinedFormat?: string[]; + resolution?: ('2160p' | '1080p' | 'Ultra-HD')[]; + edition?: string[]; + }; + }; + arrInfo?: ArrInfo; +} + +export interface TMDBImageResponse { + id: number; + backdrops: { + aspect_ratio: number; + height: number; + iso_639_1: string; + file_path: string; + vote_average: number; + vote_count: number; + width: number; + }[]; + logos: { + aspect_ratio: number; + height: number; + iso_639_1: string; + file_path: string; + vote_average: number; + vote_count: number; + width: number; + }[]; + posters: { + aspect_ratio: number; + height: number; + iso_639_1: string; + file_path: string; + vote_average: number; + vote_count: number; + width: number; + }[]; +} \ No newline at end of file diff --git a/client/src/types/images.d.ts b/client/src/types/images.d.ts new file mode 100644 index 0000000..3934f71 --- /dev/null +++ b/client/src/types/images.d.ts @@ -0,0 +1,4 @@ +declare module '*.png' { + const value: string; + export default value; +} \ No newline at end of file diff --git a/client/src/utils/api.ts b/client/src/utils/api.ts new file mode 100644 index 0000000..6bcee1a --- /dev/null +++ b/client/src/utils/api.ts @@ -0,0 +1,16 @@ +const SERVER_DOMAIN = window.location.hostname; +const IS_DEVELOPMENT = process.env.NODE_ENV === 'development'; + +export const getApiUrl = (path: string): string => { + if (IS_DEVELOPMENT) { + return `http://0.0.0.0:8000${path}`; + } + return `${window.location.protocol}//${SERVER_DOMAIN}${path}`; +}; + +export const getWebSocketUrl = (path: string): string => { + if (IS_DEVELOPMENT) { + return `ws://0.0.0.0:8000${path}`; + } + return `${window.location.protocol === 'https:' ? 'wss:' : 'ws:'}//${SERVER_DOMAIN}${path}`; +}; \ No newline at end of file diff --git a/client/src/utils/fileNameUtils.ts b/client/src/utils/fileNameUtils.ts new file mode 100644 index 0000000..83e864a --- /dev/null +++ b/client/src/utils/fileNameUtils.ts @@ -0,0 +1,24 @@ +export function extractResolution(filename: string): string[] { + const resolutions = ['2160p', '1080p', '720p', '480p']; + return resolutions.filter(res => filename.toLowerCase().includes(res.toLowerCase())); +} + +export function extractCodec(filename: string): string[] { + const codecs = ['x265', 'x264', 'HEVC', 'AVC', 'H264', 'H.264']; + return codecs.filter(codec => filename.toLowerCase().includes(codec.toLowerCase())); +} + +export function extractYear(filename: string): number | undefined { + const match = filename.match(/(?:19|20)\d{2}/); + return match ? parseInt(match[0]) : undefined; +} + +export function extractSeason(filename: string): number[] | undefined { + const matches = filename.match(/S(\d{1,2})(?:E\d{1,2})?/gi); + return matches ? matches.map(m => parseInt(m.substring(1))) : undefined; +} + +export function extractEpisode(filename: string): number[] | undefined { + const matches = filename.match(/E(\d{1,2})/gi); + return matches ? matches.map(m => parseInt(m.substring(1))) : undefined; +} \ No newline at end of file diff --git a/client/src/utils/mediaInfoImages.ts b/client/src/utils/mediaInfoImages.ts new file mode 100644 index 0000000..05020f2 --- /dev/null +++ b/client/src/utils/mediaInfoImages.ts @@ -0,0 +1,107 @@ +// Dynamic Range Images +const dvImage = '/static/images/mediainfo/codec/DV.png'; +const hdrImage = '/static/images/mediainfo/codec/HDR.png'; +const plusImage = '/static/images/mediainfo/codec/Plus.png'; +const dvHdrImage = '/static/images/mediainfo/codec/DV-HDR.png'; +const dvPlusImage = '/static/images/mediainfo/codec/DV-Plus.png'; + +// Audio Format Images +const digitalPlusImage = '/static/images/mediainfo/codec/DigitalPlus.png'; +const dtsHdImage = '/static/images/mediainfo/codec/DTS-HD.png'; +const dtsXImage = '/static/images/mediainfo/codec/DTS-X.png'; +const trueHdImage = '/static/images/mediainfo/codec/TrueHD.png'; +const atmosImage = '/static/images/mediainfo/codec/Atmos.png'; +const trueHdAtmosImage = '/static/images/mediainfo/codec/TrueHD-Atmos.png'; + +// Combined Format Images +const dvDigitalPlusImage = '/static/images/mediainfo/codec/DV-DigitalPlus.png'; +const hdrDigitalPlusImage = '/static/images/mediainfo/codec/HDR-DigitalPlus.png'; +const plusDigitalPlusImage = '/static/images/mediainfo/codec/Plus-DigitalPlus.png'; +const dvHdrDigitalPlusImage = '/static/images/mediainfo/codec/DV-HDR-DigitalPlus.png'; +const dvPlusDigitalPlusImage = '/static/images/mediainfo/codec/DV-Plus-DigitalPlus.png'; + +// Resolution Images +const res2160pImage = '/static/images/mediainfo/resolution/Ultra-HD.png'; +const res1080pImage = '/static/images/mediainfo/resolution/1080P.png'; + +// Edition Images +const imaxImage = '/static/images/mediainfo/edition/IMAX.png'; +const extendedImage = '/static/images/mediainfo/edition/Extended-Edition.png'; +const extendedCutImage = '/static/images/mediainfo/edition/Extended-Cut.png'; +const theatricalImage = '/static/images/mediainfo/edition/Theatrical.png'; +const directorsImage = '/static/images/mediainfo/edition/Directors-Cut.png'; +const specialImage = '/static/images/mediainfo/edition/Special-Edition.png'; +const unratedImage = '/static/images/mediainfo/edition/Unrated-Edition.png'; +const ultimateImage = '/static/images/mediainfo/edition/Ultimate-Edition.png'; + +export const dynamicRangeImages: Record = { + 'DV': dvImage, + 'HDR': hdrImage, + 'Plus': plusImage, + 'DV-HDR': dvHdrImage, + 'DV-Plus': dvPlusImage, +}; + +export const audioFormatImages: Record = { + 'DigitalPlus': digitalPlusImage, + 'DTS-HD': dtsHdImage, + 'DTS-X': dtsXImage, + 'TrueHD': trueHdImage, + 'Atmos': atmosImage, + 'TrueHD-Atmos': trueHdAtmosImage, +}; + +export const combinedFormatImages: Record = { + 'DV-DigitalPlus': dvDigitalPlusImage, + 'HDR-DigitalPlus': hdrDigitalPlusImage, + 'Plus-DigitalPlus': plusDigitalPlusImage, + 'DV-HDR-DigitalPlus': dvHdrDigitalPlusImage, + 'DV-Plus-DigitalPlus': dvPlusDigitalPlusImage, +}; + +export const resolutionImages: Record = { + 'Ultra-HD': res2160pImage, + '1080p': res1080pImage, + '2160p': res2160pImage, +}; + +export const editionImages: Record = { + 'IMAX': imaxImage, + 'Extended': extendedImage, + 'Extended-Cut': extendedCutImage, + 'Theatrical': theatricalImage, + 'Directors': directorsImage, + 'Special': specialImage, + 'Unrated': unratedImage, + 'Ultimate-Edition': ultimateImage, +}; + +export const getMediaInfoImage = ( + type: 'dynamicRange' | 'audioFormat' | 'resolution' | 'edition' | 'combinedFormat', + key: string +): string => { + const imageMap = { + dynamicRange: dynamicRangeImages, + audioFormat: audioFormatImages, + resolution: resolutionImages, + edition: editionImages, + combinedFormat: combinedFormatImages, + }[type]; + + if (!imageMap) { + console.error(`Invalid image type: ${type}`); + return ''; + } + + const normalizedKey = Object.keys(imageMap).find( + k => k.toLowerCase() === key.toLowerCase() + ); + + const imagePath = normalizedKey ? imageMap[normalizedKey] : undefined; + if (!imagePath) { + console.error(`No image found for type ${type} and key ${key}`); + return ''; + } + + return imagePath; +}; \ No newline at end of file diff --git a/client/src/utils/parseMediaInfo.ts b/client/src/utils/parseMediaInfo.ts new file mode 100644 index 0000000..66a20c2 --- /dev/null +++ b/client/src/utils/parseMediaInfo.ts @@ -0,0 +1,101 @@ +import { ProcessingItem } from '../types/ProcessingItem.ts'; + +const regexPatterns = [ + { key: 'DV', value: /\[(?!.*HDR)(DV)\]/i }, + { key: 'HDR', value: /\[(HDR10)\]/i }, + { key: 'Plus', value: /\[(HDR10Plus)\]/i }, + { key: 'DigitalPlus', value: /\[(EAC3( 5\.1)?)\]/i }, + { key: 'DTS-HD', value: /\[(DTS-HD MA(?: 5\.1| 7\.1)?)\]/i }, + { key: 'DTS-X', value: /\[(DTS-X(?: 5\.1| 7\.1)?)\]/i }, + { key: 'TrueHD', value: /\[(?![^\]]*Atmos)[^\]]*TrueHD( 7\.1)?\]/i }, + { key: 'Atmos', value: /\[(EAC3 Atmos( 5\.1)?)\]/i }, + { key: 'TrueHD-Atmos', value: /\[(TrueHD Atmos( 7\.1)?)\]/i }, + { key: 'DV-HDR', value: /\[(DV HDR10)\]/i }, + { key: 'DV-Plus', value: /\[(DV HDR10Plus)\]/i }, + + // Combined formats + { key: 'DV-DigitalPlus', value: /\[(?!.*HDR)(DV)\].*\[(EAC3|DD\+|E-AC-3)( 5\.1| 7\.1)?\]/i }, + { key: 'HDR-DigitalPlus', value: /\[(HDR10)\].*\[(EAC3|DD\+|E-AC-3)( 5\.1| 7\.1)?\]/i }, + { key: 'Plus-DigitalPlus', value: /\[(HDR10\+)\].*\[(EAC3|DD\+|E-AC-3)( 5\.1| 7\.1)?\]/i }, + { key: 'DV-HDR-DigitalPlus', value: /\[(DV HDR10)\].*\[(EAC3|DD\+|E-AC-3)( 5\.1| 7\.1)?\]/i }, + { key: 'DV-Plus-DigitalPlus', value: /\[(DV HDR10\+)\].*\[(EAC3|DD\+|E-AC-3)( 5\.1| 7\.1)?\]/i }, + { key: 'DV-DTS-HD', value: /\[(?!.*HDR)(DV)\].*\[(DTS-HD MA(?: 5\.1| 7\.1)?)\]/i }, + { key: 'HDR-DTS-HD', value: /\[(HDR10)\].*\[(DTS-HD MA(?: 5\.1| 7\.1)?)\]/i }, + { key: 'Plus-DTS-HD', value: /\[(HDR10Plus)\].*\[(DTS-HD MA(?: 5\.1| 7\.1)?)\]/i }, + { key: 'DV-HDR-DTS-HD', value: /\[(DV HDR10)\].*\[(DTS-HD MA(?: 5\.1| 7\.1)?)\]/i }, + { key: 'DV-Plus-DTS-HD', value: /\[(DV HDR10Plus)\].*\[(DTS-HD MA(?: 5\.1| 7\.1)?)\]/i }, + { key: 'DV-DTS-X', value: /\[(?!.*HDR)(DV)\].*\[(DTS-X(?: 5\.1| 7\.1)?)\]/i }, + { key: 'HDR-DTS-X', value: /\[(HDR10)\].*\[(DTS-X(?: 5\.1| 7\.1)?)\]/i }, + { key: 'Plus-DTS-X', value: /\[(HDR10Plus)\].*\[(DTS-X(?: 5\.1| 7\.1)?)\]/i }, + { key: 'DV-HDR-DTS-X', value: /\[(DV HDR10)\].*\[(DTS-X(?: 5\.1| 7\.1)?)\]/i }, + { key: 'DV-Plus-DTS-X', value: /\[(DV HDR10Plus)\].*\[(DTS-X(?: 5\.1| 7\.1)?)\]/i }, + { key: 'DV-Atmos', value: /\[(?!.*HDR)(DV)\].*\[(EAC3 Atmos( 5\.1)?)\]/i }, + { key: 'HDR-Atmos', value: /\[(HDR10)\].*\[(EAC3 Atmos( 5\.1)?)\]/i }, + { key: 'Plus-Atmos', value: /\[(HDR10Plus)\].*\[(EAC3 Atmos( 5\.1)?)\]/i }, + { key: 'DV-HDR-Atmos', value: /\[(DV HDR10)\].*\[(EAC3 Atmos( 5\.1)?)\]/i }, + { key: 'DV-Plus-Atmos', value: /\[(DV HDR10Plus)\].*\[(EAC3 Atmos( 5\.1)?)\]/i }, + { key: 'DV-TrueHD', value: /\[(?!.*HDR)(DV)\].*\[(?![^\]]*Atmos)[^\]]*TrueHD( 7\.1)?\]/i }, + { key: 'HDR-TrueHD', value: /\[(HDR10)\].*\[(?![^\]]*Atmos)[^\]]*TrueHD( 7\.1)?\]/i }, + { key: 'Plus-TrueHD', value: /\[(HDR10Plus)\].*\[(?![^\]]*Atmos)[^\]]*TrueHD( 7\.1)?\]/i }, + { key: 'DV-HDR-TrueHD', value: /\[(DV HDR10)\].*\[(?![^\]]*Atmos)[^\]]*TrueHD( 7\.1)?\]/i }, + { key: 'DV-Plus-TrueHD', value: /\[(DV HDR10Plus)\].*\[(?![^\]]*Atmos)[^\]]*TrueHD( 7\.1)?\]/i }, + { key: 'DV-TrueHD-Atmos', value: /\[(?!.*HDR)(DV)\].*\[(TrueHD Atmos( 7\.1)?)\]/i }, + { key: 'HDR-TrueHD-Atmos', value: /\[(HDR10)\].*\[(TrueHD Atmos( 7\.1)?)\]/i }, + { key: 'Plus-TrueHD-Atmos', value: /\[(HDR10Plus)\].*\[(TrueHD Atmos( 7\.1)?)\]/i }, + { key: 'DV-HDR-TrueHD-Atmos', value: /\[(DV HDR10)\].*\[(TrueHD Atmos( 7\.1)?)\]/i }, + { key: 'DV-Plus-TrueHD-Atmos', value: /\[(DV HDR10Plus)\].*\[(TrueHD Atmos( 7\.1)?)\]/i }, + + // Resolution patterns + { key: '1080P', value: /1080p/i }, + { key: 'Ultra-HD', value: /(?:4k|2160p)/i }, + + // Edition patterns + { key: 'IMAX', value: /\{edition-IMAX[^}]*\}/i }, + { key: 'Unrated-Edition', value: /\{edition-Unrated[^}]*\}/i }, + { key: 'Directors-Cut', value: /\{edition-(Director|Ultimate Director)[^}]*\}/i }, + { key: 'Special-Edition', value: /\{edition-Special[^}]*\}/i }, + { key: 'Anniversary-Edition', value: /\{edition-\d+th Anniversary[^}]*\}/i }, + { key: 'Collectors-Edition', value: /\{edition-Collector[^}]*\}/i }, + { key: 'Minus-Color', value: /\{edition-Minus Color[^}]*\}/i }, + { key: 'Extended-Cut', value: /\{edition-Extended Cut[^}]*\}/i }, + { key: 'Extended-Edition', value: /\{edition-Extended(?! Cut)[^}]*\}/i }, + { key: 'Open-Matte', value: /\{edition-Open Matte[^}]*\}/i }, + { key: 'Final-Cut', value: /\{edition-Final Cut[^}]*\}/i }, + { key: 'Remastered', value: /\{edition-Remastered[^}]*\}/i }, + { key: 'Restored', value: /\{edition-Restored[^}]*\}/i }, + { key: 'Signature-Edition', value: /\{edition-Signature[^}]*\}/i }, + { key: 'Theatrical', value: /\{edition-Theatrical(?! Cut)[^}]*\}/i }, + { key: 'Theatrical-Cut', value: /\{edition-Theatrical Cut[^}]*\}/i }, + { key: 'Uncut', value: /\{edition-Uncut[^}]*\}/i }, + { key: 'Ultimate-Edition', value: /\{edition-Ultimate(?! Director)[^}]*\}/i }, +]; + +export function parseMediaInfo(relativePath: string): ProcessingItem['fileInfo']['mediaInfo'] { + const mediaInfo = { + dynamicRange: [] as ProcessingItem['fileInfo']['mediaInfo']['dynamicRange'], + audioFormat: [] as ProcessingItem['fileInfo']['mediaInfo']['audioFormat'], + combinedFormat: [] as ProcessingItem['fileInfo']['mediaInfo']['combinedFormat'], + resolution: [] as ProcessingItem['fileInfo']['mediaInfo']['resolution'], + edition: [] as ProcessingItem['fileInfo']['mediaInfo']['edition'], + }; + + // Check for all formats (no break statement) + for (const pattern of regexPatterns) { + if (pattern.value.test(relativePath)) { + if (pattern.key.includes('-')) { + mediaInfo.combinedFormat?.push(pattern.key); + } else if (['DV', 'HDR', 'Plus'].includes(pattern.key)) { + mediaInfo.dynamicRange?.push(pattern.key as 'DV' | 'HDR' | 'Plus' | 'DV-HDR' | 'DV-Plus'); + } else if (['1080P', 'Ultra-HD'].includes(pattern.key)) { + mediaInfo.resolution?.push(pattern.key as '2160p' | '1080p' | 'Ultra-HD'); + } else { + const validAudioFormats = ['DigitalPlus', 'DTS-HD', 'DTS-X', 'TrueHD', 'Atmos', 'TrueHD-Atmos'] as const; + if (validAudioFormats.includes(pattern.key as any)) { + mediaInfo.audioFormat?.push(pattern.key as typeof validAudioFormats[number]); + } + } + } + } + + return mediaInfo; +} \ No newline at end of file diff --git a/client/src/utils/upload.ts b/client/src/utils/upload.ts new file mode 100644 index 0000000..15f546e --- /dev/null +++ b/client/src/utils/upload.ts @@ -0,0 +1,21 @@ +const handleFileUpload = async (file: File) => { + const formData = new FormData(); + formData.append('torrentFile', file); + + return fetch('/api/torrent/upload', { + method: 'POST', + body: formData, + }); +}; + +const handleMagnetUpload = async (magnetUrl: string) => { + return fetch('/api/torrent/magnet', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ magnetUrl }), + }); +}; + +export { handleFileUpload, handleMagnetUpload }; \ No newline at end of file diff --git a/docker-compose-ui.yml b/docker-compose-ui.yml new file mode 100644 index 0000000..67f5b3b --- /dev/null +++ b/docker-compose-ui.yml @@ -0,0 +1,43 @@ +x-blackhole: &blackhole + build: + context: . + dockerfile: Dockerfile.blackhole-ui +# image: ghcr.io/westsurname/scripts/blackhole:latest + pull_policy: always + user: "${PUID:-}${PGID:+:${PGID}}" + env_file: + - .env + restart: unless-stopped + +services: + blackhole: + <<: *blackhole + container_name: blackhole-ui + volumes: + - ${REALDEBRID_MOUNT_TORRENTS_PATH:-${BLACKHOLE_RD_MOUNT_TORRENTS_PATH:-/dev/null}}:${REALDEBRID_MOUNT_TORRENTS_PATH:-${BLACKHOLE_RD_MOUNT_TORRENTS_PATH:-/dev/null}} + - ${TORBOX_MOUNT_TORRENTS_PATH:-/dev/null}:${TORBOX_MOUNT_TORRENTS_PATH:-/dev/null} + - ${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_SONARR_PATH}:/${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_SONARR_PATH} + - ${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_RADARR_PATH}:/${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_RADARR_PATH} + environment: + - BLACKHOLE_BASE_WATCH_PATH=${BLACKHOLE_BASE_WATCH_PATH} + restart: unless-stopped + labels: + com.github.saltbox.saltbox_managed: true + traefik.enable: true + traefik.http.routers.blackhole-http.entrypoints: web + traefik.http.routers.blackhole-http.middlewares: globalHeaders@file,redirect-to-https@docker,robotHeaders@file,cloudflarewarp@docker + traefik.http.routers.blackhole-http.rule: Host(`blackhole.davyjones.media`) + traefik.http.routers.blackhole-http.service: blackhole + traefik.http.routers.blackhole.entrypoints: websecure + traefik.http.routers.blackhole.middlewares: globalHeaders@file,secureHeaders@file,robotHeaders@file,cloudflarewarp@docker + traefik.http.routers.blackhole.rule: Host(`blackhole.davyjones.media`) + traefik.http.routers.blackhole.service: blackhole + traefik.http.routers.blackhole.tls.certresolver: cfdns + traefik.http.routers.blackhole.tls.options: securetls@file + traefik.http.services.blackhole.loadbalancer.server.port: 8000 + profiles: [blackhole-ui] + +networks: + default: + name: ${DOCKER_NETWORK:-scripts_default} + external: ${DOCKER_NETWORK_EXTERNAL:-false} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e5b7dd8 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1889 @@ +{ + "name": "blackhole-ui", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "blackhole-ui", + "dependencies": { + "@types/axios": "^0.9.36", + "axios": "^1.7.8", + "express": "^4.21.1", + "multer": "^1.4.5-lts.1" + }, + "devDependencies": { + "@babel/plugin-proposal-private-property-in-object": "^7.21.11", + "@types/express": "^5.0.0", + "@types/multer": "^1.4.12", + "@types/node": "^22.10.1" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.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==", + "dev": true, + "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/compat-data": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", + "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/generator": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@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-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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.25.9", + "@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-create-class-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "dev": true, + "license": "MIT", + "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.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "peer": true, + "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==", + "dev": true, + "license": "MIT", + "peer": true, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "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.", + "dev": true, + "license": "MIT", + "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/@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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@types/axios": { + "version": "0.9.36", + "resolved": "https://registry.npmjs.org/@types/axios/-/axios-0.9.36.tgz", + "integrity": "sha512-NLOpedx9o+rxo/X5ChbdiX6mS1atE4WHmEEIcR9NLenRVa5HoVjAvjafwU3FPTqnZEstpoqCaW7fagqSoTDNeg==", + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/express": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz", + "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.2.tgz", + "integrity": "sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "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==", + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/multer": { + "version": "1.4.12", + "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.12.tgz", + "integrity": "sha512-pQ2hoqvXiJt2FP9WQVLPRO+AmiIm/ZYkavPlIQnx282u4ZrVdztx0pkh3jjpQt0Kz+YI0YhSG264y08UJKoUQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/node": { + "version": "22.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz", + "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/qs": { + "version": "6.9.17", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", + "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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.7.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.8.tgz", + "integrity": "sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "ms": "2.0.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==", + "license": "MIT" + }, + "node_modules/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "dev": true, + "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" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001684", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz", + "integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==", + "dev": true, + "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" + } + ], + "license": "CC-BY-4.0", + "peer": true + }, + "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-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "peer": true + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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==", + "license": "MIT", + "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/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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.67", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.67.tgz", + "integrity": "sha512-nz88NNBsD7kQSAGGJyp8hS6xSPtWwqNogA0mjtc2nUYeEf3nURK9qpV18TuBdDmEDgVWotS8Wkzf+V52dSQ/LQ==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "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/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "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/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==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/gopd": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.1.0.tgz", + "integrity": "sha512-FQoVQnqcdk4hVM4JN1eromaun4iuS34oStkdlLENLdpULsuQcTyXj8w7ayhuUfPwEYZ1ZOooOTT6fdA9Vmx/RA==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.1.0.tgz", + "integrity": "sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", + "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/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==", + "license": "MIT", + "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/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/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "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" + } + }, + "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/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "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/multer": { + "version": "1.4.5-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", + "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", + "license": "MIT", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT", + "peer": true + }, + "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-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "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/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "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/readable-stream/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==", + "license": "MIT" + }, + "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" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==", + "license": "MIT", + "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/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "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" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC", + "peer": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..8b2babc --- /dev/null +++ b/package.json @@ -0,0 +1,14 @@ +{ + "devDependencies": { + "@babel/plugin-proposal-private-property-in-object": "^7.21.11", + "@types/express": "^5.0.0", + "@types/multer": "^1.4.12", + "@types/node": "^22.10.1" + }, + "dependencies": { + "@types/axios": "^0.9.36", + "axios": "^1.7.8", + "express": "^4.21.1", + "multer": "^1.4.5-lts.1" + } +} diff --git a/requirements.txt b/requirements.txt index d877fce..93bf169 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,10 +4,14 @@ requests==2.28.1 #all bencode3==0.1.0 #blackhole watchdog==4.0.0 #blackhole +fastapi==0.102.0 #blackhole +uvicorn==0.30.0 #blackhole +pydantic==2.5.2 #blackhole +websockets==11.0.3 #blackhole Flask-Caching==2.1.0 #plex_request declxml==1.1.3 #plex_request -Werkzeug==3.0.1 #plex_authentication, blackhole +Werkzeug==3.0.1 #plex_authentication, blackhole, blackhole-ui flask==3.0.2 #plex_authentication, plex_request gunicorn==22.0.0 #plex_authentication, plex_request \ No newline at end of file diff --git a/shared/arr.py b/shared/arr.py index 91c89dc..c71709a 100644 --- a/shared/arr.py +++ b/shared/arr.py @@ -313,6 +313,12 @@ def automaticSearch(self, media: Media, childId: int): def _automaticSearchJson(self, media: Media, childId: int): pass + def parse(self, title: str): + response = retryRequest(lambda: requests.get( + f"{self.host}/api/v3/parse?apiKey={self.apiKey}&title={title}" + )) + return response.json() + class Sonarr(Arr): host = sonarr['host'] apiKey = sonarr['apiKey'] diff --git a/shared/debrid.py b/shared/debrid.py index f9260a0..4953db9 100644 --- a/shared/debrid.py +++ b/shared/debrid.py @@ -525,4 +525,4 @@ class TorboxTorrent(Torbox, Torrent): pass class TorboxMagnet(Torbox, Magnet): - pass + pass \ No newline at end of file diff --git a/shared/websocket.py b/shared/websocket.py new file mode 100644 index 0000000..82bb8b3 --- /dev/null +++ b/shared/websocket.py @@ -0,0 +1,91 @@ +from fastapi import WebSocket +from typing import Set +import asyncio +import logging + +class WebSocketManager: + _instance = None + _websockets: Set[WebSocket] = set() + _active_items = {} + _lock = None + + @classmethod + def get_instance(cls): + if cls._instance is None: + cls._instance = cls() + cls._instance._lock = asyncio.Lock() + print("Created new WebSocketManager instance") + return cls._instance + + async def add_websocket(self, websocket: WebSocket): + async with self._lock: + self._websockets.add(websocket) + + # Send current status to new connection + if self._active_items: + await websocket.send_json({ + 'type': 'processing_status', + 'items': list(self._active_items.values()) + }) + + async def remove_websocket(self, websocket: WebSocket): + async with self._lock: + self._websockets.discard(websocket) + + async def broadcast_status(self, message): + if not self._websockets: + return + + # Update active items if this is a processing_status message + if message.get('type') == 'processing_status' and 'items' in message: + # Update items without clearing all existing ones + for item in message['items']: + if 'id' in item: + # Remove completed items + if item.get('status', {}).get('status') == 'Completed': + if item['id'] in self._active_items: + del self._active_items[item['id']] + else: + self._active_items[item['id']] = item + + # Update the message to include all current items + message['items'] = list(self._active_items.values()) + + disconnected = set() + + # Iterate over a copy of the set to avoid modification during iteration + for websocket in list(self._websockets): + try: + await websocket.send_json(message) + except Exception as e: + print(f'Error broadcasting to websocket: {e}') + disconnected.add(websocket) + + # Handle disconnected websockets outside the main loop + for websocket in disconnected: + self._websockets.discard(websocket) + + def get_active_items(self): + return self._active_items.copy() + + def remove_active_item(self, item_id: str): + """Remove an item from active items when processing completes""" + if item_id in self._active_items: + del self._active_items[item_id] + print(f"Successfully removed item {item_id} from active items") + else: + print(f"Item {item_id} not found in active items") + + async def update_item_status(self, item_id: str, status_update: dict): + """Update status for a specific item""" + print(f"Updating status for item {item_id}: {status_update}") + async with self._lock: + if item_id in self._active_items: + self._active_items[item_id].update(status_update) + await self.broadcast_status({ + 'type': 'processing_status', + 'items': list(self._active_items.values()) + }) + print(f"Status updated for item {item_id}") + else: + print(f"Item {item_id} not found for status update") \ No newline at end of file From ad3d128657c89ba9982527598a765e3b57a3abb9 Mon Sep 17 00:00:00 2001 From: Pukabyte <120460627+Pukabyte@users.noreply.github.com> Date: Thu, 12 Dec 2024 22:53:32 +1300 Subject: [PATCH 02/10] Update docker-compose-ui.yml --- docker-compose-ui.yml | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/docker-compose-ui.yml b/docker-compose-ui.yml index 67f5b3b..d9f87b1 100644 --- a/docker-compose-ui.yml +++ b/docker-compose-ui.yml @@ -13,6 +13,8 @@ services: blackhole: <<: *blackhole container_name: blackhole-ui + ports: + - 8000:8000 volumes: - ${REALDEBRID_MOUNT_TORRENTS_PATH:-${BLACKHOLE_RD_MOUNT_TORRENTS_PATH:-/dev/null}}:${REALDEBRID_MOUNT_TORRENTS_PATH:-${BLACKHOLE_RD_MOUNT_TORRENTS_PATH:-/dev/null}} - ${TORBOX_MOUNT_TORRENTS_PATH:-/dev/null}:${TORBOX_MOUNT_TORRENTS_PATH:-/dev/null} @@ -21,23 +23,9 @@ services: environment: - BLACKHOLE_BASE_WATCH_PATH=${BLACKHOLE_BASE_WATCH_PATH} restart: unless-stopped - labels: - com.github.saltbox.saltbox_managed: true - traefik.enable: true - traefik.http.routers.blackhole-http.entrypoints: web - traefik.http.routers.blackhole-http.middlewares: globalHeaders@file,redirect-to-https@docker,robotHeaders@file,cloudflarewarp@docker - traefik.http.routers.blackhole-http.rule: Host(`blackhole.davyjones.media`) - traefik.http.routers.blackhole-http.service: blackhole - traefik.http.routers.blackhole.entrypoints: websecure - traefik.http.routers.blackhole.middlewares: globalHeaders@file,secureHeaders@file,robotHeaders@file,cloudflarewarp@docker - traefik.http.routers.blackhole.rule: Host(`blackhole.davyjones.media`) - traefik.http.routers.blackhole.service: blackhole - traefik.http.routers.blackhole.tls.certresolver: cfdns - traefik.http.routers.blackhole.tls.options: securetls@file - traefik.http.services.blackhole.loadbalancer.server.port: 8000 profiles: [blackhole-ui] networks: default: name: ${DOCKER_NETWORK:-scripts_default} - external: ${DOCKER_NETWORK_EXTERNAL:-false} \ No newline at end of file + external: ${DOCKER_NETWORK_EXTERNAL:-false} From d1d8231972909c05c6f8ba126d4b68d443f96a55 Mon Sep 17 00:00:00 2001 From: Pukabyte <120460627+Pukabyte@users.noreply.github.com> Date: Thu, 12 Dec 2024 23:50:36 +1300 Subject: [PATCH 03/10] Update .env.template --- .env.template | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.env.template b/.env.template index e0e872e..61d57b7 100644 --- a/.env.template +++ b/.env.template @@ -154,3 +154,8 @@ PGID= UMASK=002 DOCKER_NETWORK="scripts_default" DOCKER_NETWORK_EXTERNAL=false + +#-----------------# +# TMDB API CONFIG # +#-----------------# +TMDB_API_KEY= From 09151922d19b186789f24d96f40cd921df2de017 Mon Sep 17 00:00:00 2001 From: Pukabyte <120460627+Pukabyte@users.noreply.github.com> Date: Thu, 12 Dec 2024 23:53:12 +1300 Subject: [PATCH 04/10] Update .env.template --- .env.template | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.env.template b/.env.template index 61d57b7..048f63e 100644 --- a/.env.template +++ b/.env.template @@ -5,6 +5,10 @@ # ╚════██║██║ ██╔══██╗██║██╔═══╝ ██║ ╚════██║ # # ███████║╚██████╗██║ ██║██║██║ ██║ ███████║ # # ╚══════╝ ╚═════╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝ ╚══════╝ # +# Created by @westsurname # +# # +# The headings contain the scripts that require the # +# the variables within. # #------------------------------------------------------# #--------# @@ -148,6 +152,7 @@ REPAIR_RUN_INTERVAL="1d" # GENERAL CONFIGURATION # #-----------------------# +CONNECTION_VALUE=ws PYTHONUNBUFFERED=TRUE PUID= PGID= From 7f851d91a97b608ec5f136787bd69bfcb09511a3 Mon Sep 17 00:00:00 2001 From: Pukabyte <120460627+Pukabyte@users.noreply.github.com> Date: Thu, 12 Dec 2024 23:59:16 +1300 Subject: [PATCH 05/10] Update .env.template --- .env.template | 49 +++++++++++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/.env.template b/.env.template index 048f63e..ac19369 100644 --- a/.env.template +++ b/.env.template @@ -11,11 +11,13 @@ # the variables within. # #------------------------------------------------------# -#--------# -# SERVER # -#--------# +#--------------# +# Blackhole UI # +#--------------# -SERVER_DOMAIN= +SERVER_DOMAIN= #add if using a domain name / reverse proxy +TMDB_API_KEY= +CONNECTION_VALUE=ws #for most usecases, do not change #-------------------------------------------------------------------# # PLEX - WATCHLIST, PLEX AUTHENTICATION, PLEX REQUEST, PLEX REFRESH # @@ -40,41 +42,41 @@ OVERSEERR_API_KEY= # SONARR - BLACKHOLE, REPAIR, IMPORT TORRENT FOLDER, RECLAIM SPACE, ADD NEXT EPISODE # #------------------------------------------------------------------------------------# -SONARR_HOST= +SONARR_HOST= # http://sonarr:8989 SONARR_API_KEY= -SONARR_ROOT_FOLDER= +SONARR_ROOT_FOLDER= # /mnt/plex/TV -SONARR_HOST_4K= +SONARR_HOST_4K= # http://sonarr4k:8989 SONARR_API_KEY_4K= -SONARR_ROOT_FOLDER_4K= +SONARR_ROOT_FOLDER_4K= # /mnt/plex/TV - 4K -SONARR_HOST_ANIME= +SONARR_HOST_ANIME= # http://sonarranime:8989 SONARR_API_KEY_ANIME= -SONARR_ROOT_FOLDER_ANIME= +SONARR_ROOT_FOLDER_ANIME= # /mnt/plex/TV - Anime -SONARR_HOST_MUX= +SONARR_HOST_MUX= # http://sonarrmux:8989 SONARR_API_KEY_MUX= -SONARR_ROOT_FOLDER_MUX= +SONARR_ROOT_FOLDER_MUX= # /mnt/plex/TV - Remux #------------------------------------------------------------------# # RADARR - BLACKHOLE, REPAIR, IMPORT TORRENT FOLDER, RECLAIM SPACE # #------------------------------------------------------------------# -RADARR_HOST= +RADARR_HOST= # http://radarr:7878 RADARR_API_KEY= -RADARR_ROOT_FOLDER= +RADARR_ROOT_FOLDER= # /mnt/plex/Movies -RADARR_HOST_4K= +RADARR_HOST_4K= # http://radarr4k:7878 RADARR_API_KEY_4K= -RADARR_ROOT_FOLDER_4K= +RADARR_ROOT_FOLDER_4K= # /mnt/plex/Movies - 4K -RADARR_HOST_ANIME= +RADARR_HOST_ANIME= # http://radarranime:7878 RADARR_API_KEY_ANIME= -RADARR_ROOT_FOLDER_ANIME= +RADARR_ROOT_FOLDER_ANIME= # /mnt/plex/Movies - Anime -RADARR_HOST_MUX= +RADARR_HOST_MUX= # http://radarrmux:7878 RADARR_API_KEY_MUX= -RADARR_ROOT_FOLDER_MUX= +RADARR_ROOT_FOLDER_MUX= # /mnt/plex/Movies - Remux #--------------------------# # TAUTULLI - RECLAIM SPACE # @@ -90,7 +92,7 @@ TAUTULLI_API_KEY= REALDEBRID_ENABLED=true REALDEBRID_HOST="https://api.real-debrid.com/rest/1.0/" REALDEBRID_API_KEY= -REALDEBRID_MOUNT_TORRENTS_PATH= +REALDEBRID_MOUNT_TORRENTS_PATH= # /path/torclone/mount/__all__ #---------------------------# # TORBOX - BLACKHOLE, REPAIR # @@ -152,7 +154,6 @@ REPAIR_RUN_INTERVAL="1d" # GENERAL CONFIGURATION # #-----------------------# -CONNECTION_VALUE=ws PYTHONUNBUFFERED=TRUE PUID= PGID= @@ -160,7 +161,3 @@ UMASK=002 DOCKER_NETWORK="scripts_default" DOCKER_NETWORK_EXTERNAL=false -#-----------------# -# TMDB API CONFIG # -#-----------------# -TMDB_API_KEY= From a799d91b9151bddd23e76819ff57936afeec021c Mon Sep 17 00:00:00 2001 From: Pukabyte <120460627+Pukabyte@users.noreply.github.com> Date: Sat, 14 Dec 2024 16:12:34 +1300 Subject: [PATCH 06/10] Update Dockerfile.blackhole --- Dockerfile.blackhole | 42 +++++++++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/Dockerfile.blackhole b/Dockerfile.blackhole index e0f0ee1..cad8da2 100644 --- a/Dockerfile.blackhole +++ b/Dockerfile.blackhole @@ -1,22 +1,46 @@ -FROM python:3.9-slim +# Frontend build stage +FROM node:18-slim AS frontend-builder +WORKDIR /app + +# Copy package files first for better caching +COPY client/package*.json ./ +RUN npm install + +# Copy the rest of the client code +COPY client/ ./ + +# Build the frontend first +RUN npm run build + +# Create directory structure for mediainfo images +RUN mkdir -p /app/build/static/images/mediainfo/codec \ + /app/build/static/images/mediainfo/edition \ + /app/build/static/images/mediainfo/resolution -# Metadata labels +# Copy mediainfo images to the correct location and verify +COPY client/src/images/mediainfo/codec/* /app/build/static/images/mediainfo/codec/ +COPY client/src/images/mediainfo/edition/* /app/build/static/images/mediainfo/edition/ +COPY client/src/images/mediainfo/resolution/* /app/build/static/images/mediainfo/resolution/ + +# Python application stage +FROM python:3.9-slim LABEL org.opencontainers.image.source="https://github.com/westsurname/scripts" LABEL org.opencontainers.image.description="Docker image for the blackhole service" ARG SERVICE_NAME=blackhole - -# Set working directory WORKDIR /app -# Copy only the files needed for pip install to maximize cache utilization +# Install Python dependencies first for better caching COPY requirements.txt ./ - -# Install Python dependencies RUN grep -E "#.*($SERVICE_NAME|all)" requirements.txt | awk '{print $0}' > service_requirements.txt && \ pip install --no-cache-dir -r service_requirements.txt -# Copy the rest of the application +# Copy application code COPY . . -CMD ["python", "blackhole_watcher.py"] \ No newline at end of file +# Copy frontend build files +COPY --from=frontend-builder /app/build/* /app/static/ + +ENV PYTHONBUFFERED=1 + +CMD ["python", "blackhole_watcher.py"] From 39ac214883be53ce8b0368076dcc7b1078012b62 Mon Sep 17 00:00:00 2001 From: Pukabyte <120460627+Pukabyte@users.noreply.github.com> Date: Sat, 14 Dec 2024 16:12:51 +1300 Subject: [PATCH 07/10] Delete Dockerfile.blackhole-ui --- Dockerfile.blackhole-ui | 46 ----------------------------------------- 1 file changed, 46 deletions(-) delete mode 100644 Dockerfile.blackhole-ui diff --git a/Dockerfile.blackhole-ui b/Dockerfile.blackhole-ui deleted file mode 100644 index 2c6c41d..0000000 --- a/Dockerfile.blackhole-ui +++ /dev/null @@ -1,46 +0,0 @@ -# Frontend build stage -FROM node:18-slim AS frontend-builder -WORKDIR /app - -# Copy package files first for better caching -COPY client/package*.json ./ -RUN npm install - -# Copy the rest of the client code -COPY client/ ./ - -# Build the frontend first -RUN npm run build - -# Create directory structure for mediainfo images -RUN mkdir -p /app/build/static/images/mediainfo/codec \ - /app/build/static/images/mediainfo/edition \ - /app/build/static/images/mediainfo/resolution - -# Copy mediainfo images to the correct location and verify -COPY client/src/images/mediainfo/codec/* /app/build/static/images/mediainfo/codec/ -COPY client/src/images/mediainfo/edition/* /app/build/static/images/mediainfo/edition/ -COPY client/src/images/mediainfo/resolution/* /app/build/static/images/mediainfo/resolution/ - -# Python application stage -FROM python:3.9-slim -LABEL org.opencontainers.image.source="https://github.com/westsurname/scripts" -LABEL org.opencontainers.image.description="Docker image for the blackhole service" - -ARG SERVICE_NAME=blackhole -WORKDIR /app - -# Install Python dependencies first for better caching -COPY requirements.txt ./ -RUN grep -E "#.*($SERVICE_NAME|all)" requirements.txt | awk '{print $0}' > service_requirements.txt && \ - pip install --no-cache-dir -r service_requirements.txt - -# Copy application code -COPY . . - -# Copy frontend build files -COPY --from=frontend-builder /app/build/* /app/static/ - -ENV PYTHONBUFFERED=1 - -CMD ["python", "blackhole_watcher.py"] \ No newline at end of file From 2ccb0c78bda66fcec4359e17bebd0ad9ba29348c Mon Sep 17 00:00:00 2001 From: Pukabyte <120460627+Pukabyte@users.noreply.github.com> Date: Sat, 14 Dec 2024 16:15:34 +1300 Subject: [PATCH 08/10] Update docker-compose.yml --- docker-compose.yml | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 03c8c69..20242aa 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -23,19 +23,29 @@ x-repair: &repair services: blackhole: <<: *blackhole - container_name: blackhole_service - environment: - - BLACKHOLE_BASE_WATCH_PATH=/${BLACKHOLE_BASE_WATCH_PATH} + container_name: blackhole + ports: + - 8000:8000 volumes: - ${REALDEBRID_MOUNT_TORRENTS_PATH:-${BLACKHOLE_RD_MOUNT_TORRENTS_PATH:-/dev/null}}:${REALDEBRID_MOUNT_TORRENTS_PATH:-${BLACKHOLE_RD_MOUNT_TORRENTS_PATH:-/dev/null}} - ${TORBOX_MOUNT_TORRENTS_PATH:-/dev/null}:${TORBOX_MOUNT_TORRENTS_PATH:-/dev/null} - ${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_SONARR_PATH}:/${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_SONARR_PATH} - ${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_RADARR_PATH}:/${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_RADARR_PATH} + environment: + - BLACKHOLE_BASE_WATCH_PATH=${BLACKHOLE_BASE_WATCH_PATH} + restart: unless-stopped profiles: [blackhole, blackhole_all, all] +networks: + default: + name: ${DOCKER_NETWORK:-scripts_default} + external: ${DOCKER_NETWORK_EXTERNAL:-false} + blackhole_4k: <<: *blackhole container_name: blackhole_4k_service + ports: + - 8000:8000 environment: - SONARR_HOST=${SONARR_HOST_4K} - SONARR_API_KEY=${SONARR_API_KEY_4K} @@ -52,6 +62,8 @@ services: blackhole_anime: <<: *blackhole container_name: blackhole_anime_service + ports: + - 8000:8000 environment: - SONARR_HOST=${SONARR_HOST_ANIME} - SONARR_API_KEY=${SONARR_API_KEY_ANIME} @@ -68,6 +80,8 @@ services: blackhole_mux: <<: *blackhole container_name: blackhole_mux_service + ports: + - 8000:8000 environment: - SONARR_HOST=${SONARR_HOST_MUX} - SONARR_API_KEY=${SONARR_API_KEY_MUX} @@ -203,4 +217,4 @@ services: networks: default: name: ${DOCKER_NETWORK:-scripts_default} - external: ${DOCKER_NETWORK_EXTERNAL:-false} \ No newline at end of file + external: ${DOCKER_NETWORK_EXTERNAL:-false} From 5f29f74537d8c09e10671e2ad75b494dad1cd095 Mon Sep 17 00:00:00 2001 From: Pukabyte <120460627+Pukabyte@users.noreply.github.com> Date: Sat, 14 Dec 2024 16:17:00 +1300 Subject: [PATCH 09/10] Update blackhole.py --- blackhole.py | 1 - 1 file changed, 1 deletion(-) diff --git a/blackhole.py b/blackhole.py index 03b4333..673200a 100644 --- a/blackhole.py +++ b/blackhole.py @@ -16,7 +16,6 @@ from shared.websocket import WebSocketManager from dotenv import load_dotenv - load_dotenv() # Add helper functions here, before any other code From 0a16b9d0e2f63711de7ad8e26e10aa6f0f8e653f Mon Sep 17 00:00:00 2001 From: Pukabyte <120460627+Pukabyte@users.noreply.github.com> Date: Sat, 14 Dec 2024 16:20:04 +1300 Subject: [PATCH 10/10] Update .env.template --- .env.template | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/.env.template b/.env.template index ac19369..1c889a4 100644 --- a/.env.template +++ b/.env.template @@ -11,13 +11,11 @@ # the variables within. # #------------------------------------------------------# -#--------------# -# Blackhole UI # -#--------------# +#---------------# +# SERVER DOMAIN # +#---------------# -SERVER_DOMAIN= #add if using a domain name / reverse proxy -TMDB_API_KEY= -CONNECTION_VALUE=ws #for most usecases, do not change +SERVER_DOMAIN= #-------------------------------------------------------------------# # PLEX - WATCHLIST, PLEX AUTHENTICATION, PLEX REQUEST, PLEX REFRESH # @@ -129,6 +127,13 @@ BLACKHOLE_RD_MOUNT_REFRESH_SECONDS=200 BLACKHOLE_WAIT_FOR_TORRENT_TIMEOUT=60 BLACKHOLE_HISTORY_PAGE_SIZE=500 +#--------------------------# +# BLACKHOLE UI - BLACKHOLE # +#--------------------------# + +TMDB_API_KEY= +CONNECTION_VALUE=ws + #------------------------------# # PLEX REQUEST - PLEX REQUEST # #------------------------------# @@ -161,3 +166,4 @@ UMASK=002 DOCKER_NETWORK="scripts_default" DOCKER_NETWORK_EXTERNAL=false +