From 4105e3985d76e7432cb811c3f011eec02b9022ba Mon Sep 17 00:00:00 2001
From: TaToTanWeb <75488098+TaToTanWeb@users.noreply.github.com>
Date: Tue, 3 Sep 2024 13:34:59 +0200
Subject: [PATCH] feat: telegram mini-app (#282)
* feat: added a telegram mini-app
* running web server in main
* fix: applied suggestions and pylint complaints
---
.gitignore | 4 +
main.py | 4 +-
module/commands/gdrive.py | 88 +-
module/commands/lezioni.py | 4 +-
module/data/lesson.py | 2 +-
module/utils/drive_utils.py | 43 +
requirements.txt | 4 +-
webapp/.postcssrc | 5 +
webapp/app.py | 50 +
webapp/drive/index.html | 48 +
webapp/drive/static/scripts/back.ts | 33 +
webapp/drive/static/scripts/container.ts | 51 +
webapp/drive/static/scripts/file.ts | 58 +
webapp/drive/static/scripts/folder.ts | 46 +
webapp/drive/static/scripts/images.ts | 19 +
webapp/drive/static/scripts/index.ts | 3 +
webapp/drive/static/scripts/resource.ts | 7 +
webapp/drive/static/scripts/update.ts | 18 +
webapp/drive/static/style.css | 105 +
webapp/drive/static/web/sw.js | 11 +
webapp/index.html | 58 +
webapp/package-lock.json | 4880 ++++++++++++++++++++++
webapp/package.json | 18 +
webapp/static/assets/logo.ico | Bin 0 -> 126928 bytes
webapp/static/assets/logo.png | Bin 0 -> 92120 bytes
webapp/static/style.css | 21 +
webapp/tailwind.config.js | 9 +
27 files changed, 5518 insertions(+), 71 deletions(-)
create mode 100644 module/utils/drive_utils.py
create mode 100644 webapp/.postcssrc
create mode 100644 webapp/app.py
create mode 100644 webapp/drive/index.html
create mode 100644 webapp/drive/static/scripts/back.ts
create mode 100644 webapp/drive/static/scripts/container.ts
create mode 100644 webapp/drive/static/scripts/file.ts
create mode 100644 webapp/drive/static/scripts/folder.ts
create mode 100644 webapp/drive/static/scripts/images.ts
create mode 100644 webapp/drive/static/scripts/index.ts
create mode 100644 webapp/drive/static/scripts/resource.ts
create mode 100644 webapp/drive/static/scripts/update.ts
create mode 100644 webapp/drive/static/style.css
create mode 100644 webapp/drive/static/web/sw.js
create mode 100644 webapp/index.html
create mode 100644 webapp/package-lock.json
create mode 100644 webapp/package.json
create mode 100644 webapp/static/assets/logo.ico
create mode 100644 webapp/static/assets/logo.png
create mode 100644 webapp/static/style.css
create mode 100644 webapp/tailwind.config.js
diff --git a/.gitignore b/.gitignore
index 977fbb58..22c8bdb7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -130,3 +130,7 @@ pydrive/*
.idea
data/json/subjs.json
**/.DS_Store
+
+# Webapp
+node_modules/
+.parcel-cache/
\ No newline at end of file
diff --git a/main.py b/main.py
index 1ce404f0..eb6bbce7 100755
--- a/main.py
+++ b/main.py
@@ -23,7 +23,8 @@
from module.shared import config_map
from module.utils.multi_lang_utils import load_translations, get_regex_multi_lang
from module.debug import error_handler, log_message
-
+from webapp.app import app
+import uvicorn
def add_commands(up: Updater) -> None:
"""Adds the list of commands with their description to the bot
@@ -195,6 +196,7 @@ def main() -> None:
add_jobs(updater.dispatcher)
updater.start_polling()
+ uvicorn.run(app, host="0.0.0.0", port=8000)
updater.idle()
diff --git a/module/commands/gdrive.py b/module/commands/gdrive.py
index 43936dfd..7d0de001 100644
--- a/module/commands/gdrive.py
+++ b/module/commands/gdrive.py
@@ -1,9 +1,4 @@
"""/drive command"""
-import os
-
-import yaml
-from pydrive2.auth import AuthError, GoogleAuth
-from pydrive2.drive import GoogleDrive
from pydrive2.files import GoogleDriveFile
from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update, Bot
from telegram.ext import CallbackContext
@@ -11,23 +6,7 @@
from module.debug import log_error
from module.data.vars import TEXT_IDS, PLACE_HOLDER
from module.utils.multi_lang_utils import get_locale
-
-gdrive_interface = None
-
-with open('config/settings.yaml', 'r', encoding='utf-8') as yaml_config:
- config_map = yaml.load(yaml_config, Loader=yaml.SafeLoader)
-
-
-def get_gdrive_interface() -> GoogleDrive:
- global gdrive_interface
-
- if gdrive_interface is None:
- # gauth uses all the client_config of settings.yaml
- gauth = GoogleAuth(settings_file="config/settings.yaml")
- gauth.CommandLineAuth()
- gdrive_interface = GoogleDrive(gauth)
-
- return gdrive_interface
+from module.utils.drive_utils import drive_utils
def drive(update: Update, context: CallbackContext) -> None:
@@ -39,7 +18,6 @@ def drive(update: Update, context: CallbackContext) -> None:
context: context passed by the handler
"""
check_log(update, "drive")
- gdrive: GoogleDrive = get_gdrive_interface()
chat_id: int = update.message.chat_id
locale: str = update.message.from_user.language_code
if chat_id < 0:
@@ -48,24 +26,20 @@ def drive(update: Update, context: CallbackContext) -> None:
)
return
- try:
- file_list = gdrive.ListFile(
- {
- 'q': f"'{config_map['drive_folder_id']}' in parents and trashed=false",
- 'orderBy': 'folder,title',
- }
- ).GetList()
-
- except AuthError as err:
- log_error(header="drive", error=err)
-
- # keyboard that allows the user to navigate the folder
- keyboard = get_files_keyboard(file_list, row_len=3)
- context.bot.sendMessage(
- chat_id=chat_id,
- text=get_locale(locale, TEXT_IDS.DRIVE_HEADER_TEXT_ID),
- reply_markup=InlineKeyboardMarkup(keyboard),
- )
+ file_list = drive_utils.list_files()
+ if file_list:
+ # keyboard that allows the user to navigate the folder
+ keyboard = get_files_keyboard(file_list, row_len=3)
+ context.bot.sendMessage(
+ chat_id=chat_id,
+ text=get_locale(locale, TEXT_IDS.DRIVE_HEADER_TEXT_ID),
+ reply_markup=InlineKeyboardMarkup(keyboard),
+ )
+ else:
+ context.bot.sendMessage(
+ chat_id=chat_id,
+ text=get_locale(locale, TEXT_IDS.DRIVE_ERROR_DEVS_TEXT_ID),
+ )
def drive_handler(update: Update, context: CallbackContext) -> None:
@@ -78,28 +52,17 @@ def drive_handler(update: Update, context: CallbackContext) -> None:
"""
bot: Bot = context.bot
- gdrive: GoogleDrive = get_gdrive_interface()
-
query_data: str = update.callback_query.data.replace("drive_file_", "")
chat_id: int = update.callback_query.from_user.id
message_id: int = update.callback_query.message.message_id
locale: str = update.callback_query.from_user.language_code
- fetched_file: GoogleDriveFile = gdrive.CreateFile({'id': query_data})
+ fetched_file: GoogleDriveFile = drive_utils.get_file(query_data)
# the user clicked on a folder
if fetched_file['mimeType'] == "application/vnd.google-apps.folder":
- try:
- istance_file = gdrive.ListFile(
- {
- 'q': f"'{fetched_file['id']}' in parents and trashed=false",
- 'orderBy': 'folder,title',
- }
- )
- file_list = istance_file.GetList()
+ file_list = drive_utils.list_files(fetched_file['id'])
- # pylint: disable=broad-except
- except Exception as e:
- log_error(header="drive_handler", error=e)
+ if file_list is None:
bot.editMessageText(
chat_id=chat_id,
message_id=message_id,
@@ -139,19 +102,12 @@ def drive_handler(update: Update, context: CallbackContext) -> None:
else: # the user clicked on a file
try:
- file_d = gdrive.CreateFile({'id': fetched_file['id']})
-
+ file_d = drive_utils.get_file(fetched_file['id'])
if int(file_d['fileSize']) < 5e7:
-
- file_path = f"file/{fetched_file['title']}"
- file_d.GetContentFile(file_path)
-
+ f = file_d.GetContentIOBuffer()
+ f.name = fetched_file['title']
bot.sendChatAction(chat_id=chat_id, action="UPLOAD_DOCUMENT")
-
- with open(file_path, 'rb') as f:
- bot.sendDocument(chat_id=chat_id, document=f)
-
- os.remove(file_path)
+ bot.sendDocument(chat_id=chat_id, document=f)
else:
bot.sendMessage(
diff --git a/module/commands/lezioni.py b/module/commands/lezioni.py
index 0f615af0..a3d099d4 100644
--- a/module/commands/lezioni.py
+++ b/module/commands/lezioni.py
@@ -35,8 +35,8 @@ def get_url(courses: str) -> str:
endl_index = courses.find("\n", course_index)
if token_pos != -1:
- main_link = courses[token_pos + 1:endl_index]
- return main_link
+ return courses[token_pos + 1:endl_index]
+ return ''
def get_orario_file() -> Optional[bytes]:
diff --git a/module/data/lesson.py b/module/data/lesson.py
index 5d95fa37..3aa4d953 100644
--- a/module/data/lesson.py
+++ b/module/data/lesson.py
@@ -75,7 +75,7 @@ def scrape(cls, year_exams: str, delete: bool = False):
if soup.find('b', id='attivo').text[0] == 'S':
semestre = 2
- elif soup.find('b', id='attivo').text[0] == 'P':
+ else:
semestre = 1
table = soup.find('table', id='tbl_small_font')
diff --git a/module/utils/drive_utils.py b/module/utils/drive_utils.py
new file mode 100644
index 00000000..3ebb4d23
--- /dev/null
+++ b/module/utils/drive_utils.py
@@ -0,0 +1,43 @@
+import yaml
+from typing import Optional
+from pydrive2.auth import GoogleAuth
+from pydrive2.drive import GoogleDrive
+from pydrive2.files import GoogleDriveFileList, GoogleDriveFile
+from module.debug import log_error
+
+
+class DriveUtils:
+ def __init__(self):
+ self._gdrive = None
+ with open('config/settings.yaml', 'r', encoding='utf-8') as yaml_config:
+ self.config_map = yaml.load(yaml_config, Loader=yaml.SafeLoader)
+
+ @property
+ def gdrive(self) -> GoogleDrive:
+ 'Returns the active drive.GoogleDrive instance.'
+ if self._gdrive is None:
+ # gauth uses all the client_config of settings.yaml
+ gauth = GoogleAuth(settings_file="./config/settings.yaml")
+ gauth.CommandLineAuth()
+ self._gdrive = GoogleDrive(gauth)
+ return self._gdrive
+
+ def list_files(self, folder_id: Optional[str] = None) -> Optional[GoogleDriveFileList]:
+ 'Returns a list of files or folders in the given directory'
+ folder_id = folder_id or self.config_map['drive_folder_id']
+ try:
+ return self.gdrive.ListFile({
+ 'q': f"'{folder_id}' in parents and trashed=false",
+ 'orderBy': 'folder,title',
+ }).GetList()
+ # pylint: disable=broad-except
+ except Exception as e:
+ log_error(header="drive_handler", error=e)
+ return None
+
+ def get_file(self, file_id: str) -> GoogleDriveFile:
+ 'Shorthand for self.gdrive.CreateFile'
+ return self.gdrive.CreateFile({'id': file_id})
+
+
+drive_utils = DriveUtils()
diff --git a/requirements.txt b/requirements.txt
index d4c59653..cf56a4cc 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,4 @@
+numpy==1.26.4
python-telegram-bot==13.8.1
PyDrive2==1.10.0
requests==2.26.0
@@ -6,4 +7,5 @@ python-gitlab==2.10.1
matplotlib==3.5.0
pandas==1.3.4
Pillow==8.4.0
-lxml==4.6.4
\ No newline at end of file
+lxml==4.6.4
+uvicorn==0.30.6
\ No newline at end of file
diff --git a/webapp/.postcssrc b/webapp/.postcssrc
new file mode 100644
index 00000000..d42c370f
--- /dev/null
+++ b/webapp/.postcssrc
@@ -0,0 +1,5 @@
+{
+ "plugins": {
+ "tailwindcss": {}
+ }
+}
\ No newline at end of file
diff --git a/webapp/app.py b/webapp/app.py
new file mode 100644
index 00000000..248192fe
--- /dev/null
+++ b/webapp/app.py
@@ -0,0 +1,50 @@
+from fastapi import FastAPI
+from fastapi.staticfiles import StaticFiles
+from fastapi.responses import FileResponse, JSONResponse, StreamingResponse
+from pydrive2.files import MediaIoReadable
+from starlette.responses import ContentStream
+from module.utils.drive_utils import drive_utils
+
+
+app = FastAPI()
+
+@app.get('/favicon.ico')
+def favicon():
+ 'Serve the website favicon'
+ return FileResponse('webapp/static/assets/logo.ico')
+
+@app.get('/drive/folder')
+def _(folder_id: str):
+ 'Returns content of a folder in the DMI Drive.'
+ files = drive_utils.list_files(folder_id) or []
+ keys = 'id', 'title', 'mimeType'
+ response = JSONResponse([{key: file[key] for key in keys} for file in files])
+ response.headers['Access-Control-Allow-Origin'] = '*'
+ return response
+
+@app.get('/drive/file')
+def _(file_id: str):
+ 'Returns content of a file in the DMI Drive.'
+ file = drive_utils.get_file(file_id)
+ if not file:
+ return JSONResponse({'error': 'File not found.'}, status_code = 204)
+ content = file.GetContentIOBuffer()
+ return StreamingResponse(
+ stream(content),
+ media_type = file['mimeType'],
+ headers = {
+ # delivering it as a download
+ 'Content-Disposition': f"attachment; filename=\"{file['title']}\"",
+ # making it accessible from web browsers
+ 'Access-Control-Allow-Origin': '*'
+ }
+ )
+
+def stream(content: MediaIoReadable) -> ContentStream:
+ chunk = True
+ while chunk:
+ chunk = content.read()
+ if chunk:
+ yield chunk
+
+app.mount('/', StaticFiles(directory = 'webapp/dist/', html = True), name = 'dist')
diff --git a/webapp/drive/index.html b/webapp/drive/index.html
new file mode 100644
index 00000000..20813f21
--- /dev/null
+++ b/webapp/drive/index.html
@@ -0,0 +1,48 @@
+
+
+
+ DMI Drive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/webapp/drive/static/scripts/back.ts b/webapp/drive/static/scripts/back.ts
new file mode 100644
index 00000000..20ada572
--- /dev/null
+++ b/webapp/drive/static/scripts/back.ts
@@ -0,0 +1,33 @@
+import { Folder, FOLDERMIME } from "./folder";
+import { update_content } from "./update";
+
+export class BackButton extends Folder {
+ foldersHistory = new Array();
+
+ connectedCallback(): void {
+ this.update({
+ title: '..',
+ id: 'back',
+ mimeType: FOLDERMIME
+ })
+ }
+
+ onFolderChange(folderId: string): void {
+ this.foldersHistory.push(folderId);
+ if (folderId != '') {
+ this.show();
+ } else {
+ this.hide();
+ }
+ }
+
+ override onClick(): void {
+ const previousFolderId = this.foldersHistory[this.foldersHistory.length - 2];
+ // Removing the last folder id in the history
+ this.foldersHistory.splice(this.foldersHistory.length - 2);
+ // Showing content of the previous folder
+ update_content(previousFolderId);
+ }
+}
+
+window.customElements.define('drive-back-button', BackButton);
\ No newline at end of file
diff --git a/webapp/drive/static/scripts/container.ts b/webapp/drive/static/scripts/container.ts
new file mode 100644
index 00000000..d2e82ff3
--- /dev/null
+++ b/webapp/drive/static/scripts/container.ts
@@ -0,0 +1,51 @@
+export abstract class Containable extends HTMLElement {
+ // The HTMLElement to be collected.
+ data: T
+
+ abstract update(data: T): void;
+ abstract show(): void;
+ abstract hide(): void;
+};
+
+export class Container {
+ // Makes it easier to add elements or
+ // update already existing ones.
+ content = new Array>();
+ parent: HTMLElement;
+ elementType: new (p: HTMLElement, i: number) => Containable;
+
+ constructor(parent: HTMLElement, elementType: new (p: HTMLElement, i: number) => Containable) {
+ this.parent = parent;
+ this.elementType = elementType;
+ }
+
+ setContent(content: T[]): void {
+ // Displays the given list of objects
+ for (var i=0; i < content.length; i++)
+ this.addOrUpdate(content[i], i);
+ this.hideFrom(i);
+ }
+
+ addOrUpdate(data: T, i: number = 0): void {
+ if (this.content[i]) {
+ // If an object has been created already,
+ // update its content and show it
+ this.content[i].update(data);
+ this.content[i].show();
+ } else {
+ // Otherwise, create a new one
+ const e = new this.elementType(this.parent, i);
+ e.update(data);
+ e.show();
+ this.content.push(e);
+ this.parent.append(e);
+ }
+ }
+
+ hideFrom(i: number = 0): void {
+ // Start hiding elements from i till the end
+ for (; i < this.content.length; i++) {
+ this.content[i].hide();
+ }
+ }
+};
diff --git a/webapp/drive/static/scripts/file.ts b/webapp/drive/static/scripts/file.ts
new file mode 100644
index 00000000..f4d84319
--- /dev/null
+++ b/webapp/drive/static/scripts/file.ts
@@ -0,0 +1,58 @@
+import { Container } from "./container";
+import { DriveResource } from "./resource";
+import { match } from './images';
+
+
+class File extends HTMLElement {
+ data: DriveResource;
+ image: HTMLImageElement;
+ label: HTMLElement;
+ link: HTMLAnchorElement;
+ clicked: boolean = false;
+
+ constructor(parent: HTMLElement, i: number) {
+ super();
+
+ this.image = document.createElement('img') as HTMLImageElement;
+ this.label = document.createElement('file-name');
+ this.link = document.createElement('a') as HTMLAnchorElement;
+ this.link.style.display = 'none';
+ this.append(this.image, this.label, this.link);
+ this.addEventListener('click', this.onClick.bind(this));
+ this.classList.add('drive-file');
+ }
+
+ onClick(): void {
+ if (!this.clicked) {
+ this.clicked = true;
+ this.classList.add('clicked');
+ this.link.href = `/drive/file?file_id=${this.data.id}`;
+ this.link.download = this.data.title;
+ this.link.click();
+ setTimeout(() => {
+ this.classList.remove('clicked');
+ this.clicked = false;
+ }, 5000)
+ }
+ }
+
+ update(data: DriveResource): void {
+ this.data = data;
+ this.label.textContent = this.data.title;
+ this.image.src = match(data.mimeType)
+ }
+
+ show(): void {
+ this.classList.remove('hidden');
+ }
+
+ hide(): void {
+ this.classList.add('hidden');
+ }
+};
+
+
+
+const filesList = document.getElementById('files-list') as HTMLElement;
+export const files = new Container(filesList, File);
+window.customElements.define('drive-file', File);
\ No newline at end of file
diff --git a/webapp/drive/static/scripts/folder.ts b/webapp/drive/static/scripts/folder.ts
new file mode 100644
index 00000000..2f32f05a
--- /dev/null
+++ b/webapp/drive/static/scripts/folder.ts
@@ -0,0 +1,46 @@
+import { Container } from "./container";
+import { DriveResource } from "./resource";
+import { update_content } from "./update";
+
+
+export const FOLDERMIME = 'application/vnd.google-apps.folder';
+
+export class Folder extends HTMLElement {
+ data: DriveResource;
+ label: HTMLElement;
+
+ constructor(parent: HTMLElement, i: number) {
+ super();
+
+ const icon = document.createElement('i');
+ icon.classList.add('gg-folder');
+ this.label = document.createElement('folder-name');
+ this.append(icon, this.label);
+ this.addEventListener('click', this.onClick.bind(this));
+ this.classList.add('drive-folder');
+ }
+
+ onClick(): void {
+ // this.classList.add('fadeout');
+ update_content(this.data.id);
+ }
+
+ update(data: DriveResource): void {
+ this.data = data;
+ this.label.textContent = this.data.title;
+ }
+
+ show(): void {
+ this.classList.remove('hidden');
+ }
+
+ hide(): void {
+ this.classList.add('hidden');
+ }
+};
+
+
+
+const foldersList = document.getElementById('folders-list') as HTMLElement;
+export const folders = new Container(foldersList, Folder);
+window.customElements.define('drive-folder', Folder);
\ No newline at end of file
diff --git a/webapp/drive/static/scripts/images.ts b/webapp/drive/static/scripts/images.ts
new file mode 100644
index 00000000..60542f64
--- /dev/null
+++ b/webapp/drive/static/scripts/images.ts
@@ -0,0 +1,19 @@
+const images = {
+ audio: 'https://telegra.ph/file/83285485816f7cf0fcf67.png',
+ image: 'https://telegra.ph/file/a1f5285c74ce80d8fa554.png',
+ pdf: 'https://telegra.ph/file/cc429f1e5d235f54a4500.png',
+ document: 'https://telegra.ph/file/a12324faf7e9385ed23e8.png',
+ file: 'https://telegra.ph/file/6995dd010a84417175963.png'
+}
+
+
+export function match(mime: string): string {
+ const entries = Object.entries(images);
+ for (let i=0; i < entries.length; i++) {
+ if (mime.includes(entries[i][0])) {
+ return entries[i][1];
+ }
+ }
+
+ return images.file;
+}
\ No newline at end of file
diff --git a/webapp/drive/static/scripts/index.ts b/webapp/drive/static/scripts/index.ts
new file mode 100644
index 00000000..807b6ba6
--- /dev/null
+++ b/webapp/drive/static/scripts/index.ts
@@ -0,0 +1,3 @@
+import { update_content } from './update';
+
+update_content("");
\ No newline at end of file
diff --git a/webapp/drive/static/scripts/resource.ts b/webapp/drive/static/scripts/resource.ts
new file mode 100644
index 00000000..93c768fb
--- /dev/null
+++ b/webapp/drive/static/scripts/resource.ts
@@ -0,0 +1,7 @@
+export interface DriveResource {
+ // Represents a file or a folder
+ // as received from Google Drive.
+ id: string;
+ title: string;
+ mimeType: string;
+};
diff --git a/webapp/drive/static/scripts/update.ts b/webapp/drive/static/scripts/update.ts
new file mode 100644
index 00000000..bb2078da
--- /dev/null
+++ b/webapp/drive/static/scripts/update.ts
@@ -0,0 +1,18 @@
+import { FOLDERMIME, folders } from "./folder";
+import { files } from "./file";
+import { DriveResource } from "./resource";
+import { BackButton } from "./back";
+
+
+const backButton = document.getElementById('back-button') as BackButton;
+
+export function update_content(folderId: string): void {
+ fetch(`/drive/folder?folder_id=${folderId}`)
+ .then(response => response.json())
+ .then((data: DriveResource[]) => {
+ folders.setContent(data.filter((res => res.mimeType == FOLDERMIME)));
+ files.setContent(data.filter((res => res.mimeType != FOLDERMIME)));
+ // Include a special link to go back to the previous folder
+ backButton.onFolderChange(folderId);
+ });
+}
\ No newline at end of file
diff --git a/webapp/drive/static/style.css b/webapp/drive/static/style.css
new file mode 100644
index 00000000..66012444
--- /dev/null
+++ b/webapp/drive/static/style.css
@@ -0,0 +1,105 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+body {
+ background-color: var(--tg-theme-bg-color, white);
+ background-image: radial-gradient(var(--tg-theme-secondary-bg-color, #00000026) 2px,#0000 0);
+ background-size: 32px 32px;
+ color: var(--tg-theme-text-color, black);
+
+ -webkit-tap-highlight-color: transparent;
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+}
+
+#folders-list, #files-list {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ margin-top: 2.5rem;
+ width: 75%;
+}
+
+#files-list {
+ flex-direction: row;
+ align-items: flex-start;
+ flex-wrap: wrap;
+ margin-bottom: 2.5rem;
+ width: 95%;
+}
+
+.drive-folder {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ width: 100%;
+ height: 2.5rem;
+ padding: 1.5rem;
+ border-radius: 0.375rem;
+ margin-bottom: 1rem;
+
+ background-color: var(--tg-theme-secondary-bg-color, #e5e5e5);
+ box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
+ transition: box-shadow opacity;
+ cursor: pointer;
+}
+
+.drive-folder.fadeout {
+ opacity: 0%;
+}
+
+.drive-folder:hover {
+ box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
+}
+
+.drive-folder > i {
+ color: var(--tg-theme-text-color, #737373);
+ margin-right: 1.25rem;
+}
+
+.drive-folder > folder-name {
+ font-weight: bold;
+ color: var(--tg-theme-text-color, #404040);
+ max-width: 70%;
+ white-space: nowrap;
+ overflow: hidden !important;
+ text-overflow: ellipsis;
+}
+
+.drive-file {
+ display: flex;
+ flex-direction: column;
+ padding: 1.25rem;
+ border-radius: 0.375rem;
+ margin-left: 12px;
+ margin-bottom: 12px;
+ width: 45%;
+
+ background-color: var(--tg-theme-secondary-bg-color, #e5e5e5);
+ box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
+ transition: box-shadow;
+ cursor: pointer;
+}
+
+.drive-file:hover {
+ box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
+}
+
+.drive-file img {
+ width: 8rem;
+ border-radius: 0.375rem 0.375rem 0.375rem 1.75rem;
+}
+
+.drive-file file-name {
+ word-wrap: break-word;
+ margin-top: 1.25rem;
+ font-weight: bold;
+ color: var(--tg-theme-text-color, #171717);
+ width: 80%;
+}
+
+.drive-file.clicked {
+ opacity: 50%;
+ cursor: progress;
+}
\ No newline at end of file
diff --git a/webapp/drive/static/web/sw.js b/webapp/drive/static/web/sw.js
new file mode 100644
index 00000000..d8ad28e7
--- /dev/null
+++ b/webapp/drive/static/web/sw.js
@@ -0,0 +1,11 @@
+// Required for Progressive Web Apps.
+const cacheName = 'v1:static';
+
+self.addEventListener('install', function(e) {
+ e.waitUntil(
+ caches.open(cacheName).then(function(cache) {
+ // cache.addAll(['/index.html']);
+ self.skipWaiting();
+ })
+ );
+});
\ No newline at end of file
diff --git a/webapp/index.html b/webapp/index.html
new file mode 100644
index 00000000..ff03137c
--- /dev/null
+++ b/webapp/index.html
@@ -0,0 +1,58 @@
+
+
+
+ DMI Bot
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Telegram Hub
+
+
+
+
Book Market
+
+
+
+
DMI Drive
+
+
+
+
Spotted DMI
+
+
+
+
Ask DMI
+
+
+
+
OPIS Manager
+
+
+
+
+
\ No newline at end of file
diff --git a/webapp/package-lock.json b/webapp/package-lock.json
new file mode 100644
index 00000000..011cb75a
--- /dev/null
+++ b/webapp/package-lock.json
@@ -0,0 +1,4880 @@
+{
+ "name": "dmi-bot-webapp",
+ "version": "1.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "dmi-bot-webapp",
+ "version": "1.0.0",
+ "license": "ISC",
+ "dependencies": {
+ "parcel": "^2.12.0"
+ },
+ "devDependencies": {
+ "@parcel/packager-raw-url": "2.12.0",
+ "@parcel/transformer-webmanifest": "2.12.0",
+ "tailwindcss": "^3.4.10"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
+ "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/highlight": "^7.24.7",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
+ "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
+ "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.24.7",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dev": true,
+ "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/@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/@lezer/common": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz",
+ "integrity": "sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==",
+ "license": "MIT"
+ },
+ "node_modules/@lezer/lr": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.0.tgz",
+ "integrity": "sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==",
+ "license": "MIT",
+ "dependencies": {
+ "@lezer/common": "^1.0.0"
+ }
+ },
+ "node_modules/@lmdb/lmdb-darwin-arm64": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.8.5.tgz",
+ "integrity": "sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@lmdb/lmdb-darwin-x64": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.8.5.tgz",
+ "integrity": "sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@lmdb/lmdb-linux-arm": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.8.5.tgz",
+ "integrity": "sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@lmdb/lmdb-linux-arm64": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.8.5.tgz",
+ "integrity": "sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@lmdb/lmdb-linux-x64": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz",
+ "integrity": "sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@lmdb/lmdb-win32-x64": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.8.5.tgz",
+ "integrity": "sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@mischnic/json-sourcemap": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz",
+ "integrity": "sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==",
+ "license": "MIT",
+ "dependencies": {
+ "@lezer/common": "^1.0.0",
+ "@lezer/lr": "^1.0.0",
+ "json5": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.2.tgz",
+ "integrity": "sha512-9bfjwDxIDWmmOKusUcqdS4Rw+SETlp9Dy39Xui9BEGEk19dDwH0jhipwFzEff/pFg95NKymc6TOTbRKcWeRqyQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.2.tgz",
+ "integrity": "sha512-lwriRAHm1Yg4iDf23Oxm9n/t5Zpw1lVnxYU3HnJPTi2lJRkKTrps1KVgvL6m7WvmhYVt/FIsssWay+k45QHeuw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.2.tgz",
+ "integrity": "sha512-MOI9Dlfrpi2Cuc7i5dXdxPbFIgbDBGgKR5F2yWEa6FVEtSWncfVNKW5AKjImAQ6CZlBK9tympdsZJ2xThBiWWA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.2.tgz",
+ "integrity": "sha512-FU20Bo66/f7He9Fp9sP2zaJ1Q8L9uLPZQDub/WlUip78JlPeMbVL8546HbZfcW9LNciEXc8d+tThSJjSC+tmsg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.2.tgz",
+ "integrity": "sha512-gsWNDCklNy7Ajk0vBBf9jEx04RUxuDQfBse918Ww+Qb9HCPoGzS+XJTLe96iN3BVK7grnLiYghP/M4L8VsaHeA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.2.tgz",
+ "integrity": "sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@parcel/bundler-default": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.12.0.tgz",
+ "integrity": "sha512-3ybN74oYNMKyjD6V20c9Gerdbh7teeNvVMwIoHIQMzuIFT6IGX53PyOLlOKRLbjxMc0TMimQQxIt2eQqxR5LsA==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/graph": "3.2.0",
+ "@parcel/plugin": "2.12.0",
+ "@parcel/rust": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/cache": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.12.0.tgz",
+ "integrity": "sha512-FX5ZpTEkxvq/yvWklRHDESVRz+c7sLTXgFuzz6uEnBcXV38j6dMSikflNpHA6q/L4GKkCqRywm9R6XQwhwIMyw==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/fs": "2.12.0",
+ "@parcel/logger": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "lmdb": "2.8.5"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "peerDependencies": {
+ "@parcel/core": "^2.12.0"
+ }
+ },
+ "node_modules/@parcel/codeframe": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.12.0.tgz",
+ "integrity": "sha512-v2VmneILFiHZJTxPiR7GEF1wey1/IXPdZMcUlNXBiPZyWDfcuNgGGVQkx/xW561rULLIvDPharOMdxz5oHOKQg==",
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.1.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/compressor-raw": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.12.0.tgz",
+ "integrity": "sha512-h41Q3X7ZAQ9wbQ2csP8QGrwepasLZdXiuEdpUryDce6rF9ZiHoJ97MRpdLxOhOPyASTw/xDgE1xyaPQr0Q3f5A==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/config-default": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.12.0.tgz",
+ "integrity": "sha512-dPNe2n9eEsKRc1soWIY0yToMUPirPIa2QhxcCB3Z5RjpDGIXm0pds+BaiqY6uGLEEzsjhRO0ujd4v2Rmm0vuFg==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/bundler-default": "2.12.0",
+ "@parcel/compressor-raw": "2.12.0",
+ "@parcel/namer-default": "2.12.0",
+ "@parcel/optimizer-css": "2.12.0",
+ "@parcel/optimizer-htmlnano": "2.12.0",
+ "@parcel/optimizer-image": "2.12.0",
+ "@parcel/optimizer-svgo": "2.12.0",
+ "@parcel/optimizer-swc": "2.12.0",
+ "@parcel/packager-css": "2.12.0",
+ "@parcel/packager-html": "2.12.0",
+ "@parcel/packager-js": "2.12.0",
+ "@parcel/packager-raw": "2.12.0",
+ "@parcel/packager-svg": "2.12.0",
+ "@parcel/packager-wasm": "2.12.0",
+ "@parcel/reporter-dev-server": "2.12.0",
+ "@parcel/resolver-default": "2.12.0",
+ "@parcel/runtime-browser-hmr": "2.12.0",
+ "@parcel/runtime-js": "2.12.0",
+ "@parcel/runtime-react-refresh": "2.12.0",
+ "@parcel/runtime-service-worker": "2.12.0",
+ "@parcel/transformer-babel": "2.12.0",
+ "@parcel/transformer-css": "2.12.0",
+ "@parcel/transformer-html": "2.12.0",
+ "@parcel/transformer-image": "2.12.0",
+ "@parcel/transformer-js": "2.12.0",
+ "@parcel/transformer-json": "2.12.0",
+ "@parcel/transformer-postcss": "2.12.0",
+ "@parcel/transformer-posthtml": "2.12.0",
+ "@parcel/transformer-raw": "2.12.0",
+ "@parcel/transformer-react-refresh-wrap": "2.12.0",
+ "@parcel/transformer-svg": "2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "peerDependencies": {
+ "@parcel/core": "^2.12.0"
+ }
+ },
+ "node_modules/@parcel/core": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.12.0.tgz",
+ "integrity": "sha512-s+6pwEj+GfKf7vqGUzN9iSEPueUssCCQrCBUlcAfKrJe0a22hTUCjewpB0I7lNrCIULt8dkndD+sMdOrXsRl6Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@mischnic/json-sourcemap": "^0.1.0",
+ "@parcel/cache": "2.12.0",
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/events": "2.12.0",
+ "@parcel/fs": "2.12.0",
+ "@parcel/graph": "3.2.0",
+ "@parcel/logger": "2.12.0",
+ "@parcel/package-manager": "2.12.0",
+ "@parcel/plugin": "2.12.0",
+ "@parcel/profiler": "2.12.0",
+ "@parcel/rust": "2.12.0",
+ "@parcel/source-map": "^2.1.1",
+ "@parcel/types": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "@parcel/workers": "2.12.0",
+ "abortcontroller-polyfill": "^1.1.9",
+ "base-x": "^3.0.8",
+ "browserslist": "^4.6.6",
+ "clone": "^2.1.1",
+ "dotenv": "^7.0.0",
+ "dotenv-expand": "^5.1.0",
+ "json5": "^2.2.0",
+ "msgpackr": "^1.9.9",
+ "nullthrows": "^1.1.1",
+ "semver": "^7.5.2"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/diagnostic": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.12.0.tgz",
+ "integrity": "sha512-8f1NOsSFK+F4AwFCKynyIu9Kr/uWHC+SywAv4oS6Bv3Acig0gtwUjugk0C9UaB8ztBZiW5TQZhw+uPZn9T/lJA==",
+ "license": "MIT",
+ "dependencies": {
+ "@mischnic/json-sourcemap": "^0.1.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/events": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.12.0.tgz",
+ "integrity": "sha512-nmAAEIKLjW1kB2cUbCYSmZOGbnGj8wCzhqnK727zCCWaA25ogzAtt657GPOeFyqW77KyosU728Tl63Fc8hphIA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/fs": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.12.0.tgz",
+ "integrity": "sha512-NnFkuvou1YBtPOhTdZr44WN7I60cGyly2wpHzqRl62yhObyi1KvW0SjwOMa0QGNcBOIzp4G0CapoZ93hD0RG5Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/rust": "2.12.0",
+ "@parcel/types": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "@parcel/watcher": "^2.0.7",
+ "@parcel/workers": "2.12.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "peerDependencies": {
+ "@parcel/core": "^2.12.0"
+ }
+ },
+ "node_modules/@parcel/graph": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.2.0.tgz",
+ "integrity": "sha512-xlrmCPqy58D4Fg5umV7bpwDx5Vyt7MlnQPxW68vae5+BA4GSWetfZt+Cs5dtotMG2oCHzZxhIPt7YZ7NRyQzLA==",
+ "license": "MIT",
+ "dependencies": {
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/logger": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.12.0.tgz",
+ "integrity": "sha512-cJ7Paqa7/9VJ7C+KwgJlwMqTQBOjjn71FbKk0G07hydUEBISU2aDfmc/52o60ErL9l+vXB26zTrIBanbxS8rVg==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/events": "2.12.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/markdown-ansi": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.12.0.tgz",
+ "integrity": "sha512-WZz3rzL8k0H3WR4qTHX6Ic8DlEs17keO9gtD4MNGyMNQbqQEvQ61lWJaIH0nAtgEetu0SOITiVqdZrb8zx/M7w==",
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.1.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/namer-default": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.12.0.tgz",
+ "integrity": "sha512-9DNKPDHWgMnMtqqZIMiEj/R9PNWW16lpnlHjwK3ciRlMPgjPJ8+UNc255teZODhX0T17GOzPdGbU/O/xbxVPzA==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/plugin": "2.12.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/node-resolver-core": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.3.0.tgz",
+ "integrity": "sha512-rhPW9DYPEIqQBSlYzz3S0AjXxjN6Ub2yS6tzzsW/4S3Gpsgk/uEq4ZfxPvoPf/6TgZndVxmKwpmxaKtGMmf3cA==",
+ "license": "MIT",
+ "dependencies": {
+ "@mischnic/json-sourcemap": "^0.1.0",
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/fs": "2.12.0",
+ "@parcel/rust": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "nullthrows": "^1.1.1",
+ "semver": "^7.5.2"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/optimizer-css": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.12.0.tgz",
+ "integrity": "sha512-ifbcC97fRzpruTjaa8axIFeX4MjjSIlQfem3EJug3L2AVqQUXnM1XO8L0NaXGNLTW2qnh1ZjIJ7vXT/QhsphsA==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/plugin": "2.12.0",
+ "@parcel/source-map": "^2.1.1",
+ "@parcel/utils": "2.12.0",
+ "browserslist": "^4.6.6",
+ "lightningcss": "^1.22.1",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/optimizer-htmlnano": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.12.0.tgz",
+ "integrity": "sha512-MfPMeCrT8FYiOrpFHVR+NcZQlXAptK2r4nGJjfT+ndPBhEEZp4yyL7n1y7HfX9geg5altc4WTb4Gug7rCoW8VQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0",
+ "htmlnano": "^2.0.0",
+ "nullthrows": "^1.1.1",
+ "posthtml": "^0.16.5",
+ "svgo": "^2.4.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/optimizer-htmlnano/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/@parcel/optimizer-htmlnano/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/@parcel/optimizer-htmlnano/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/@parcel/optimizer-htmlnano/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/@parcel/optimizer-htmlnano/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/@parcel/optimizer-image": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.12.0.tgz",
+ "integrity": "sha512-bo1O7raeAIbRU5nmNVtx8divLW9Xqn0c57GVNGeAK4mygnQoqHqRZ0mR9uboh64pxv6ijXZHPhKvU9HEpjPjBQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/plugin": "2.12.0",
+ "@parcel/rust": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "@parcel/workers": "2.12.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "peerDependencies": {
+ "@parcel/core": "^2.12.0"
+ }
+ },
+ "node_modules/@parcel/optimizer-svgo": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.12.0.tgz",
+ "integrity": "sha512-Kyli+ZZXnoonnbeRQdoWwee9Bk2jm/49xvnfb+2OO8NN0d41lblBoRhOyFiScRnJrw7eVl1Xrz7NTkXCIO7XFQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/plugin": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "svgo": "^2.4.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/optimizer-svgo/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/@parcel/optimizer-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/@parcel/optimizer-svgo/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/@parcel/optimizer-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/@parcel/optimizer-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/@parcel/optimizer-swc": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.12.0.tgz",
+ "integrity": "sha512-iBi6LZB3lm6WmbXfzi8J3DCVPmn4FN2lw7DGXxUXu7MouDPVWfTsM6U/5TkSHJRNRogZ2gqy5q9g34NPxHbJcw==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/plugin": "2.12.0",
+ "@parcel/source-map": "^2.1.1",
+ "@parcel/utils": "2.12.0",
+ "@swc/core": "^1.3.36",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/package-manager": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.12.0.tgz",
+ "integrity": "sha512-0nvAezcjPx9FT+hIL+LS1jb0aohwLZXct7jAh7i0MLMtehOi0z1Sau+QpgMlA9rfEZZ1LIeFdnZZwqSy7Ccspw==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/fs": "2.12.0",
+ "@parcel/logger": "2.12.0",
+ "@parcel/node-resolver-core": "3.3.0",
+ "@parcel/types": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "@parcel/workers": "2.12.0",
+ "@swc/core": "^1.3.36",
+ "semver": "^7.5.2"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "peerDependencies": {
+ "@parcel/core": "^2.12.0"
+ }
+ },
+ "node_modules/@parcel/packager-css": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.12.0.tgz",
+ "integrity": "sha512-j3a/ODciaNKD19IYdWJT+TP+tnhhn5koBGBWWtrKSu0UxWpnezIGZetit3eE+Y9+NTePalMkvpIlit2eDhvfJA==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/plugin": "2.12.0",
+ "@parcel/source-map": "^2.1.1",
+ "@parcel/utils": "2.12.0",
+ "lightningcss": "^1.22.1",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/packager-html": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.12.0.tgz",
+ "integrity": "sha512-PpvGB9hFFe+19NXGz2ApvPrkA9GwEqaDAninT+3pJD57OVBaxB8U+HN4a5LICKxjUppPPqmrLb6YPbD65IX4RA==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0",
+ "@parcel/types": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "nullthrows": "^1.1.1",
+ "posthtml": "^0.16.5"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/packager-js": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.12.0.tgz",
+ "integrity": "sha512-viMF+FszITRRr8+2iJyk+4ruGiL27Y6AF7hQ3xbJfzqnmbOhGFtLTQwuwhOLqN/mWR2VKdgbLpZSarWaO3yAMg==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/plugin": "2.12.0",
+ "@parcel/rust": "2.12.0",
+ "@parcel/source-map": "^2.1.1",
+ "@parcel/types": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "globals": "^13.2.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/packager-raw": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.12.0.tgz",
+ "integrity": "sha512-tJZqFbHqP24aq1F+OojFbQIc09P/u8HAW5xfndCrFnXpW4wTgM3p03P0xfw3gnNq+TtxHJ8c3UFE5LnXNNKhYA==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/packager-raw-url": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-raw-url/-/packager-raw-url-2.12.0.tgz",
+ "integrity": "sha512-sH7cvLbotS+qknhQUCGfd9mslQr4KcanlZE5CgzM0uGn3SnyZoKznqHrbouzgnIP/LHgXKOKmMaNjPLtVe4rcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0",
+ "@parcel/utils": "2.12.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/packager-svg": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.12.0.tgz",
+ "integrity": "sha512-ldaGiacGb2lLqcXas97k8JiZRbAnNREmcvoY2W2dvW4loVuDT9B9fU777mbV6zODpcgcHWsLL3lYbJ5Lt3y9cg==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0",
+ "@parcel/types": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "posthtml": "^0.16.4"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/packager-wasm": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.12.0.tgz",
+ "integrity": "sha512-fYqZzIqO9fGYveeImzF8ll6KRo2LrOXfD+2Y5U3BiX/wp9wv17dz50QLDQm9hmTcKGWxK4yWqKQh+Evp/fae7A==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0"
+ },
+ "engines": {
+ "node": ">=12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/plugin": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.12.0.tgz",
+ "integrity": "sha512-nc/uRA8DiMoe4neBbzV6kDndh/58a4wQuGKw5oEoIwBCHUvE2W8ZFSu7ollSXUGRzfacTt4NdY8TwS73ScWZ+g==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/types": "2.12.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/profiler": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.12.0.tgz",
+ "integrity": "sha512-q53fvl5LDcFYzMUtSusUBZSjQrKjMlLEBgKeQHFwkimwR1mgoseaDBDuNz0XvmzDzF1UelJ02TUKCGacU8W2qA==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/events": "2.12.0",
+ "chrome-trace-event": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/reporter-cli": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.12.0.tgz",
+ "integrity": "sha512-TqKsH4GVOLPSCanZ6tcTPj+rdVHERnt5y4bwTM82cajM21bCX1Ruwp8xOKU+03091oV2pv5ieB18pJyRF7IpIw==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0",
+ "@parcel/types": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "chalk": "^4.1.0",
+ "term-size": "^2.2.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/reporter-dev-server": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.12.0.tgz",
+ "integrity": "sha512-tIcDqRvAPAttRlTV28dHcbWT5K2r/MBFks7nM4nrEDHWtnrCwimkDmZTc1kD8QOCCjGVwRHcQybpHvxfwol6GA==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0",
+ "@parcel/utils": "2.12.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/reporter-tracer": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.12.0.tgz",
+ "integrity": "sha512-g8rlu9GxB8Ut/F8WGx4zidIPQ4pcYFjU9bZO+fyRIPrSUFH2bKijCnbZcr4ntqzDGx74hwD6cCG4DBoleq2UlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "chrome-trace-event": "^1.0.3",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/resolver-default": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.12.0.tgz",
+ "integrity": "sha512-uuhbajTax37TwCxu7V98JtRLiT6hzE4VYSu5B7Qkauy14/WFt2dz6GOUXPgVsED569/hkxebPx3KCMtZW6cHHA==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/node-resolver-core": "3.3.0",
+ "@parcel/plugin": "2.12.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/runtime-browser-hmr": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.12.0.tgz",
+ "integrity": "sha512-4ZLp2FWyD32r0GlTulO3+jxgsA3oO1P1b5oO2IWuWilfhcJH5LTiazpL5YdusUjtNn9PGN6QLAWfxmzRIfM+Ow==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0",
+ "@parcel/utils": "2.12.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/runtime-js": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.12.0.tgz",
+ "integrity": "sha512-sBerP32Z1crX5PfLNGDSXSdqzlllM++GVnVQVeM7DgMKS8JIFG3VLi28YkX+dYYGtPypm01JoIHCkvwiZEcQJg==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/plugin": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/runtime-react-refresh": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.12.0.tgz",
+ "integrity": "sha512-SCHkcczJIDFTFdLTzrHTkQ0aTrX3xH6jrA4UsCBL6ji61+w+ohy4jEEe9qCgJVXhnJfGLE43HNXek+0MStX+Mw==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "react-error-overlay": "6.0.9",
+ "react-refresh": "^0.9.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/runtime-service-worker": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.12.0.tgz",
+ "integrity": "sha512-BXuMBsfiwpIEnssn+jqfC3jkgbS8oxeo3C7xhSQsuSv+AF2FwY3O3AO1c1RBskEW3XrBLNINOJujroNw80VTKA==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/rust": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.12.0.tgz",
+ "integrity": "sha512-005cldMdFZFDPOjbDVEXcINQ3wT4vrxvSavRWI3Az0e3E18exO/x/mW9f648KtXugOXMAqCEqhFHcXECL9nmMw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/source-map": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz",
+ "integrity": "sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==",
+ "license": "MIT",
+ "dependencies": {
+ "detect-libc": "^1.0.3"
+ },
+ "engines": {
+ "node": "^12.18.3 || >=14"
+ }
+ },
+ "node_modules/@parcel/transformer-babel": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.12.0.tgz",
+ "integrity": "sha512-zQaBfOnf/l8rPxYGnsk/ufh/0EuqvmnxafjBIpKZ//j6rGylw5JCqXSb1QvvAqRYruKeccxGv7+HrxpqKU6V4A==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/plugin": "2.12.0",
+ "@parcel/source-map": "^2.1.1",
+ "@parcel/utils": "2.12.0",
+ "browserslist": "^4.6.6",
+ "json5": "^2.2.0",
+ "nullthrows": "^1.1.1",
+ "semver": "^7.5.2"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-css": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.12.0.tgz",
+ "integrity": "sha512-vXhOqoAlQGATYyQ433Z1DXKmiKmzOAUmKysbYH3FD+LKEKLMEl/pA14goqp00TW+A/EjtSKKyeMyHlMIIUqj4Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/plugin": "2.12.0",
+ "@parcel/source-map": "^2.1.1",
+ "@parcel/utils": "2.12.0",
+ "browserslist": "^4.6.6",
+ "lightningcss": "^1.22.1",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-html": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.12.0.tgz",
+ "integrity": "sha512-5jW4dFFBlYBvIQk4nrH62rfA/G/KzVzEDa6S+Nne0xXhglLjkm64Ci9b/d4tKZfuGWUbpm2ASAq8skti/nfpXw==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/plugin": "2.12.0",
+ "@parcel/rust": "2.12.0",
+ "nullthrows": "^1.1.1",
+ "posthtml": "^0.16.5",
+ "posthtml-parser": "^0.10.1",
+ "posthtml-render": "^3.0.0",
+ "semver": "^7.5.2",
+ "srcset": "4"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-html/node_modules/srcset": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz",
+ "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@parcel/transformer-image": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.12.0.tgz",
+ "integrity": "sha512-8hXrGm2IRII49R7lZ0RpmNk27EhcsH+uNKsvxuMpXPuEnWgC/ha/IrjaI29xCng1uGur74bJF43NUSQhR4aTdw==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "@parcel/workers": "2.12.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "peerDependencies": {
+ "@parcel/core": "^2.12.0"
+ }
+ },
+ "node_modules/@parcel/transformer-js": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.12.0.tgz",
+ "integrity": "sha512-OSZpOu+FGDbC/xivu24v092D9w6EGytB3vidwbdiJ2FaPgfV7rxS0WIUjH4I0OcvHAcitArRXL0a3+HrNTdQQw==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/plugin": "2.12.0",
+ "@parcel/rust": "2.12.0",
+ "@parcel/source-map": "^2.1.1",
+ "@parcel/utils": "2.12.0",
+ "@parcel/workers": "2.12.0",
+ "@swc/helpers": "^0.5.0",
+ "browserslist": "^4.6.6",
+ "nullthrows": "^1.1.1",
+ "regenerator-runtime": "^0.13.7",
+ "semver": "^7.5.2"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "peerDependencies": {
+ "@parcel/core": "^2.12.0"
+ }
+ },
+ "node_modules/@parcel/transformer-json": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.12.0.tgz",
+ "integrity": "sha512-Utv64GLRCQILK5r0KFs4o7I41ixMPllwOLOhkdjJKvf1hZmN6WqfOmB1YLbWS/y5Zb/iB52DU2pWZm96vLFQZQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0",
+ "json5": "^2.2.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-postcss": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.12.0.tgz",
+ "integrity": "sha512-FZqn+oUtiLfPOn67EZxPpBkfdFiTnF4iwiXPqvst3XI8H+iC+yNgzmtJkunOOuylpYY6NOU5jT8d7saqWSDv2Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/plugin": "2.12.0",
+ "@parcel/rust": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "clone": "^2.1.1",
+ "nullthrows": "^1.1.1",
+ "postcss-value-parser": "^4.2.0",
+ "semver": "^7.5.2"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-posthtml": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.12.0.tgz",
+ "integrity": "sha512-z6Z7rav/pcaWdeD+2sDUcd0mmNZRUvtHaUGa50Y2mr+poxrKilpsnFMSiWBT+oOqPt7j71jzDvrdnAF4XkCljg==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "nullthrows": "^1.1.1",
+ "posthtml": "^0.16.5",
+ "posthtml-parser": "^0.10.1",
+ "posthtml-render": "^3.0.0",
+ "semver": "^7.5.2"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-raw": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.12.0.tgz",
+ "integrity": "sha512-Ht1fQvXxix0NncdnmnXZsa6hra20RXYh1VqhBYZLsDfkvGGFnXIgO03Jqn4Z8MkKoa0tiNbDhpKIeTjyclbBxQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-react-refresh-wrap": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.12.0.tgz",
+ "integrity": "sha512-GE8gmP2AZtkpBIV5vSCVhewgOFRhqwdM5Q9jNPOY5PKcM3/Ff0qCqDiTzzGLhk0/VMBrdjssrfZkVx6S/lHdJw==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/plugin": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "react-refresh": "^0.9.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-svg": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.12.0.tgz",
+ "integrity": "sha512-cZJqGRJ4JNdYcb+vj94J7PdOuTnwyy45dM9xqbIMH+HSiiIkfrMsdEwYft0GTyFTdsnf+hdHn3tau7Qa5hhX+A==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/plugin": "2.12.0",
+ "@parcel/rust": "2.12.0",
+ "nullthrows": "^1.1.1",
+ "posthtml": "^0.16.5",
+ "posthtml-parser": "^0.10.1",
+ "posthtml-render": "^3.0.0",
+ "semver": "^7.5.2"
+ },
+ "engines": {
+ "node": ">= 12.0.0",
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/transformer-webmanifest": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/transformer-webmanifest/-/transformer-webmanifest-2.12.0.tgz",
+ "integrity": "sha512-suiUv9DDEpyryHtzahbIeJSZTIeE/t4cdrU0Ikb/O46wsy5RLo59nE4E6TGWM84R7fQO8m/MhzeQM5Y3NV6jKg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@mischnic/json-sourcemap": "^0.1.0",
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/plugin": "2.12.0",
+ "@parcel/utils": "2.12.0"
+ },
+ "engines": {
+ "parcel": "^2.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/types": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.12.0.tgz",
+ "integrity": "sha512-8zAFiYNCwNTQcglIObyNwKfRYQK5ELlL13GuBOrSMxueUiI5ylgsGbTS1N7J3dAGZixHO8KhHGv5a71FILn9rQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/cache": "2.12.0",
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/fs": "2.12.0",
+ "@parcel/package-manager": "2.12.0",
+ "@parcel/source-map": "^2.1.1",
+ "@parcel/workers": "2.12.0",
+ "utility-types": "^3.10.0"
+ }
+ },
+ "node_modules/@parcel/utils": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.12.0.tgz",
+ "integrity": "sha512-z1JhLuZ8QmDaYoEIuUCVZlhcFrS7LMfHrb2OCRui5SQFntRWBH2fNM6H/fXXUkT9SkxcuFP2DUA6/m4+Gkz72g==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/codeframe": "2.12.0",
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/logger": "2.12.0",
+ "@parcel/markdown-ansi": "2.12.0",
+ "@parcel/rust": "2.12.0",
+ "@parcel/source-map": "^2.1.1",
+ "chalk": "^4.1.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz",
+ "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==",
+ "license": "MIT",
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.5",
+ "node-addon-api": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.4.1",
+ "@parcel/watcher-darwin-arm64": "2.4.1",
+ "@parcel/watcher-darwin-x64": "2.4.1",
+ "@parcel/watcher-freebsd-x64": "2.4.1",
+ "@parcel/watcher-linux-arm-glibc": "2.4.1",
+ "@parcel/watcher-linux-arm64-glibc": "2.4.1",
+ "@parcel/watcher-linux-arm64-musl": "2.4.1",
+ "@parcel/watcher-linux-x64-glibc": "2.4.1",
+ "@parcel/watcher-linux-x64-musl": "2.4.1",
+ "@parcel/watcher-win32-arm64": "2.4.1",
+ "@parcel/watcher-win32-ia32": "2.4.1",
+ "@parcel/watcher-win32-x64": "2.4.1"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz",
+ "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz",
+ "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz",
+ "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-freebsd-x64": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz",
+ "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-glibc": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz",
+ "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz",
+ "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-musl": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz",
+ "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-glibc": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz",
+ "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-musl": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz",
+ "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-arm64": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz",
+ "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-ia32": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz",
+ "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-x64": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz",
+ "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/workers": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.12.0.tgz",
+ "integrity": "sha512-zv5We5Jmb+ZWXlU6A+AufyjY4oZckkxsZ8J4dvyWL0W8IQvGO1JB4FGeryyttzQv3RM3OxcN/BpTGPiDG6keBw==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/logger": "2.12.0",
+ "@parcel/profiler": "2.12.0",
+ "@parcel/types": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "nullthrows": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "peerDependencies": {
+ "@parcel/core": "^2.12.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@swc/core": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.4.2.tgz",
+ "integrity": "sha512-vWgY07R/eqj1/a0vsRKLI9o9klGZfpLNOVEnrv4nrccxBgYPjcf22IWwAoaBJ+wpA7Q4fVjCUM8lP0m01dpxcg==",
+ "hasInstallScript": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/counter": "^0.1.2",
+ "@swc/types": "^0.1.5"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/swc"
+ },
+ "optionalDependencies": {
+ "@swc/core-darwin-arm64": "1.4.2",
+ "@swc/core-darwin-x64": "1.4.2",
+ "@swc/core-linux-arm-gnueabihf": "1.4.2",
+ "@swc/core-linux-arm64-gnu": "1.4.2",
+ "@swc/core-linux-arm64-musl": "1.4.2",
+ "@swc/core-linux-x64-gnu": "1.4.2",
+ "@swc/core-linux-x64-musl": "1.4.2",
+ "@swc/core-win32-arm64-msvc": "1.4.2",
+ "@swc/core-win32-ia32-msvc": "1.4.2",
+ "@swc/core-win32-x64-msvc": "1.4.2"
+ },
+ "peerDependencies": {
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependenciesMeta": {
+ "@swc/helpers": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@swc/core-darwin-arm64": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.2.tgz",
+ "integrity": "sha512-1uSdAn1MRK5C1m/TvLZ2RDvr0zLvochgrZ2xL+lRzugLlCTlSA+Q4TWtrZaOz+vnnFVliCpw7c7qu0JouhgQIw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-darwin-x64": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.4.2.tgz",
+ "integrity": "sha512-TYD28+dCQKeuxxcy7gLJUCFLqrwDZnHtC2z7cdeGfZpbI2mbfppfTf2wUPzqZk3gEC96zHd4Yr37V3Tvzar+lQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-linux-arm-gnueabihf": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.2.tgz",
+ "integrity": "sha512-Eyqipf7ZPGj0vplKHo8JUOoU1un2sg5PjJMpEesX0k+6HKE2T8pdyeyXODN0YTFqzndSa/J43EEPXm+rHAsLFQ==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-linux-arm64-gnu": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.2.tgz",
+ "integrity": "sha512-wZn02DH8VYPv3FC0ub4my52Rttsus/rFw+UUfzdb3tHMHXB66LqN+rR0ssIOZrH6K+VLN6qpTw9VizjyoH0BxA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-linux-arm64-musl": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.2.tgz",
+ "integrity": "sha512-3G0D5z9hUj9bXNcwmA1eGiFTwe5rWkuL3DsoviTj73TKLpk7u64ND0XjEfO0huVv4vVu9H1jodrKb7nvln/dlw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-linux-x64-gnu": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.2.tgz",
+ "integrity": "sha512-LFxn9U8cjmYHw3jrdPNqPAkBGglKE3tCZ8rA7hYyp0BFxuo7L2ZcEnPm4RFpmSCCsExFH+LEJWuMGgWERoktvg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-linux-x64-musl": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.2.tgz",
+ "integrity": "sha512-dp0fAmreeVVYTUcb4u9njTPrYzKnbIH0EhH2qvC9GOYNNREUu2GezSIDgonjOXkHiTCvopG4xU7y56XtXj4VrQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-win32-arm64-msvc": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.2.tgz",
+ "integrity": "sha512-HlVIiLMQkzthAdqMslQhDkoXJ5+AOLUSTV6fm6shFKZKqc/9cJvr4S8UveNERL9zUficA36yM3bbfo36McwnvQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-win32-ia32-msvc": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.2.tgz",
+ "integrity": "sha512-WCF8faPGjCl4oIgugkp+kL9nl3nUATlzKXCEGFowMEmVVCFM0GsqlmGdPp1pjZoWc9tpYanoXQDnp5IvlDSLhA==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-win32-x64-msvc": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.2.tgz",
+ "integrity": "sha512-oV71rwiSpA5xre2C5570BhCsg1HF97SNLsZ/12xv7zayGzqr3yvFALFJN8tHKpqUdCB4FGPjoP3JFdV3i+1wUw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0 AND MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/counter": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
+ "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@swc/helpers": {
+ "version": "0.5.12",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.12.tgz",
+ "integrity": "sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@swc/types": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz",
+ "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==",
+ "license": "Apache-2.0"
+ },
+ "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/abortcontroller-polyfill": {
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz",
+ "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==",
+ "license": "MIT"
+ },
+ "node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "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/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/base-x": {
+ "version": "3.0.10",
+ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz",
+ "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.23.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz",
+ "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==",
+ "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.30001646",
+ "electron-to-chromium": "^1.5.4",
+ "node-releases": "^2.0.18",
+ "update-browserslist-db": "^1.1.0"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "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/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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001653",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz",
+ "integrity": "sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==",
+ "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/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/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/chrome-trace-event": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "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/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/cosmiconfig": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
+ "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
+ "license": "MIT",
+ "dependencies": {
+ "env-paths": "^2.2.1",
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/css-select": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
+ "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
+ "license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/css-select/node_modules/dom-serializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/css-select/node_modules/domhandler": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+ "license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "domelementtype": "^2.3.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/css-select/node_modules/domutils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
+ "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
+ "license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/css-select/node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/css-tree": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
+ "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "mdn-data": "2.0.30",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.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/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/csso": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz",
+ "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==",
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "css-tree": "~2.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/csso/node_modules/css-tree": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz",
+ "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==",
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "mdn-data": "2.0.28",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/csso/node_modules/mdn-data": {
+ "version": "2.0.28",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz",
+ "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==",
+ "license": "CC0-1.0",
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "license": "Apache-2.0",
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/didyoumean": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/dlv": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "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/dom-serializer/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/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/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/dotenv": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz",
+ "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz",
+ "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==",
+ "license": "ISC"
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/entities": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+ "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/env-paths": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/escalade": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
+ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-port": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz",
+ "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/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/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/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/htmlnano": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-2.1.1.tgz",
+ "integrity": "sha512-kAERyg/LuNZYmdqgCdYvugyLWNFAm8MWXpQMz1pLpetmCbFwoMxvkSoaAMlFrOC4OKTWI4KlZGT/RsNxg4ghOw==",
+ "license": "MIT",
+ "dependencies": {
+ "cosmiconfig": "^9.0.0",
+ "posthtml": "^0.16.5",
+ "timsort": "^0.3.0"
+ },
+ "peerDependencies": {
+ "cssnano": "^7.0.0",
+ "postcss": "^8.3.11",
+ "purgecss": "^6.0.0",
+ "relateurl": "^0.2.7",
+ "srcset": "5.0.1",
+ "svgo": "^3.0.2",
+ "terser": "^5.10.0",
+ "uncss": "^0.17.3"
+ },
+ "peerDependenciesMeta": {
+ "cssnano": {
+ "optional": true
+ },
+ "postcss": {
+ "optional": true
+ },
+ "purgecss": {
+ "optional": true
+ },
+ "relateurl": {
+ "optional": true
+ },
+ "srcset": {
+ "optional": true
+ },
+ "svgo": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "uncss": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/htmlparser2": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+ "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+ "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.2.2",
+ "domutils": "^2.8.0",
+ "entities": "^3.0.1"
+ }
+ },
+ "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/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-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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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-json": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz",
+ "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==",
+ "license": "ISC"
+ },
+ "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/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "dev": true,
+ "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/jiti": {
+ "version": "1.21.6",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz",
+ "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==",
+ "dev": true,
+ "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": "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/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/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/lightningcss": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.26.0.tgz",
+ "integrity": "sha512-a/XZ5hdgifrofQJUArr5AiJjx26SwMam3SJUSMjgebZbESZ96i+6Qsl8tLi0kaUsdMzBWXh9sN1Oe6hp2/dkQw==",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "detect-libc": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "lightningcss-darwin-arm64": "1.26.0",
+ "lightningcss-darwin-x64": "1.26.0",
+ "lightningcss-freebsd-x64": "1.26.0",
+ "lightningcss-linux-arm-gnueabihf": "1.26.0",
+ "lightningcss-linux-arm64-gnu": "1.26.0",
+ "lightningcss-linux-arm64-musl": "1.26.0",
+ "lightningcss-linux-x64-gnu": "1.26.0",
+ "lightningcss-linux-x64-musl": "1.26.0",
+ "lightningcss-win32-arm64-msvc": "1.26.0",
+ "lightningcss-win32-x64-msvc": "1.26.0"
+ }
+ },
+ "node_modules/lightningcss-darwin-arm64": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.26.0.tgz",
+ "integrity": "sha512-n4TIvHO1NY1ondKFYpL2ZX0bcC2y6yjXMD6JfyizgR8BCFNEeArINDzEaeqlfX9bXz73Bpz/Ow0nu+1qiDrBKg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-x64": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.26.0.tgz",
+ "integrity": "sha512-Rf9HuHIDi1R6/zgBkJh25SiJHF+dm9axUZW/0UoYCW1/8HV0gMI0blARhH4z+REmWiU1yYT/KyNF3h7tHyRXUg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-freebsd-x64": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.26.0.tgz",
+ "integrity": "sha512-C/io7POAxp6sZxFSVGezjajMlCKQ8KSwISLLGRq8xLQpQMokYrUoqYEwmIX8mLmF6C/CZPk0gFmRSzd8biWM0g==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.26.0.tgz",
+ "integrity": "sha512-Aag9kqXqkyPSW+dXMgyWk66C984Nay2pY8Nws+67gHlDzV3cWh7TvFlzuaTaVFMVqdDTzN484LSK3u39zFBnzg==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-gnu": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.26.0.tgz",
+ "integrity": "sha512-iJmZM7fUyVjH+POtdiCtExG+67TtPUTer7K/5A8DIfmPfrmeGvzfRyBltGhQz13Wi15K1lf2cPYoRaRh6vcwNA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-musl": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.26.0.tgz",
+ "integrity": "sha512-XxoEL++tTkyuvu+wq/QS8bwyTXZv2y5XYCMcWL45b8XwkiS8eEEEej9BkMGSRwxa5J4K+LDeIhLrS23CpQyfig==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-gnu": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.26.0.tgz",
+ "integrity": "sha512-1dkTfZQAYLj8MUSkd6L/+TWTG8V6Kfrzfa0T1fSlXCXQHrt1HC1/UepXHtKHDt/9yFwyoeayivxXAsApVxn6zA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-musl": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.26.0.tgz",
+ "integrity": "sha512-yX3Rk9m00JGCUzuUhFEojY+jf/6zHs3XU8S8Vk+FRbnr4St7cjyMXdNjuA2LjiT8e7j8xHRCH8hyZ4H/btRE4A==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-arm64-msvc": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.26.0.tgz",
+ "integrity": "sha512-X/597/cFnCogy9VItj/+7Tgu5VLbAtDF7KZDPdSw0MaL6FL940th1y3HiOzFIlziVvAtbo0RB3NAae1Oofr+Tw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-x64-msvc": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.26.0.tgz",
+ "integrity": "sha512-pYS3EyGP3JRhfqEFYmfFDiZ9/pVNfy8jVIYtrx9TVNusVyDK3gpW1w/rbvroQ4bDJi7grdUtyrYU6V2xkY/bBw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lilconfig": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
+ "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
+ "dev": true,
+ "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/lmdb": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.8.5.tgz",
+ "integrity": "sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
+ "msgpackr": "^1.9.5",
+ "node-addon-api": "^6.1.0",
+ "node-gyp-build-optional-packages": "5.1.1",
+ "ordered-binary": "^1.4.1",
+ "weak-lru-cache": "^1.2.2"
+ },
+ "bin": {
+ "download-lmdb-prebuilds": "bin/download-prebuilds.js"
+ },
+ "optionalDependencies": {
+ "@lmdb/lmdb-darwin-arm64": "2.8.5",
+ "@lmdb/lmdb-darwin-x64": "2.8.5",
+ "@lmdb/lmdb-linux-arm": "2.8.5",
+ "@lmdb/lmdb-linux-arm64": "2.8.5",
+ "@lmdb/lmdb-linux-x64": "2.8.5",
+ "@lmdb/lmdb-win32-x64": "2.8.5"
+ }
+ },
+ "node_modules/lmdb/node_modules/node-addon-api": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
+ "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
+ "license": "MIT"
+ },
+ "node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/mdn-data": {
+ "version": "2.0.30",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
+ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
+ "license": "CC0-1.0",
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/msgpackr": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.0.tgz",
+ "integrity": "sha512-I8qXuuALqJe5laEBYoFykChhSXLikZmUhccjGsPuSJ/7uPip2TJ7lwdIQwWSAi0jGZDXv4WOP8Qg65QZRuXxXw==",
+ "license": "MIT",
+ "optionalDependencies": {
+ "msgpackr-extract": "^3.0.2"
+ }
+ },
+ "node_modules/msgpackr-extract": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.2.tgz",
+ "integrity": "sha512-SdzXp4kD/Qf8agZ9+iTu6eql0m3kWm1A2y1hkpTeVNENutaB0BwHlSvAIaMxwntmRUAUjon2V4L8Z/njd0Ct8A==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "node-gyp-build-optional-packages": "5.0.7"
+ },
+ "bin": {
+ "download-msgpackr-prebuilds": "bin/download-prebuilds.js"
+ },
+ "optionalDependencies": {
+ "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.2",
+ "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.2",
+ "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.2",
+ "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.2",
+ "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.2",
+ "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.2"
+ }
+ },
+ "node_modules/msgpackr-extract/node_modules/node-gyp-build-optional-packages": {
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.7.tgz",
+ "integrity": "sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w==",
+ "license": "MIT",
+ "optional": true,
+ "bin": {
+ "node-gyp-build-optional-packages": "bin.js",
+ "node-gyp-build-optional-packages-optional": "optional.js",
+ "node-gyp-build-optional-packages-test": "build-test.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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "devOptional": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/node-addon-api": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz",
+ "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==",
+ "license": "MIT",
+ "engines": {
+ "node": "^16 || ^18 || >= 20"
+ }
+ },
+ "node_modules/node-gyp-build-optional-packages": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz",
+ "integrity": "sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==",
+ "license": "MIT",
+ "dependencies": {
+ "detect-libc": "^2.0.1"
+ },
+ "bin": {
+ "node-gyp-build-optional-packages": "bin.js",
+ "node-gyp-build-optional-packages-optional": "optional.js",
+ "node-gyp-build-optional-packages-test": "build-test.js"
+ }
+ },
+ "node_modules/node-gyp-build-optional-packages/node_modules/detect-libc": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
+ "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/nullthrows": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
+ "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==",
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/ordered-binary": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.1.tgz",
+ "integrity": "sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==",
+ "license": "MIT"
+ },
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz",
+ "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0"
+ },
+ "node_modules/parcel": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.12.0.tgz",
+ "integrity": "sha512-W+gxAq7aQ9dJIg/XLKGcRT0cvnStFAQHPaI0pvD0U2l6IVLueUAm3nwN7lkY62zZNmlvNx6jNtE4wlbS+CyqSg==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/config-default": "2.12.0",
+ "@parcel/core": "2.12.0",
+ "@parcel/diagnostic": "2.12.0",
+ "@parcel/events": "2.12.0",
+ "@parcel/fs": "2.12.0",
+ "@parcel/logger": "2.12.0",
+ "@parcel/package-manager": "2.12.0",
+ "@parcel/reporter-cli": "2.12.0",
+ "@parcel/reporter-dev-server": "2.12.0",
+ "@parcel/reporter-tracer": "2.12.0",
+ "@parcel/utils": "2.12.0",
+ "chalk": "^4.1.0",
+ "commander": "^7.0.0",
+ "get-port": "^4.2.0"
+ },
+ "bin": {
+ "parcel": "lib/bin.js"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
+ "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.41",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz",
+ "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==",
+ "devOptional": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.0.1",
+ "source-map-js": "^1.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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-js": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
+ "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
+ "dev": true,
+ "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-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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antonk52"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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-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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/posthtml": {
+ "version": "0.16.6",
+ "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+ "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+ "license": "MIT",
+ "dependencies": {
+ "posthtml-parser": "^0.11.0",
+ "posthtml-render": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/posthtml-parser": {
+ "version": "0.10.2",
+ "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz",
+ "integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==",
+ "license": "MIT",
+ "dependencies": {
+ "htmlparser2": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/posthtml-render": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+ "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-json": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/posthtml/node_modules/posthtml-parser": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+ "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+ "license": "MIT",
+ "dependencies": {
+ "htmlparser2": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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/react-error-overlay": {
+ "version": "6.0.9",
+ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz",
+ "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==",
+ "license": "MIT"
+ },
+ "node_modules/react-refresh": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.9.0.tgz",
+ "integrity": "sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pify": "^2.3.0"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "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/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/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/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.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==",
+ "dev": true,
+ "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-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/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "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/source-map-js": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+ "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
+ "devOptional": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/srcset": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/srcset/-/srcset-5.0.1.tgz",
+ "integrity": "sha512-/P1UYbGfJVlxZag7aABNRrulEXAwCSDo7fklafOQrantuPTDmYgijJMks2zusPCVzgW9+4P69mq7w6pYuZpgxw==",
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "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/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==",
+ "dev": true,
+ "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/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/string-width-cjs/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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi-cjs/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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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/commander": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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-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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/svgo": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz",
+ "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==",
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "@trysound/sax": "0.2.0",
+ "commander": "^7.2.0",
+ "css-select": "^5.1.0",
+ "css-tree": "^2.3.1",
+ "css-what": "^6.1.0",
+ "csso": "^5.0.5",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "svgo": "bin/svgo"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/svgo"
+ }
+ },
+ "node_modules/tailwindcss": {
+ "version": "3.4.10",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz",
+ "integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@alloc/quick-lru": "^5.2.0",
+ "arg": "^5.0.2",
+ "chokidar": "^3.5.3",
+ "didyoumean": "^1.2.2",
+ "dlv": "^1.1.3",
+ "fast-glob": "^3.3.0",
+ "glob-parent": "^6.0.2",
+ "is-glob": "^4.0.3",
+ "jiti": "^1.21.0",
+ "lilconfig": "^2.1.0",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "object-hash": "^3.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.4.23",
+ "postcss-import": "^15.1.0",
+ "postcss-js": "^4.0.1",
+ "postcss-load-config": "^4.0.1",
+ "postcss-nested": "^6.0.1",
+ "postcss-selector-parser": "^6.0.11",
+ "resolve": "^1.22.2",
+ "sucrase": "^3.32.0"
+ },
+ "bin": {
+ "tailwind": "lib/cli.js",
+ "tailwindcss": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/term-size": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
+ "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/thenify": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "thenify": ">= 3.1.0 < 4"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/timsort": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
+ "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==",
+ "license": "MIT"
+ },
+ "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/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==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/tslib": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
+ "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
+ "license": "0BSD"
+ },
+ "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/update-browserslist-db": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz",
+ "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==",
+ "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.1.2",
+ "picocolors": "^1.0.1"
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/utility-types": {
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz",
+ "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/weak-lru-cache": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz",
+ "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==",
+ "license": "MIT"
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dev": true,
+ "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/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==",
+ "dev": true,
+ "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/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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/wrap-ansi-cjs/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==",
+ "dev": true,
+ "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/wrap-ansi-cjs/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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi/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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "license": "ISC"
+ },
+ "node_modules/yaml": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz",
+ "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "yaml": "bin.mjs"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ }
+ }
+}
diff --git a/webapp/package.json b/webapp/package.json
new file mode 100644
index 00000000..771d5c3a
--- /dev/null
+++ b/webapp/package.json
@@ -0,0 +1,18 @@
+{
+ "devDependencies": {
+ "@parcel/packager-raw-url": "2.12.0",
+ "@parcel/transformer-webmanifest": "2.12.0",
+ "tailwindcss": "3.4.10"
+ },
+ "name": "dmi-bot-webapp",
+ "version": "1.0.0",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "author": "",
+ "license": "ISC",
+ "description": "",
+ "dependencies": {
+ "parcel": "2.12.0"
+ }
+}
diff --git a/webapp/static/assets/logo.ico b/webapp/static/assets/logo.ico
new file mode 100644
index 0000000000000000000000000000000000000000..23514699601194740187fa0ae518f9f122afd958
GIT binary patch
literal 126928
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