diff --git a/.github/workflows/clean-cloudflare-page-preview-url-and-r2.yml b/.github/workflows/clean-cloudflare-page-preview-url-and-r2.yml new file mode 100644 index 000000000..b19860576 --- /dev/null +++ b/.github/workflows/clean-cloudflare-page-preview-url-and-r2.yml @@ -0,0 +1,52 @@ +name: "Clean old cloudflare pages preview urls and nightly build" +on: + schedule: + - cron: "0 0 * * *" # every day at 00:00 + workflow_dispatch: + +jobs: + clean-cloudflare-pages-preview-urls: + strategy: + matrix: + project: ["cortex-docs"] + runs-on: ubuntu-latest + steps: + - uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: install requests + run: | + python3 -m pip install requests pytz tqdm + - name: Python Inline script + uses: jannekem/run-python-script-action@v1 + with: + script: | + import requests + from datetime import datetime, UTC + from pytz import timezone + from tqdm import tqdm + + # Configuration + endpoint = "https://api.cloudflare.com/client/v4/accounts/${{ secrets.CLOUDFLARE_ACCOUNT_ID }}/pages/projects/${{ matrix.project }}/deployments" + expiration_days = 3 + headers = { + "Content-Type": "application/json;charset=UTF-8", + "Authorization": "Bearer ${{ secrets.CLOUDFLARE_API_TOKEN }}" + } + utc_tz = timezone('UTC') + + # Fetch the list of deployments + response = requests.get(endpoint, headers=headers) + deployments = response.json() + + for deployment in tqdm(deployments['result']): + # Calculate the age of the deployment + created_on = datetime.strptime(deployment['created_on'], "%Y-%m-%dT%H:%M:%S.%fZ").replace(tzinfo=utc_tz) + if (datetime.now(UTC) - created_on).days > expiration_days: + # Delete the deployment + delete_response = requests.delete(f"{endpoint}/{deployment['id']}", headers=headers) + if delete_response.status_code == 200: + print(f"Deleted deployment: {deployment['id']}") + else: + print(f"Failed to delete deployment: {deployment['id']}") + diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 000000000..7a5f2a4e3 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,89 @@ +name: Cortex Docs + +on: + push: + branches: + - dev + pull_request: + # Review gh actions docs if you want to further define triggers, paths, etc + # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on + schedule: + - cron: "0 22 * * 1,2,3,4,5,6" + +jobs: + deploy: + name: Deploy to Cloudflare Pages + env: + CLOUDFLARE_PROJECT_NAME: cortex-docs + runs-on: ubuntu-latest + permissions: + contents: write + deployments: write + pull-requests: write + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 18 + + - name: Install jq + uses: dcarbone/install-jq-action@v2.0.1 + + - name: Fill env vars + working-directory: docs + continue-on-error: true + run: | + env_example_file=".env.example" + touch .env + while IFS= read -r line || [[ -n "$line" ]]; do + if [[ "$line" == *"="* ]]; then + var_name=$(echo $line | cut -d '=' -f 1) + echo $var_name + var_value="$(jq -r --arg key "$var_name" '.[$key]' <<< "$SECRETS")" + echo "$var_name=$var_value" >> .env + fi + done < "$env_example_file" + env: + SECRETS: "${{ toJson(secrets) }}" + + - name: Install dependencies + working-directory: docs + run: yarn install + - name: Build website + working-directory: docs + run: export NODE_ENV=production && yarn build + + - name: Copy redirect file + working-directory: docs + continue-on-error: true + run: cp _redirects build/_redirects + + - name: Publish to Cloudflare Pages PR Preview and Staging + if: github.event_name == 'pull_request' + uses: cloudflare/pages-action@v1 + with: + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + projectName: ${{ env.CLOUDFLARE_PROJECT_NAME }} + directory: ./docs/build + # Optional: Enable this if you want to have GitHub Deployments triggered + gitHubToken: ${{ secrets.GITHUB_TOKEN }} + id: deployCloudflarePages + + - uses: mshick/add-pr-comment@v2 + if: github.event_name == 'pull_request' + with: + message: | + Preview URL: ${{ steps.deployCloudflarePages.outputs.url }} + + - name: Publish to Cloudflare Pages Production + if: (github.event_name == 'push' || github.event_name == 'schedule') && github.ref == 'refs/heads/dev' && github.event.pull_request.head.repo.full_name != github.repository + uses: cloudflare/pages-action@v1 + with: + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + projectName: ${{ env.CLOUDFLARE_PROJECT_NAME }} + directory: ./docs/build + branch: dev + # Optional: Enable this if you want to have GitHub Deployments triggered + gitHubToken: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 89d198812..ad579aed8 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,5 @@ platform/package-lock.json platform/command platform/src/infrastructure/commanders/test/test_data **/vcpkg_installed -engine/test.db \ No newline at end of file +engine/test.db +!docs/yarn.lock \ No newline at end of file diff --git a/docs/.env.example b/docs/.env.example new file mode 100644 index 000000000..9e8dfd1d4 --- /dev/null +++ b/docs/.env.example @@ -0,0 +1,3 @@ +ALGOLIA_APP_ID=*** +ALGOLIA_API_KEY=*** +GTM_ID=*** \ No newline at end of file diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 000000000..51ffe4226 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,22 @@ +# Dependencies +/node_modules + +# Production +/build + +# Generated files +.docusaurus +.cache-loader + +# Misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +.env \ No newline at end of file diff --git a/docs/.prettierignore b/docs/.prettierignore new file mode 100644 index 000000000..7b6baee70 --- /dev/null +++ b/docs/.prettierignore @@ -0,0 +1,2 @@ +*.mdx +*.hbs diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 000000000..a46652537 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,55 @@ +# Website + +This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator. + +### Installation + +``` +$ yarn +``` + +### Local Development + +``` +$ yarn start +``` + +This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. + +### Build + +``` +$ yarn build +``` + +This command generates static content into the `build` directory and can be served using any static contents hosting service. + +### Deployment + +Using SSH: + +``` +$ USE_SSH=true yarn deploy +``` + +Not using SSH: + +``` +$ GIT_USER= yarn deploy +``` + +If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. + +## Changelog Generator + +To generate a changelog post, run: + +```bash + yarn create:changelog +``` + +- **Title & Slug**: Generate changelog post files with a title and a slug. +- **Description**: Add a description for the changelog post. +- **Version**: Add a version for the changelog post. + +The pages will be generated in `changelog/${slug}`. You can start writing your changelog post here. diff --git a/docs/babel.config.js b/docs/babel.config.js new file mode 100644 index 000000000..e00595dae --- /dev/null +++ b/docs/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: [require.resolve('@docusaurus/core/lib/babel/preset')], +}; diff --git a/docs/changelog/cortex-cpp-version-to-log.mdx b/docs/changelog/cortex-cpp-version-to-log.mdx new file mode 100644 index 000000000..64316e61e --- /dev/null +++ b/docs/changelog/cortex-cpp-version-to-log.mdx @@ -0,0 +1,24 @@ +--- +hide: + - title +title: "v0.5.0 cortex-cpp version to log" +version: 0.5.0 +date: 2024-06-29 +ogImage: "/img/changelog/social-card.jpg" +slug: "cortex-cpp-version-to-log" +description: '' +--- + +import ChangelogHeader from "@site/src/components/ChangelogHeader" + + + +### Highlights πŸŽ‰ +- Add cortex-cpp version to log +- Cortex cli as client - communicate with API server via cortexjs +- Unsupported platform engine status +- Update default api server config +- Transform anthropic response +- Github hotsted to macos selfhosted +- Release and fix winget +- Handle multi download model, uninstall script diff --git a/docs/docs/architecture.mdx b/docs/docs/architecture.mdx new file mode 100644 index 000000000..f2cd598c2 --- /dev/null +++ b/docs/docs/architecture.mdx @@ -0,0 +1,154 @@ +--- +title: Architecture +description: Cortex Architecture +slug: "architecture" +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +## Introduction + +Cortex is a C++ AI engine designed to operate entirely on your local hardware infrastructure. This headless backend platform is also engineered to support TensorRT-LLM, ensuring high-performance machine-learning model execution. It is packaged with a Docker-inspired command-line interface and a Typescript client library. + +The following guide details Cortex's core components, providing insights and instructions for those interested in customizing Cortex to meet specific requirements. + +## Architecture + +import Diagram from "../src/components/Diagram" + + + +### Main Components + +Cortex is architected with several key components: + +1. **Cortex JS**: This component acts as the interface layer where requests are received and responses are sent. +2. **Server:** The central processing unit of Cortex, this component coordinates all activities across the system. It manages the data flow and ensures operations are correctly executed. +3. **Kernel**: This component checks the server's hardware configuration. Based on the current hardware setup, it determines whether additional dependencies are required, optimizing the system for performance and compatibility. +4. **Runtime**: This process involves dynamically loading necessary libraries and models based on the server's current needs and processing requests. +5. **Dynamic Libraries**: Consists of inference engines loaded on-demand to enhance Cortex's processing power. These engines are essential for performing specialized computational tasks. Currently, Cortex supports: + - [Llama.cpp Engine](/docs/cortex-llamacpp) + - [TensorRT-LLM Engine](/docs/cortex-tensorrt-llm) + - [Onnx runtime Engine](/docs/cortex-onnx) + +### Data Structure + +Cortex is equipped with **MySQL** and **SQLite** databases, offering flexible data management options that can be easily adapted to different environments and requirements. It also has filesystem data that can be stored and retrieved using file-based mechanisms. + +- **MySQL**: This database is used because it is ideal for Cortex environments where scalability, security, and data integrity are critical. MySQL is well-suited for handling large model-size data from the core extensions. + +- **SQLite**: This database is used for simplicity and minimal setup. It can handle the small model size from the core extensions and any data from the External extensions. + +- **File System**: Cortex uses a filesystem approach for managing configuration files, such as `model.yaml` files. These files are stored in a structured directory hierarchy. + +### Providers +Cortex uses three different types of providers: + +- **Internal Provider**: Integral to the CLI, it includes the core binary (**`.cpp`**) and is compiled directly with the CLI, facilitating all application parts' direct access to core functionalities. + +- **Core Extensions**: These are bundled with the CLI and include additional functionalities like remote engines and API models, facilitating more complex operations and interactions within the same architectural framework. + +- **External Extensions**: These are designed to be more flexible and are stored externally. They represent potential future expansions or integrations, allowing the architecture to extend its capabilities without modifying the core system. + +### Key Dependencies + +Cortex was developed using NestJS and operates via a Node.js server framework, handling all incoming and outgoing requests. It also has a C++ runtime to handle stateless requests. + +Below is a detailed overview of its core architecture components: + +- **NestJS Framework**: NestJS framework serves as the backbone of the Cortex. This framework facilitates the organization of server-side logic into modules, controllers, and extensions, which are important for maintaining a clean codebase and efficient request handling. + +- **Node.js Server**: Node.js is the primary runtime for Cortex, which handles the HTTP requests, executes the server-side logic, and manages the responses. + +- **C++ Runtime**: C++ runtime is important for managing stateless requests. This component can handle intensive tasks that require optimized performance. + +## Code Structure + +The repository is organized to separate concerns between domain definitions, business rules, and adapters or implementations. + +``` +# Entity Definitions +domain/ # This is the core directory where the domains are defined. + abstracts/ # Abstract base classes for common attributes and methods. + models/ # Domain interface definitions, e.g. model, assistant. + repositories/ # Extensions abstract and interface + +# Business Rules +usecases/ # Application logic + assistants/ # CRUD logic (invokes dtos, entities). + chat/ # Logic for chat functionalities. + models/ # Logic for model operations. + +# Adapters & Implementations +infrastructure/ # Implementations for Cortex interactions + commanders/ # CLI handlers + models/ + questions/ # CLI installation UX + shortcuts/ # CLI chained syntax + types/ + usecases/ # Invokes UseCases + + controllers/ # Nest controllers and HTTP routes + assistants/ # Invokes UseCases + chat/ # Invokes UseCases + models/ # Invokes UseCases + + database/ # Database providers (mysql, sqlite) + + # Framework specific object definitions + dtos/ # DTO definitions (data transfer & validation) + entities/ # TypeORM entity definitions (db schema) + + # Providers + providers/cortex # Cortex [server] provider (a core extension) + repositories/extensions # Extension provider (core & external extensions) + +extensions/ # External extensions +command.module.ts # CLI Commands List +main.ts # Entrypoint + +``` + +## Runtime +```mermaid +sequenceDiagram + User-)Cortex: "Tell me a joke" + Cortex->>Model Controller/Service: Pull the Model + Cortex->>Model Controller/Service: Load the model + Cortex->>Chat Controller/Service: createChatCompletions() + Chat Controller/Service -->> Model Entity: findOne() + Cortex->>Model Entity: Store the model data + Chat Controller/Service -->> Extension Repository: findAll() + %% Responses + Extension Repository ->> Chat Controller/Service: Response stream + Chat Controller/Service ->> Chat Controller/Service: Formatted response/stream + Chat Controller/Service ->> User: "Your mama" +``` + +The sequence diagram above outlines the interactions between various components in the Cortex system during runtime, particularly when handling user requests via a CLI. Here’s a detailed breakdown of the runtime sequence: + +1. **User Request**: The user initiates an interaction by requesting β€œa joke” via the Cortex CLI. +2. **Model Activation**: + - The API directs the request to the `Model Controller/Service`. + - The service pulls and starts the appropriate model and posts a request to `/completions` to prepare the model for processing. +3. **Chat Processing**: + - The `Chat Controller/Service` processes the user's request by interacting with the Model Entity and Extension Repository to gather necessary data and logic. +4. **Data Handling and Response Formation**: + - The `Model Entity` and `Extension Repository` perform data operations, which may involve calling a `Provider` for additional processing. + - Data is fetched, stored, and an inference is performed as needed. +5. **Response Delivery**: + - The response is formatted by the `Chat Controller/Service` and streamed back to the user through the API. + - The user receives the processed response, completing the cycle of interaction. + +## Roadmap + +Our development roadmap outlines key features and epics we will focus on in the upcoming releases. These enhancements aim to improve functionality, increase efficiency, and expand Cortex's capabilities. + +- **RAG**: Improve response quality and contextual relevance in our AI models. +- **Cortex Python Runtime**: Provide a scalable Python execution environment for Cortex. + +:::info +For a full list of Cortex development roadmap, please see [here](https://discord.com/channels/1107178041848909847/1230770299730001941). +::: diff --git a/docs/docs/basic-usage/command-line.md b/docs/docs/basic-usage/command-line.md new file mode 100644 index 000000000..f48a0b94c --- /dev/null +++ b/docs/docs/basic-usage/command-line.md @@ -0,0 +1,48 @@ +--- +title: Command Line Interface +description: Cortex CLI Overview. +slug: "command-line" +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +Cortex has a [Docker](https://docs.docker.com/engine/reference/commandline/cli/) and [Ollama](https://ollama.com/)-inspired [CLI syntax](/docs/cli) for running model operations. + +## How It Works +Cortex’s CLI invokes the Cortex Engine’s API, which runs in the background on port `39281`. + + +## Basic Usage +### [Start Cortex Server](/docs/cli) +```bash +# By default the server will be started on port `39281` +cortex +``` +### [Run Model](/docs/cli/run) +Cortex supports these [Built-in Models](/models) +```bash +# Pull and start a model +cortex run +``` +### [Chat with Model](/docs/cli/chat) +```bash +# chat with a model +cortex chat +``` +### [Show the Model State](/docs/cli/ps) +```bash +# Show a model and cortex system status +cortex ps +``` +### [Stop Model](/docs/cli/stop) +```bash +# Stop a model +cortex stop +``` +### [Pull Model](/docs/cli/pull) +```bash +# Pull a model +cortex pull +``` diff --git a/docs/docs/basic-usage/cortexrc.mdx b/docs/docs/basic-usage/cortexrc.mdx new file mode 100644 index 000000000..312d77986 --- /dev/null +++ b/docs/docs/basic-usage/cortexrc.mdx @@ -0,0 +1,45 @@ +--- +title: .cortexrc +description: .cortexrc Overview. +slug: "cortexrc" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +Cortex.cpp supports reading its configuration from a file called `.cortexrc`. Using this file, you can also change the data folder, Cortex.cpp API server port, and host. + +## File Location +The configuration file is stored in the following locations: + +- **Windows**: + - Stable: `C:\Users\\.cortexrc` + - Beta: `C:\Users\\.cortexrc-beta` + - Nighty: `C:\Users\\.cortexrc-nightly` +- **Linux**: + - Stable: `/home//.cortexrc` + - Beta: `/home//.cortexrc-beta` + - Nighty: `/home//.cortexrc-nightly` +- **macOS**: + - Stable: `/Users//.cortexrc` + - Beta: `/Users//.cortexrc-beta` + - Nighty: `/Users//.cortexrc-nightly` + +## Configuration Parameters +You can configure the following parameters in the `.cortexrc` file: +| Parameter | Description | Default Value | +|------------------|--------------------------------------------------|--------------------------------| +| `dataFolderPath` | Path to the folder where `.cortexrc` located. | User's home folder. | +| `apiServerHost` | Host address for the Cortex.cpp API server. | `127.0.0.1` | +| `apiServerPort` | Port number for the Cortex.cpp API server. | `39281` | + +Example of the `.cortexrc` file: +``` +dataFolderPath: /Users//cortexcpp +apiServerHost: 127.0.0.1 +apiServerPort: 39281 +``` \ No newline at end of file diff --git a/docs/docs/basic-usage/integration/js-library.md b/docs/docs/basic-usage/integration/js-library.md new file mode 100644 index 000000000..e2d83fcdd --- /dev/null +++ b/docs/docs/basic-usage/integration/js-library.md @@ -0,0 +1,64 @@ +--- +title: cortex.js +description: How to integrate cortex.js with a Typescript application. +slug: "ts-library" +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +Cortex.cpp can be used in a Typescript application with the `cortex.js` library. Cortex.cpp provides a Typescript client library as a **fork of OpenAI's [Typescript library](https://github.com/openai/openai-node)** with additional methods for Local AI. + +## Installation + +```ts +npm install @janhq/cortexso-node +``` + +## Usage + +1. Replace the OpenAI import with Cortex.cpp in your application: + +```diff +- import OpenAI from 'openai'; ++ import Cortex from '@janhq/cortexso-node'; +``` + +2. Modify the initialization of the client to use Cortex.cpp: + +```diff +- const openai = new OpenAI({ ++ const cortex = new Cortex({ + baseURL: "BASE_URL", // The default base URL for Cortex is 'http://localhost:3928' + apiKey: "OPENAI_API_KEY", // This can be omitted if using the default +}); + +``` + +### Example Usage + +```js +import Cortex from "@janhq/cortexso-node"; + +async function inference() { + const cortex = new Cortex({ + baseURL: "http://localhost:3928/v1", + apiKey: "", + }); + + // Start the model to run locally + await cortex.models.start("tinyllama"); + + // Inference using the local model + const resp = await cortex.chat.completions.create({ + model: "llama3", + messages: [ + { role: "system", content: "You are a chatbot." }, + { role: "user", content: "What is the capital of the United States?" }, + ], + }); +} + +inference(); +``` diff --git a/docs/docs/basic-usage/integration/py-library.md b/docs/docs/basic-usage/integration/py-library.md new file mode 100644 index 000000000..3e126d068 --- /dev/null +++ b/docs/docs/basic-usage/integration/py-library.md @@ -0,0 +1,54 @@ +--- +title: cortex.py +description: How to integrate cortex.py with a Python application. +slug: "py-library" +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: +Cortex.cpp can be used in a Python application with the `cortex.py` library. Cortex.cpp provides a Python client library as a **fork of OpenAI's [Python library](https://github.com/openai/openai-python)** with additional methods for Local AI. +## Installation + +```py +pip install @janhq/cortex-python +``` + +## Usage + +1. Replace the OpenAI import with Cortex.cpp in your application: + +```diff +- from openai import OpenAI ++ from @janhq/cortex-python import Cortex +``` + +2. Modify the initialization of the client to use Cortex.cpp: + +```diff +- client = OpenAI(api_key='your-api-key') ++ client = Cortex(base_url="BASE_URL", api_key="API_KEY") # This can be omitted if using the default + +``` + +### Example Usage + +```py +from @janhq/cortex-python import Cortex + +client = OpenAI(base_url="http://localhost:3928", api_key="cortex") + +model = "TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF" +client.models.start(model=model) + +completion = client.chat.completions.create( + model=model, + messages=[ + { + "role": "user", + "content": "Say this is a test", + }, + ], +) +print(completion.choices[0].message.content) +``` diff --git a/docs/docs/basic-usage/overview.mdx b/docs/docs/basic-usage/overview.mdx new file mode 100644 index 000000000..107746845 --- /dev/null +++ b/docs/docs/basic-usage/overview.mdx @@ -0,0 +1,136 @@ +--- +title: Overview +description: Overview. +slug: "basic-usage" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +Cortex has an [API server](https://cortex.so/api-reference) that runs at `localhost:39281`. + + +## Usage +### Start Cortex.cpp Server + + + ```sh + # Stable + cortex start + + # Beta + cortex-beta start + + # Nightly + cortex-nightly start + ``` + + + ```sh + # Stable + cortex.exe start + + # Beta + cortex-beta.exe start + + # Nightly + cortex-nightly.exe start + ``` + + +### Run Model +```bash +# Pull a model +curl --request POST \ + --url http://localhost:39281/v1/models/pull \ + --header 'Content-Type: application/json' \ + --data '{ + "model": "mistral:gguf" +}' +# Start the model +curl --request POST \ + --url http://localhost:39281/v1/models/start \ + --header 'Content-Type: application/json' \ + --data '{ + "model": "mistral:gguf" + "prompt_template": "system\n{system_message}\nuser\n{prompt}\nassistant", + "stop": [], + "ngl": 4096, + "ctx_len": 4096, + "cpu_threads": 10, + "n_batch": 2048, + "caching_enabled": true, + "grp_attn_n": 1, + "grp_attn_w": 512, + "mlock": false, + "flash_attn": true, + "cache_type": "f16", + "use_mmap": true, + "engine": "llama-cpp" +}' +``` +### Chat with Model +```bash +# Invoke the chat completions endpoint +curl http://localhost:39281/v1/chat/completions \ +-H "Content-Type: application/json" \ +-d '{ + "messages": [ + { + "role": "user", + "content": "Hello" + }, + ], + "model": "mistral:gguf", + "stream": true, + "max_tokens": 1, + "stop": [ + null + ], + "frequency_penalty": 1, + "presence_penalty": 1, + "temperature": 1, + "top_p": 1 +}' +``` +### Stop Model +```bash +# Stop a model +curl --request POST \ + --url http://localhost:39281/v1/models/stop \ + --header 'Content-Type: application/json' \ + --data '{ + "model": "mistral:gguf" +}' +``` +### Stop Cortex.cpp Server + + + ```sh + # Stable + cortex stop + + # Beta + cortex-beta stop + + # Nightly + cortex-nightly stop + ``` + + + ```sh + # Stable + cortex.exe stop + + # Beta + cortex-beta.exe stop + + # Nightly + cortex-nightly.exe stop + ``` + + \ No newline at end of file diff --git a/docs/docs/basic-usage/server.mdx b/docs/docs/basic-usage/server.mdx new file mode 100644 index 000000000..69203b2e6 --- /dev/null +++ b/docs/docs/basic-usage/server.mdx @@ -0,0 +1,95 @@ +--- +title: API +description: Cortex Server Overview. +slug: "server" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +Cortex has an [API server](https://cortex.so/api-reference) that runs at `localhost:39281`. + + +## Usage +### Start Cortex Server +```bash +# By default the server will be started on port `39281` +cortex +# Start a server with different port number +cortex -a
-p +# Set the data folder directory +cortex --dataFolder +``` +### Run Model +```bash +# Pull a model +curl --request POST \ + --url http://localhost:39281/v1/models/mistral/pull +# Start the model +curl --request POST \ + --url http://localhost:39281/v1/models/mistral/start \ + --header 'Content-Type: application/json' \ + --data '{ + "prompt_template": "system\n{system_message}\nuser\n{prompt}\nassistant", + "stop": [], + "ngl": 4096, + "ctx_len": 4096, + "cpu_threads": 10, + "n_batch": 2048, + "caching_enabled": true, + "grp_attn_n": 1, + "grp_attn_w": 512, + "mlock": false, + "flash_attn": true, + "cache_type": "f16", + "use_mmap": true, + "engine": "llamacpp" +}' +``` +### Show the Model State +```bash +# Check the model status +curl --request GET \ + --url http://localhost:39281/v1/system/events/model +``` +### Chat with Model +```bash +# Invoke the chat completions endpoint +curl http://localhost:39281/v1/chat/completions \ +-H "Content-Type: application/json" \ +-d '{ + "model": "", + "messages": [ + { + "role": "user", + "content": "Hello" + }, + ], + "model": "mistral", + "stream": true, + "max_tokens": 1, + "stop": [ + null + ], + "frequency_penalty": 1, + "presence_penalty": 1, + "temperature": 1, + "top_p": 1 +}' +``` +### Stop Model +```bash +# Stop a model +curl --request POST \ + --url http://localhost:39281/v1/models/mistral/stop +``` +### Pull Model +```bash +# Pull a model +curl --request POST \ + --url http://localhost:39281/v1/models/mistral/pull +``` \ No newline at end of file diff --git a/docs/docs/benchmarking-architecture.mdx b/docs/docs/benchmarking-architecture.mdx new file mode 100644 index 000000000..fe2d0feb9 --- /dev/null +++ b/docs/docs/benchmarking-architecture.mdx @@ -0,0 +1,101 @@ +--- +title: Benchmarking Infra +description: Cortex Benchmarking Infrastructure +slug: "benchmarking-architecture" +--- + + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +## Architecture + +import Diagram from "../src/components/Diagram" + + + +The benchmarking capability comprises several key components: +1. **User Devices**: + - **Workstation, Desktop, Server**: These devices collect and send benchmarking data directly to the Supabase Backend in the Jan Cloud. + - **Web Interface**: Users interact with the system through the web interface which is the Cortex's CLI, which also sends data to the Supabase Backend. + +2. **Supabase Backend**: This component acts as the central hub for collecting and processing data from all user devices. + +3. **Data Storage**: + - **Postgres**: Stores structured data and relational information related to benchmarking results and user interactions. + - **S3**: Stores large files, logs, and other unstructured data necessary. + +4. **Post-processing**: Data stored in Postgres and S3 is utilized for various benchmarking analyzes. + +5. **Web Interface**: The processed data and benchmarking results are made available to users through the web interface which is the Cortex's CLI. Users can view, and convert the benchmarking reports to `JSON` from this interface. + +## Implementation +```mermaid +sequenceDiagram + participant User + participant Command as Command Line + participant Config as Config Loader + participant System as System Information + participant API as OpenAI API + participant Calc as Calculations + participant File as File System + + User->>Command: Run script with --config option + Command->>Config: Validate config path + Config->>Config: Read and parse YAML file + Config-->>Command: Return config object + Command->>System: Get initial system resource + System-->>Command: Return initial data + + loop Each Benchmark Round (num_rounds) + Command->>API: Request chat completions + API-->>Command: Stream responses + Command->>Calc: Calculate metrics (Token Count, TTFT) + Calc-->>Command: Return intermediate result + + Command->>System: Get end system resources post API call + System-->>Command: Return end data + Command->>Calc: Compute resource change, Throughput, TPOT, Latency, context length + Calc-->>Command: Return comprehensive metrics + end + Command->>Calc: Aggregate result to calculate percentiles (p50, p75, p95) + Calc-->>Command: Return aggregated metrics + Command->>File: Write result to JSON (include metrics and hardware changes) + File-->>User: Save output.json + +``` + +The diagram illustrates the implementation of how the benchmarking works in the Cortex environment: +1. **User**: + - The user runs the benchmarking command with a `--config` option. +2. **Command Line**: + - The command line validates the config path provided by the user. + - It then reads and parses the YAML file to load the configuration. +3. **Config Loader**: + - Returns a config object back to the command line. + - The command line then requests the initial system resources from the System Information module. +4. **System Information**: + - Returns the initial data to the command line. +5. **Benchmarking Loop**: + - The loop begins and iterates for each benchmark round (specified by `num_rounds`). +6. **OpenAI API**: + - Within each round, the system requests chat completions from the OpenAI API. + - The API streams responses back. +7. **Calculations**: + - The system calculates various metrics from the responses such as Token Count and Time to First Token (TTFT). + - Intermediate results are returned. +8. **System Information**: + - After the API call, the system collects end system resources. +9. **Calculations**: + - Computes resource changes, including Throughput, Total Processing Time (TPOT), Latency, and context length. + - Returns comprehensive metrics. + - Aggregates results to calculate percentiles (p50, p75, p95). +10. **File System**: + - Writes the results, including metrics and hardware changes, to a JSON file. + - Saves the output as `output.json`. + +:::info +Learn more about Benchmarking: +- [Benchmarking CLI command](/docs/cli/benchmark) +::: \ No newline at end of file diff --git a/docs/docs/built-in-models.mdx b/docs/docs/built-in-models.mdx new file mode 100644 index 000000000..836c2d874 --- /dev/null +++ b/docs/docs/built-in-models.mdx @@ -0,0 +1,54 @@ +--- +title: Built-in Models +description: Cortex Curated Models +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +Cortex.cpp maintains a collection of built-in models that cover the most popular open-source models. + +## Cortex Model Repos +Built-in models are [Cortex Model Repositories](/docs/hub/cortex-hub) hosted on HuggingFace and pre-compiled for different engines, allowing one model to have multiple branches in various formats. + +## Built-in Model Variants +Built-in models are made available across the following variants: + +- **By format**: `gguf`, `onnx`, and `tensorrt-llm` +- **By Size**: `7b`, `13b`, and more. +- **By quantizations**: `q4`, `q8`, and more. +:::info +You can see our full list of Built-in Models [here](/models). +::: +### Run Model + +Built-in models can be run via Docker-like syntax: + +```bash +# Run a model +cortex run model-id +# Run a model variant +cortex run model-id:branch +``` +For example: + +```bash +# Run Mistral Built-in Model +cortex pull mistral +# Run Mistral in GGUF format +cortex pull mistral:gguf +# Run Mistral in TensorRT-LLM format +cortex engines tensorrt-llm init +cortex pull mistral:7b-tensorrt-llm +# Run Mistral in ONNX format +cortex engines onnx init +cortex pull mistral:onnx +# Run Mistral with a different size +cortex pull mistral:7b-gguf + +``` \ No newline at end of file diff --git a/docs/docs/chat-completions.mdx b/docs/docs/chat-completions.mdx new file mode 100644 index 000000000..c39f25877 --- /dev/null +++ b/docs/docs/chat-completions.mdx @@ -0,0 +1,151 @@ +--- +title: Chat Completions +description: Chat Completions Feature. +slug: "text-generation" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +Cortex's Chat API is compatible with OpenAI’s [Chat Completions](https://platform.openai.com/docs/api-reference/chat) endpoint. It is a drop-in replacement for local inference. + +For local inference, Cortex is [multi-engine](#multiple-local-engines) and supports the following model formats: + +- `GGUF`: A generalizable LLM format that runs across CPUs and GPUs. Cortex implements a GGUF runtime through [llama.cpp](https://github.com/ggerganov/llama.cpp/). +- `TensorRT`: A production-ready, enterprise-grade LLM format optimized for fast inference on NVIDIA GPUs. Cortex implements a TensorRT runtime through [TensorRT-LLM](https://github.com/NVIDIA/TensorRT-LLM). +- `ONNX`: A cross-platform machine learning accelerator for inference. Cortex implements an ONNX runtime through [ONNX Runtime](https://github.com/microsoft/onnxruntime). + +Cortex routes requests to multiple APIs for remote inference while providing a single, easy-to-use, OpenAI-compatible endpoint. + +## Usage +### CLI + +```bash +# Streaming +cortex chat --model mistral +``` +### API + + + ```bash + curl http://localhost:39281/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{ + "model": "", + "messages": [ + { + "role": "user", + "content": "Hello" + }, + ], + "model": "", + "stream": true, + "max_tokens": 1, + "stop": [ + null + ], + "frequency_penalty": 1, + "presence_penalty": 1, + "temperature": 1, + "top_p": 1 + }' + + ``` + + + ```bash + curl http://localhost:39281/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{ + "messages": [ + { + "role": "system", + "content": "You are a helpful assistant." + }, + { + "role": "user", + "content": "Who won the world series in 2020?" + }, + { + "role": "assistant", + "content": "The Los Angeles Dodgers won the World Series in 2020." + }, + { + "role": "user", + "content": "Where was it played?" + } + ], + "model": "", + "stream": true, + "max_tokens": 1, + "stop": [ + null + ], + "frequency_penalty": 1, + "presence_penalty": 1, + "temperature": 1, + "top_p": 1 + }' + + ``` + + + ```bash + { + "choices": [ + { + "finish_reason": "stop", + "index": 0, + "message": { + "content": "Hello, how may I assist you this evening?", + "role": "assistant" + } + } + ], + "created": 1700215278, + "id": "sofpJrnBGUnchO8QhA0s", + "model": "_", + "object": "chat.completion", + "system_fingerprint": "_", + "usage": { + "completion_tokens": 13, + "prompt_tokens": 90, + "total_tokens": 103 + } +} + ``` + + +## Capabilities + +### Multiple Local Engines + +Cortex scales applications from prototype to production, running on CPU-only laptops with llama.cpp and GPU-accelerated with TensorRT-LLM. + +To configure each engine, refer to the [`cortex engines init`](/docs/cli/engines/init) command. + +Learn more about our engine architecture: + +- cortex.cpp +- [llamacpp](/docs/cortex-llamacpp) +- tensorrt-llm +- [onnx](/docs/cortex-onnx) + +### Multiple Remote APIs + +Cortex also acts as an aggregator for remote inference requests from a single endpoint. Currently, Cortex supports: + +- OpenAI +- Groq +- Anthropic +- MistralAI + +:::note +Learn more about Chat Completions capabilities: +- [Chat Completions API Reference](/api-reference#tag/inference/post/chat/completions) +- [Chat Completions CLI command](/docs/cli/chat) +::: diff --git a/docs/docs/cli/benchmark.mdx b/docs/docs/cli/benchmark.mdx new file mode 100644 index 000000000..98e7ac165 --- /dev/null +++ b/docs/docs/cli/benchmark.mdx @@ -0,0 +1,110 @@ +--- +title: Cortex Benchmark +description: Cortex benchmark command. +slug: "benchmark" +--- + +:::warning +🚧 Cortex Platform is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex benchmark` +:::info +This CLI command calls the following API endpoint: +- [Start Model](/api-reference#tag/models/post/v1/models/{modelId}/start) +- [Chat Completions](/api-reference#tag/inference/post/v1/chat/completions) +::: +This command benchmarking your hardware to analyze the selected model performance on your system. + + + +## Usage + +```bash +cortex benchmark [options] [model_id] +``` +For example, it will return the following: +```bash +## JSON Format + results: [ + { + round: 1, + results: [ + { + tokens: 2048, + token_length: 3567, + latency: 12012, + resourceChange: { cpuLoad: -45.543634551575586, mem: -0.22862459579142327 }, + tpot: 3.3675357443229603, + throughput: 296.95304695304696, + ttft: 182 + } + ], + hardwareChanges: { cpuLoad: 204.51297399539473, mem: 0.93911874639132 } + } + ], + metrics: { + p50: { + latency: 12012, + tpot: 3.3675357443229603, + throughput: 296.95304695304696, + ttft: 182 + }, + p75: { + latency: 12012, + tpot: 3.3675357443229603, + throughput: 296.95304695304696, + ttft: 182 + }, + p95: { + latency: 12012, + tpot: 3.3675357443229603, + throughput: 296.95304695304696, + ttft: 182 + } + }, + model: { + modelId: 'tinyllama', + engine: 'llamacpp', + status: 'running', + duration: '2h 38m 44s', + ram: '-', + vram: '-' + } +} + +## Table Format +Results: +Round 1: +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β” +β”‚ (index) β”‚ tokens β”‚ token_length β”‚ latency β”‚ resourceChange β”‚ tpot β”‚ throughput β”‚ ttft β”‚ +β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€ +β”‚ 0 β”‚ 2048 β”‚ 3461 β”‚ 12021 β”‚ { cpuLoad: -37.98941038167731, mem: -0.30508369223866116 } β”‚ 3.473273620340942 β”‚ 287.91281923300886 β”‚ 248 β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”˜ +Metrics: +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β” +β”‚ (index) β”‚ latency β”‚ tpot β”‚ throughput β”‚ ttft β”‚ +β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€ +β”‚ p50 β”‚ 12021 β”‚ 3.473273620340942 β”‚ 287.91281923300886 β”‚ 248 β”‚ +β”‚ p75 β”‚ 12021 β”‚ 3.473273620340942 β”‚ 287.91281923300886 β”‚ 248 β”‚ +β”‚ p95 β”‚ 12021 β”‚ 3.473273620340942 β”‚ 287.91281923300886 β”‚ 248 β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”˜ + +``` +:::info +- The JSON benchmark file is located on `~cortex\benchmark\outpout.json`. +- This command uses a model that has been downloaded to your file system. Downloads a model by using the [pull](/docs/cli/pull) or [run](/docs/cli/run) command. +::: + + +## Options + +| Option | Description | Required | Default value | Example | +|-----------------------------------|--------------------------------------------------------------------------|----------|---------------------------------------------|--------------------------------------------------| +| `model_id` | The model identifier you want to benchmark. | No | `Prompt to select from the available models` | `mistral` | +| `-n`, `--num_rounds ` | Number of rounds to run the benchmark. | No | `10` | `-n 20` | +| `-c`, `--concurrency `| Number of concurrent requests to run the benchmark. | No | `false` | `-c 5` | +| `-o`, `--output ` | Output format for the benchmark results. Choices are `json` or table format. | No | `json` | `-o json` | +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + + diff --git a/docs/docs/cli/chat.mdx b/docs/docs/cli/chat.mdx new file mode 100644 index 000000000..0b7ee7083 --- /dev/null +++ b/docs/docs/cli/chat.mdx @@ -0,0 +1,71 @@ +--- +title: Cortex Chat +description: Cortex chat command. +slug: "chat" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex chat` +:::info +This CLI command calls the following API endpoint: +- [Download Model](/api-reference#tag/models/post/v1/models/pull) (The command only calls this endpoint if the specified model is not downloaded yet.) +- Install Engine (The command only calls this endpoint if the specified engine is not downloaded yet.) +- [Start Model](/api-reference#tag/models/post/v1/models/start) +- [Chat Completions](/api-reference#tag/inference/post/v1/chat/completions) (The command makes a call to this endpoint if the `-c` option is used.) +::: + +This command starts a chat session with a specified model, allowing you to interact directly with it through an interactive chat interface. + +## Usage +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex chat [options] -m + + # Beta + cortex-beta chat [options] -m + + # Nightly + cortex-nightly chat [options] -m + ``` + + + ```sh + # Stable + cortex.exe chat [options] -m + + # Beta + cortex-beta.exe chat [options] -m + + # Nightly + cortex-nightly.exe chat [options] -m + ``` + + + +:::info +This command uses a `model_id` from the model that you have downloaded or available in your file system. +::: + +## Options + +| Option | Description | Required | Default value | Example | +| ----------------------------- | ----------------------------------------------------------------------------------------------- | -------- | ------------- | ----------------------------- | +| `model_id` | Model ID to chat with. | Yes | - | `mistral` | +| `-m`, `--message ` | Message to send to the model | Yes | - | `-m "Hello, model!"` | +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + + + + diff --git a/docs/docs/cli/configs/get.mdx b/docs/docs/cli/configs/get.mdx new file mode 100644 index 000000000..503e18368 --- /dev/null +++ b/docs/docs/cli/configs/get.mdx @@ -0,0 +1,39 @@ +--- +title: Cortex Configs Get +description: Cortex configs subcommands. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex configs get` + +This command returns a config detail defined by a config `name`. + + + +## Usage + +```bash +cortex configs get +``` +For example, it returns the following: +```bash +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ (index) β”‚ Values β”‚ +β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€ +β”‚ apiKey β”‚ '' β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + +``` +:::info +To get a config name, run the [`configs list`](/docs/cli/configs/list) command first. +::: +## Options + +| Option | Description | Required | Default value | Example | +|-------------------|-------------------------------------------------------|----------|---------------|-----------------| +| `name` | The name of the config that you want to retrieve. | Yes | - | `openai`| +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + diff --git a/docs/docs/cli/configs/index.mdx b/docs/docs/cli/configs/index.mdx new file mode 100644 index 000000000..0ec926523 --- /dev/null +++ b/docs/docs/cli/configs/index.mdx @@ -0,0 +1,115 @@ +--- +title: Cortex Configs +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex configs` + +This command allows you to customize the Cortex's configurations. + + + +**Usage**: + +```bash +cortex configs [options] +``` + +**Options**: + +| Option | Description | Required | Default value | Example | +|-------------------|-------------------------------------------------------|----------|---------------|-----------------| +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + +## `cortex configs get` + +This command returns a config detail defined by a config `name`. + + + +**Usage**: + +```bash +cortex configs get +``` +For example, it returns the following: +```bash +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ (index) β”‚ Values β”‚ +β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€ +β”‚ apiKey β”‚ '' β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + +``` +:::info +To get a config name, run the [`configs list`](/docs/cli/configs/list) command first. +::: +**Options**: + +| Option | Description | Required | Default value | Example | +|-------------------|-------------------------------------------------------|----------|---------------|-----------------| +| `name` | The name of the config that you want to retrieve. | Yes | - | `openai`| +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + +## `cortex configs list` + +This command lists all the cortex's configurations. + + + +**Usage**: + +```bash +cortex configs list [options] +``` +For example, it returns the following: +```bash +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ (index) β”‚ apiKey β”‚ Values β”‚ +β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ +β”‚ dataFolderPath β”‚ β”‚ 'C:\\Users\\ACER\\cortex' β”‚ +β”‚ initialized β”‚ β”‚ true β”‚ +β”‚ cortexCppHost β”‚ β”‚ '127.0.0.1' β”‚ +β”‚ cortexCppPort β”‚ β”‚ 3929 β”‚ +β”‚ openai β”‚ '' β”‚ β”‚ +β”‚ groq β”‚ '' β”‚ β”‚ +β”‚ mistral β”‚ '' β”‚ β”‚ +β”‚ anthropic β”‚ '' β”‚ β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + +``` +**Options**: + +| Option | Description | Required | Default value | Example | +|---------------------------|----------------------------------------------------|----------|---------------|----------------------| +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + +## `cortex configs set` + +This command sets a specific configuration within Cortex. + + + +**Usage**: + +```bash +cortex configs set [options] +``` + +Example: +```bash +# Set the OpenAI API key +cortex configs set -k apiKey -v yourAPIKey -g openai +``` + +**Options**: + +| Option | Description | Required | Default value | Example | +|-----------------------|-------------------------------------|----------|---------------|------------------| +| `-k, --key ` | Configuration key. | Yes | - | `-k configKey` | +| `-v, --value ` | Configuration value. | Yes | - | `-v configValue` | +| `-g, --group ` | Configuration group. | Yes | - | `-g configGroup` | +| `-h, --help` | Display help information for the command. | No | - | `-h` | diff --git a/docs/docs/cli/configs/list.mdx b/docs/docs/cli/configs/list.mdx new file mode 100644 index 000000000..303bb010e --- /dev/null +++ b/docs/docs/cli/configs/list.mdx @@ -0,0 +1,43 @@ +--- +title: Cortex Configss List +description: Cortex configs subcommands. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex configs list` + +This command lists all the cortex's configurations. + + + +## Usage + +```bash +cortex configs list [options] +``` +For example, it returns the following: +```bash +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ (index) β”‚ apiKey β”‚ Values β”‚ +β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ +β”‚ dataFolderPath β”‚ β”‚ 'C:\\Users\\ACER\\cortex' β”‚ +β”‚ initialized β”‚ β”‚ true β”‚ +β”‚ cortexCppHost β”‚ β”‚ '127.0.0.1' β”‚ +β”‚ cortexCppPort β”‚ β”‚ 3929 β”‚ +β”‚ openai β”‚ '' β”‚ β”‚ +β”‚ groq β”‚ '' β”‚ β”‚ +β”‚ mistral β”‚ '' β”‚ β”‚ +β”‚ anthropic β”‚ '' β”‚ β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + +``` +## Options + +| Option | Description | Required | Default value | Example | +|---------------------------|----------------------------------------------------|----------|---------------|----------------------| +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + + diff --git a/docs/docs/cli/configs/set.mdx b/docs/docs/cli/configs/set.mdx new file mode 100644 index 000000000..0e659bc03 --- /dev/null +++ b/docs/docs/cli/configs/set.mdx @@ -0,0 +1,37 @@ +--- +title: Cortex Configs Set +description: Cortex configs subcommands. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex configs set` + +This command sets a specific configuration within Cortex. + + + +## Usage + +```bash +cortex configs set [options] +``` + +Example: +```bash +# Set the OpenAI API key +cortex configs set -k apiKey -v yourAPIKey -g openai +``` + +## Options + +| Option | Description | Required | Default value | Example | +|-----------------------|-------------------------------------|----------|---------------|------------------| +| `-k, --key ` | Configuration key. | Yes | - | `-k configKey` | +| `-v, --value ` | Configuration value. | Yes | - | `-v configValue` | +| `-g, --group ` | Configuration group. | Yes | - | `-g configGroup` | +| `-h, --help` | Display help information for the command. | No | - | `-h` | + + diff --git a/docs/docs/cli/cortex.mdx b/docs/docs/cli/cortex.mdx new file mode 100644 index 000000000..517494c07 --- /dev/null +++ b/docs/docs/cli/cortex.mdx @@ -0,0 +1,68 @@ +--- +title: Cortex +description: Cortex CLI. +slug: /cli +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# Cortex +This command list all the available commands within the Cortex.cpp commands. + +## Usage +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex + + # Beta + cortex-beta + + # Nightly + cortex-nightly + ``` + + + ```sh + # Stable + cortex.exe + + # Beta + cortex-beta.exe + + # Nightly + cortex-nightly.exe + ``` + + + + +## Command Chaining +Cortex CLI's command chaining support allows multiple commands to be executed in sequence with a simplified syntax. + +For example: + +- [cortex run](/docs/cli/run) +- [cortex chat](/docs/cli/chat) + +## Sub Commands + +- [cortex models](/docs/cli/models): Manage and configure models. +- [cortex chat](/docs/cli/chat): Send a chat request to a model. +- [cortex ps](/docs/cli/ps): Display active models and their operational status. +- [cortex embeddings](/docs/cli/embeddings): Create an embedding vector representing the input text. +- [cortex engines](/docs/cli/engines): Manage Cortex.cpp engines. +- [cortex pull|download](/docs/cli/pull): Download a model. +- [cortex run](/docs/cli/run): Shortcut to start a model and chat. +- [cortex update](/docs/cli/update): Update the Cortex.cpp version. +- [cortex start](/docs/cli/start): Start the Cortex.cpp API server. +- [cortex stop](/docs/cli/stop): Stop the Cortex.cpp API server. diff --git a/docs/docs/cli/embeddings.mdx b/docs/docs/cli/embeddings.mdx new file mode 100644 index 000000000..d43a26d24 --- /dev/null +++ b/docs/docs/cli/embeddings.mdx @@ -0,0 +1,68 @@ +--- +title: Cortex Embeddings +description: Cortex embeddings command. +slug: "embeddings" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex embeddings` +:::info +This CLI command calls the following API endpoint: +- [Embeddings](/api-reference#tag/embeddings/post/v1/embeddings) +::: +This command creates the embedding vector representing the input text. + + + +## Usage +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex embeddings [options] [model_id] [message] + + # Beta + cortex-beta embeddings [options] [model_id] [message] + + # Nightly + cortex-nightly embeddings [options] [model_id] [message] + ``` + + + ```sh + # Stable + cortex.exe embeddings [options] [model_id] [message] + + # Beta + cortex-beta.exe embeddings [options] [model_id] [message] + + # Nightly + cortex-nightly.exe embeddings [options] [model_id] [message] + ``` + + + +:::info +This command uses a `model_id` from the model that you have downloaded or available in your file system. +::: + +## Options + + +| Option | Description | Required | Default value | Example | +|-------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|----------|----------------------------------------------|-------------------------------------------------------| +| `model_id` | Specify the models to generate the embeddings. | No | `Prompt to select from the available models` | `mistral` | +| `-i`, `--input ` | Input text to embed, encoded as a string or array of tokens. For multiple inputs, pass an array of strings or token arrays. | Yes | - | `-i "Hello, world!"` | +| `-e`, `--encoding_format `| Encoding format for the embeddings. Supported formats are float and int. | No | `float` | `-e float` | +| `-d`, `--dimensions ` | Specify the number of dimensions for the resulting output embeddings. Supported only in some models. | No | - | `-d 128` | +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + diff --git a/docs/docs/cli/engines/get.mdx b/docs/docs/cli/engines/get.mdx new file mode 100644 index 000000000..74d3df64a --- /dev/null +++ b/docs/docs/cli/engines/get.mdx @@ -0,0 +1,40 @@ +--- +title: Cortex Engines Get +description: Cortex engines subcommands. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex engines get` + +This command returns an engine detail defined by an engine `name`. + + + +## Usage + +```bash +cortex engines get +``` +For example, it returns the following: +```bash ++-----------+-------------------+---------+----------------------------+--------+ +| Name | Supported Formats | Version | Variant | Status | ++-----------+-------------------+---------+----------------------------+--------+ +| llama-cpp | GGUF | 0.1.34 | linux-amd64-avx2-cuda-12-0 | Ready | ++-----------+-------------------+---------+----------------------------+--------+ +``` +:::info +To get an engine name, run the [`engines list`](/docs/cli/engines/list) command first. +::: + + +## Options + +| Option | Description | Required | Default value | Example | +|-------------------|-------------------------------------------------------|----------|---------------|-----------------| +| `name` | The name of the engine that you want to retrieve. | Yes | - | `llama-cpp`| +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + diff --git a/docs/docs/cli/engines/index.mdx b/docs/docs/cli/engines/index.mdx new file mode 100644 index 000000000..2949de810 --- /dev/null +++ b/docs/docs/cli/engines/index.mdx @@ -0,0 +1,294 @@ +--- +title: Cortex Engines +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex engines` + +This command allows you to manage various engines available within Cortex. + + + +**Usage**: +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex engines [options] [subcommand] + + # Beta + cortex-beta engines [options] [subcommand] + + # Nightly + cortex-nightly engines [options] [subcommand] + ``` + + + ```sh + # Stable + cortex.exe engines [options] [subcommand] + + # Beta + cortex-beta.exe engines [options] [subcommand] + + # Nightly + cortex-nightly.exe engines [options] [subcommand] + ``` + + + + +**Options**: + +| Option | Description | Required | Default value | Example | +|-------------------|-------------------------------------------------------|----------|---------------|-----------------| +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | +{/* | `-vk`, `--vulkan` | Install Vulkan engine. | No | `false` | `-vk` | */} + +## `cortex engines get` +:::info +This CLI command calls the following API endpoint: +- [Get Engine](/api-reference#tag/engines/get/v1/engines/{name}) +::: +This command returns an engine detail defined by an engine `engine_name`. + + + +**Usage**: +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex engines get + + # Beta + cortex-beta engines get + + # Nightly + cortex-nightly engines get + ``` + + + ```sh + # Stable + cortex.exe engines get + + # Beta + cortex-beta.exe engines get + + # Nightly + cortex-nightly.exe engines get + ``` + + + +For example, it returns the following: +```bash +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ (index) β”‚ Values β”‚ +β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ +β”‚ name β”‚ 'onnx' β”‚ +β”‚ description β”‚ 'This extension enables chat completion API calls using the Cortex engine' β”‚ +β”‚ version β”‚ '0.0.1' β”‚ +β”‚ productName β”‚ 'Cortex Inference Engine' β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` +:::info +To get an engine name, run the [`engines list`](/docs/cli/engines/list) command first. +::: + + +**Options**: + +| Option | Description | Required | Default value | Example | +|-------------------|-------------------------------------------------------|----------|---------------|-----------------| +| `engine_name` | The name of the engine that you want to retrieve. | Yes | - | `llama-cpp`| +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + +## `cortex engines list` +:::info +This CLI command calls the following API endpoint: +- [List Engines](/api-reference#tag/engines/get/v1/engines) +::: +This command lists all the Cortex's engines. + + + +**Usage**: +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex engines list [options] + + # Beta + cortex-beta engines list [options] + + # Nightly + cortex-nightly engines list [options] + ``` + + + ```sh + # Stable + cortex.exe engines list [options] + + # Beta + cortex-beta.exe engines list [options] + + # Nightly + cortex-nightly.exe engines list [options] + ``` + + + +For example, it returns the following: +```bash ++---+--------------+-------------------+---------+----------------------------+---------------+ +| # | Name | Supported Formats | Version | Variant | Status | ++---+--------------+-------------------+---------+----------------------------+---------------+ +| 1 | onnxruntime | ONNX | | | Incompatible | ++---+--------------+-------------------+---------+----------------------------+---------------+ +| 2 | llama-cpp | GGUF | 0.1.34 | linux-amd64-avx2-cuda-12-0 | Ready | ++---+--------------+-------------------+---------+----------------------------+---------------+ +| 3 | tensorrt-llm | TensorRT Engines | | | Not Installed | ++---+--------------+-------------------+---------+----------------------------+---------------+ +``` + +**Options**: + +| Option | Description | Required | Default value | Example | +|---------------------------|----------------------------------------------------|----------|---------------|----------------------| +| `-h`, `--help` | Display help for command. | No | - | `-h` | + + +## `cortex engines install` +:::info +This CLI command calls the following API endpoint: +- [Init Engine](/api-reference#tag/engines/post/v1/engines/{name}/init) +::: +This command downloads the required dependencies and installs the engine within Cortex. Currently, Cortex supports three engines: +- `llama-cpp` +- `onnxruntime` +- `tensorrt-llm` + +**Usage**: +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex engines install [options] + + # Beta + cortex-beta engines install [options] + + # Nightly + cortex-nightly engines install [options] + ``` + + + ```sh + # Stable + cortex.exe engines install [options] + + # Beta + cortex-beta.exe engines install [options] + + # Nightly + cortex-nightly.exe engines install [options] + ``` + + + +For Example: +```bash +## Llama.cpp engine +cortex engines install llama-cpp + +## ONNX engine +cortex engines install onnxruntime + +## Tensorrt-LLM engine +cortex engines install tensorrt-llm + +``` + +**Options**: + +| Option | Description | Required | Default value | Example | +|---------------------------|----------------------------------------------------|----------|---------------|----------------------| +| `engine_name` | The name of the engine you want to install. | Yes | - | - | +| `-h`, `--help` | Display help for command. | No | - | `-h` | + +## `cortex engines uninstall` + +This command uninstalls the engine within Cortex. + +**Usage**: +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex engines uninstall [options] + + # Beta + cortex-beta engines uninstall [options] + + # Nightly + cortex-nightly engines uninstall [options] + ``` + + + ```sh + # Stable + cortex.exe engines uninstall [options] + + # Beta + cortex-beta.exe engines uninstall [options] + + # Nightly + cortex-nightly.exe engines uninstall [options] + ``` + + + +For Example: +```bash +## Llama.cpp engine +cortex engines uninstall llama-cpp + +## ONNX engine +cortex engines uninstall onnxruntime + +## Tensorrt-LLM engine +cortex engines uninstall tensorrt-llm + +``` + +**Options**: + +| Option | Description | Required | Default value | Example | +|---------------------------|----------------------------------------------------|----------|---------------|----------------------| +| `engine_name` | The name of the engine you want to uninstall. | Yes | - | - | +| `-h`, `--help` | Display help for command. | No | - | `-h` | diff --git a/docs/docs/cli/engines/init.mdx b/docs/docs/cli/engines/init.mdx new file mode 100644 index 000000000..fa2f31955 --- /dev/null +++ b/docs/docs/cli/engines/init.mdx @@ -0,0 +1,37 @@ +--- +title: Cortex Engines Init +description: Cortex engines subcommands. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex engines init` +This command sets up and downloads the required dependencies to run the available engines within Cortex. Currently, Cortex supports three engines: +- `Llama.cpp` +- `Onnx` +- `Tensorrt-llm` +## Usage +```bash +cortex engines init [options] +``` +For Example: +```bash +## Llama.cpp engine +cortex engines init llama-cpp + +## ONNX engine +cortex engines init onnxruntime + +## Tensorrt-LLM engine +cortex engines init tensorrt-llm + +``` + +## Options + +| Option | Description | Required | Default value | Example | +|---------------------------|----------------------------------------------------|----------|---------------|----------------------| +| `name` | The name of the engine you want to run. | Yes | - | - | +| `-h`, `--help` | Display help for command. | No | - | `-h` | \ No newline at end of file diff --git a/docs/docs/cli/engines/list.mdx b/docs/docs/cli/engines/list.mdx new file mode 100644 index 000000000..c5ce93cc8 --- /dev/null +++ b/docs/docs/cli/engines/list.mdx @@ -0,0 +1,38 @@ +--- +title: Cortex Engines List +description: Cortex engines subcommands. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex engines list` + +This command lists all the Cortex's engines. + + + +## Usage + +```bash +cortex engines list [options] +``` +For example, it returns the following: +```bash ++---+---------------+--------------------+---------+--------------+ +| # | Name | Supported Formats | Version | Status | ++---+---------------+--------------------+---------+--------------+ +| 1 | onnxruntime | ONNX | 0.0.1 | Incompatible | +| 2 | llama-cpp | GGUF | 0.0.1 | Ready | +| 3 | tensorrt-llm | TensorRT Engines | 0.0.1 | Incompatible | ++---+---------------+--------------------+---------+--------------+ +``` + +## Options + +| Option | Description | Required | Default value | Example | +|---------------------------|----------------------------------------------------|----------|---------------|----------------------| +| `-h`, `--help` | Display help for command. | No | - | `-h` | + + diff --git a/docs/docs/cli/models/download.md b/docs/docs/cli/models/download.md new file mode 100644 index 000000000..e63516a2c --- /dev/null +++ b/docs/docs/cli/models/download.md @@ -0,0 +1,43 @@ +--- +title: Cortex Models Pull +description: Cortex models subcommands. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex models pull` + +This command downloads a model. You can use a HuggingFace `model_id` to download a model. + + + +## Usage + +```bash +cortex models pull +``` +### `model_id` +You can find the `model_id` for your desired model from: +- [Cortex Model Hub](https://huggingface.co/cortexso) +- [HuggingFace](https://huggingface.co/models) +- [Models](/models) +:::info +Currently Cortex only supports the following model format: **GGUF**, **ONNX**, and **TensorRT-LLM**. +::: +## Alias + +The following alias is also available for downloading models: + +- `cortex models download _` + +## Options + +| Option | Description | Required | Default value | Example | +|---------------------------|------------------------------------------|----------|---------------|----------------------------| +| `model_id` | The identifier of the model you want to download. | Yes | - | `mistral` | +| `-h`, `--help` | Display help for command. | No | - | `-h` | + + + diff --git a/docs/docs/cli/models/get.md b/docs/docs/cli/models/get.md new file mode 100644 index 000000000..750430a7f --- /dev/null +++ b/docs/docs/cli/models/get.md @@ -0,0 +1,56 @@ +--- +title: Cortex Models Get +description: Cortex models subcommands. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex models get` + +This command returns a model detail defined by a `model_id`. + + + +## Usage + +```bash +cortex models get +``` +For example, it returns the following: + +```bash +{ + name: 'tinyllama', + model: 'tinyllama', + version: 1, + files: [ 'C:\\Users\\ACER\\cortex\\models\\tinyllama\\model.gguf' ], + stop: [ '' ], + top_p: 0.95, + temperature: 0.7, + frequency_penalty: 0, + presence_penalty: 0, + max_tokens: 4096, + stream: true, + ngl: 33, + ctx_len: 4096, + engine: 'llamacpp', + prompt_template: '<|system|>\n{system_message}<|user|>\n{prompt}<|assistant|>', + id: 'tinyllama', + created: 1720659351720, + object: 'model', + owned_by: '' +} +``` +:::info +This command uses a `model_id` from the model that you have downloaded or available in your file system. +::: + +## Options + +| Option | Description | Required | Default value | Example | +|-------------------|-------------------------------------------------------|----------|---------------|-----------------| +| `model_id` | The identifier of the model you want to retrieve. | Yes | - | `mistral`| +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + diff --git a/docs/docs/cli/models/index.mdx b/docs/docs/cli/models/index.mdx new file mode 100644 index 000000000..023ab412a --- /dev/null +++ b/docs/docs/cli/models/index.mdx @@ -0,0 +1,544 @@ +--- +title: Cortex Models +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex models` + +This command allows you to start, stop, and manage various local or remote model operations within Cortex. + + +**Usage**: +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex models [options] [subcommand] + + # Beta + cortex-beta models [options] [subcommand] + + # Nightly + cortex-nightly models [options] [subcommand] + ``` + + + ```sh + # Stable + cortex.exe models [options] + + # Beta + cortex-beta.exe models [options] + + # Nightly + cortex-nightly.exe models [options] + ``` + + + +**Options**: + +| Option | Description | Required | Default value | Example | +|-------------------|-------------------------------------------------------|----------|---------------|-----------------| +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + + + +## `cortex models get` +:::info +This CLI command calls the following API endpoint: +- [Get Model](/api-reference#tag/models/get/v1/models/{id}) +::: +This command returns a model detail defined by a `model_id`. + + + +**Usage**: +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex models get + + # Beta + cortex-beta models get + + # Nightly + cortex-nightly models get + ``` + + + ```sh + # Stable + cortex.exe models get + + # Beta + cortex-beta.exe models get + + # Nightly + cortex-nightly.exe models get + ``` + + + +For example, it returns the following: + +```bash +ModelConfig Details: +------------------- +id: tinyllama +name: tinyllama 1B +model: tinyllama:1B +version: 1 +stop: [] +top_p: 0.95 +temperature: 0.7 +frequency_penalty: 0 +presence_penalty: 0 +max_tokens: 4096 +stream: true +ngl: 33 +ctx_len: 4096 +engine: llamacpp +prompt_template: + +<|system|> +{system_message} + + + + +<|user|> +{prompt} + + +<|assistant|> + + +system_template: + +<|system|> + +user_template: + + + + +<|user|> + +ai_template: + + +<|assistant|> + + +tp: 0 +text_model: false +files: [model_path] +created: 1725342964 +``` +:::info +This command uses a `model_id` from the model that you have downloaded or available in your file system. +::: + +**Options**: + +| Option | Description | Required | Default value | Example | +|-------------------|-------------------------------------------------------|----------|---------------|-----------------| +| `model_id` | The identifier of the model you want to retrieve. | Yes | - | `mistral`| +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + +## `cortex models list` +:::info +This CLI command calls the following API endpoint: +- [List Model](/api-reference#tag/models/get/v1/models) +::: +This command lists all the downloaded local and remote models. + + + +**Usage**: +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex models list [options] + + # Beta + cortex-beta models list [options] + + # Nightly + cortex-nightly models list [options] + ``` + + + ```sh + # Stable + cortex.exe models list [options] + + # Beta + cortex-beta.exe models list [options] + + # Nightly + cortex-nightly.exe models list [options] + ``` + + + +For example, it returns the following: +```bash ++---------+----------------+-----------------+---------+ +| (Index) | ID | engine | version | ++---------+----------------+-----------------+---------+ +| 1 | tinyllama-gguf | llamacpp | 1 | ++---------+----------------+-----------------+---------+ +| 2 | tinyllama | llamacpp | 1 | ++---------+----------------+-----------------+---------+ + +``` + +**Options**: + +| Option | Description | Required | Default value | Example | +|---------------------------|----------------------------------------------------|----------|---------------|----------------------| +| `-h`, `--help` | Display help for command. | No | - | `-h` | + + +## `cortex models start` +:::info +This CLI command calls the following API endpoint: +- [Start Model](/api-reference#tag/models/post/v1/models/{modelId}/start) +::: +This command starts a model defined by a `model_id`. + + + +**Usage**: +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex models start [options] + + # Beta + cortex-beta models start [options] + + # Nightly + cortex-nightly models start [options] + ``` + + + ```sh + # Stable + cortex.exe models start [options] + + # Beta + cortex-beta.exe models start [options] + + # Nightly + cortex-nightly.exe models start [options] + ``` + + + + +:::info +This command uses a `model_id` from the model that you have downloaded or available in your file system. +::: + +**Options**: + +| Option | Description | Required | Default value | Example | +|---------------------------|---------------------------------------------------------------------------|----------|----------------------------------------------|------------------------| +| `model_id` | The identifier of the model you want to start. | Yes | `Prompt to select from the available models` | `mistral` | +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + + +## `cortex models stop` +:::info +This CLI command calls the following API endpoint: +- [Stop Model](/api-reference#tag/models/post/v1/models/{modelId}/stop) +::: +This command stops a model defined by a `model_id`. + + + +**Usage**: +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex models stop + + # Beta + cortex-beta models stop + + # Nightly + cortex-nightly models stop + ``` + + + ```sh + # Stable + cortex.exe models stop + + # Beta + cortex-beta.exe models stop + + # Nightly + cortex-nightly.exe models stop + ``` + + + +:::info +This command uses a `model_id` from the model that you have started before. +::: +**Options**: + +| Option | Description | Required | Default value | Example | +|---------------------------|-----------------------------------------------------------------------------|----------|----------------------|------------------------| +| `model_id` | The identifier of the model you want to stop. | Yes | - | `mistral` | +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + +## `cortex models delete` +:::info +This CLI command calls the following API endpoint: +- [Delete Model](/api-reference#tag/models/delete/v1/models/{id}) +::: +This command deletes a local model defined by a `model_id`. + + + +**Usage**: +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex models delete + + # Beta + cortex-beta models delete + + # Nightly + cortex-nightly models delete + ``` + + + ```sh + # Stable + cortex.exe models delete + + # Beta + cortex-beta.exe models delete + + # Nightly + cortex-nightly.exe models delete + ``` + + + +:::info +This command uses a `model_id` from the model that you have downloaded or available in your file system. +::: + +**Options**: +| Option | Description | Required | Default value | Example | +|---------------------------|-----------------------------------------------------------------------------|----------|----------------------|------------------------| +| `model_id` | The identifier of the model you want to delete. | Yes | - | `mistral` | +| `-h`, `--help` | Display help for command. | No | - | `-h` | + +## `cortex models alias` +This command adds an alias to a local model that function the same as `model_id`. + + +**Usage**: +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex models alias --model_id --alias + + # Beta + cortex-beta models alias --model_id --alias + + # Nightly + cortex-nightly models alias --model_id --alias + ``` + + + ```sh + # Stable + cortex.exe models alias --model_id --alias + + # Beta + cortex-beta.exe models alias --model_id --alias + + # Nightly + cortex-nightly.exe models alias --model_id --alias + ``` + + + + +**Options**: +| Option | Description | Required | Default value | Example | +|---------------------------|-----------------------------------------------------------------------------|----------|----------------------|------------------------| +| `--model_id` | The identifier of the model. | Yes | - | `mistral` | +| `-alias` | The new identifier for the model. | Yes | - | `mistral_2` | + +## `cortex models update` +This command updates the `model.yaml` file of a local model. + + +**Usage**: +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex models update [options] + + # Beta + cortex-beta models update [options] + + # Nightly + cortex-nightly models update [options] + ``` + + + ```sh + # Stable + cortex.exe models update [options] + + # Beta + cortex-beta.exe models update [options] + + # Nightly + cortex-nightly.exe models update [options] + ``` + + + + +**Options**: +| Option | Description | Required | Default value | Example | +|---------------------------|-----------------------------------------------------------------------------|----------|----------------------|------------------------| +| `-h`, `--help` | Display help for command. | No | - | `-h` | +| `--model_id REQUIRED` | Unique identifier for the model. | Yes | - | `--model_id my_model` | +| `--name` | Name of the model. | No | - | `--name "GPT Model"` | +| `--model` | Model type or architecture. | No | - | `--model GPT-4` | +| `--version` | Version of the model to use. | No | - | `--version 1.2.0` | +| `--stop` | Stop token to terminate generation. | No | - | `--stop ""` | +| `--top_p` | Sampling parameter for nucleus sampling. | No | - | `--top_p 0.9` | +| `--temperature` | Controls randomness in generation. | No | - | `--temperature 0.8` | +| `--frequency_penalty` | Penalizes repeated tokens based on frequency. | No | - | `--frequency_penalty 0.5` | +| `--presence_penalty` | Penalizes repeated tokens based on presence. | No | `0.0` | `--presence_penalty 0.6` | +| `--max_tokens` | Maximum number of tokens to generate. | No | - | `--max_tokens 1500` | +| `--stream` | Stream output tokens as they are generated. | No | `false` | `--stream true` | +| `--ngl` | Number of generations in parallel. | No | - | `--ngl 4` | +| `--ctx_len` | Maximum context length in tokens. | No | - | `--ctx_len 1024` | +| `--engine` | Compute engine for running the model. | No | - | `--engine CUDA` | +| `--prompt_template` | Template for the prompt structure. | No | - | `--prompt_template "###"` | +| `--system_template` | Template for system-level instructions. | No | - | `--system_template "SYSTEM"` | +| `--user_template` | Template for user inputs. | No | - | `--user_template "USER"` | +| `--ai_template` | Template for AI responses. | No | - | `--ai_template "ASSISTANT"` | +| `--os` | Operating system environment. | No | - | `--os Ubuntu` | +| `--gpu_arch` | GPU architecture specification. | No | - | `--gpu_arch A100` | +| `--quantization_method` | Quantization method for model weights. | No | - | `--quantization_method int8` | +| `--precision` | Floating point precision for computations. | No | `float32` | `--precision float16` | +| `--tp` | Tensor parallelism. | No | - | `--tp 4` | +| `--trtllm_version` | Version of the TRTLLM library. | No | - | `--trtllm_version 2.0` | +| `--text_model` | The model used for text generation. | No | - | `--text_model llama2` | +| `--files` | File path or resources associated with the model. | No | - | `--files config.json` | +| `--created` | Creation date of the model. | No | - | `--created 2024-01-01` | +| `--object` | The object type (e.g., model or file). | No | - | `--object model` | +| `--owned_by` | The owner or creator of the model. | No | - | `--owned_by "Company"` | +| `--seed` | Seed for random number generation. | No | - | `--seed 42` | +| `--dynatemp_range` | Range for dynamic temperature scaling. | No | - | `--dynatemp_range 0.7-1.0` | +| `--dynatemp_exponent` | Exponent for dynamic temperature scaling. | No | - | `--dynatemp_exponent 1.2` | +| `--top_k` | Top K sampling to limit token selection. | No | - | `--top_k 50` | +| `--min_p` | Minimum probability threshold for tokens. | No | - | `--min_p 0.1` | +| `--tfs_z` | Token frequency selection scaling factor. | No | - | `--tfs_z 0.5` | +| `--typ_p` | Typicality-based token selection probability. | No | - | `--typ_p 0.9` | +| `--repeat_last_n` | Number of last tokens to consider for repetition penalty. | No | - | `--repeat_last_n 64` | +| `--repeat_penalty` | Penalty for repeating tokens. | No | - | `--repeat_penalty 1.2` | +| `--mirostat` | Mirostat sampling method for stable generation. | No | - | `--mirostat 1` | +| `--mirostat_tau` | Target entropy for Mirostat. | No | - | `--mirostat_tau 5.0` | +| `--mirostat_eta` | Learning rate for Mirostat. | No | - | `--mirostat_eta 0.1` | +| `--penalize_nl` | Penalize new lines in generation. | No | `false` | `--penalize_nl true` | +| `--ignore_eos` | Ignore the end of sequence token. | No | `false` | `--ignore_eos true` | +| `--n_probs` | Number of probability outputs to return. | No | - | `--n_probs 5` | + +## `cortex models import` +This command imports the local model using the model's `gguf` file. + + +**Usage**: +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex models import --model_id --model_path + + # Beta + cortex-beta models import --model_id --model_path + + # Nightly + cortex-nightly models import --model_id --model_path + ``` + + + ```sh + # Stable + cortex.exe models import --model_id --model_path + + # Beta + cortex-beta.exe models import --model_id --model_path + + # Nightly + cortex-nightly.exe models import --model_id --model_path + ``` + + + + +**Options**: +| Option | Description | Required | Default value | Example | +|---------------------------|-----------------------------------------------------------------------------|----------|----------------------|------------------------| +| `-h`, `--help` | Display help for command. | No | - | `-h` | +| `--model_id` | The identifier of the model. | Yes | - | `mistral` | +| `--model_path` | The path of the model source file. | Yes | - | `/path/to/your/model.gguf` | \ No newline at end of file diff --git a/docs/docs/cli/models/list.md b/docs/docs/cli/models/list.md new file mode 100644 index 000000000..5cafd8d57 --- /dev/null +++ b/docs/docs/cli/models/list.md @@ -0,0 +1,40 @@ +--- +title: Cortex Models List +description: Cortex models subcommands. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex models list` + +This command lists all local and remote models. + + + +## Usage + +```bash +cortex models list [options] +``` +For example, it returns the following: +```bash ++---------+----------------+----------------+-----------------+---------+ +| (Index) | ID | model alias | engine | version | ++---------+----------------+----------------+-----------------+---------+ +| 1 | llama3:gguf | llama3:gguf | llama-cpp | 1 | ++---------+----------------+----------------+-----------------+---------+ +| 2 | tinyllama:gguf | tinyllama:gguf | llama-cpp | 1 | ++---------+----------------+----------------+-----------------+---------+ + +``` + +## Options + +| Option | Description | Required | Default value | Example | +|---------------------------|----------------------------------------------------|----------|---------------|----------------------| +| `-f`, `--format ` | Specify output format for the models list. | No | `json` | `-f json` | +| `-h`, `--help` | Display help for command. | No | - | `-h` | + + diff --git a/docs/docs/cli/models/remove.md b/docs/docs/cli/models/remove.md new file mode 100644 index 000000000..83fc32a54 --- /dev/null +++ b/docs/docs/cli/models/remove.md @@ -0,0 +1,31 @@ +--- +title: Cortex Models Remove +description: Cortex models subcommands. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex models remove` + +This command deletes a local model defined by a `model_id`. + + + +## Usage + +```bash +cortex models remove +``` +:::info +This command uses a `model_id` from the model that you have downloaded or available in your file system. +::: +## Options +| Option | Description | Required | Default value | Example | +|---------------------------|-----------------------------------------------------------------------------|----------|----------------------|------------------------| +| `model_id` | The identifier of the model you want to remove. | Yes | - | `mistral` | +| `-h`, `--help` | Display help for command. | No | - | `-h` | + + + diff --git a/docs/docs/cli/models/start.md b/docs/docs/cli/models/start.md new file mode 100644 index 000000000..892ea01ed --- /dev/null +++ b/docs/docs/cli/models/start.md @@ -0,0 +1,45 @@ +--- +title: Cortex Models Start +description: Cortex models subcommands. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex models start` + +This command starts a model defined by a `model_id`. + + + +## Usage + +```bash +# Start a model +cortex models start [model_id] + +# Start a model with a preset +cortex models start [model_id] [options] + +# Start with a specified engine +cortex models start [model_id]:[engine] [options] +``` + + +:::info +- This command uses a `model_id` from the model that you have downloaded or available in your file system. +- Model preset is applied only at the start of the model and does not change during the chat session. +::: + +## Options + +| Option | Description | Required | Default value | Example | +|---------------------------|---------------------------------------------------------------------------|----------|----------------------------------------------|------------------------| +| `model_id` | The identifier of the model you want to start. | No | `Prompt to select from the available models` | `mistral` | +| `-a`, `--attach` | Attach to an interactive chat session. | No | `false` | `-a` | +| `-p`, `--preset ` | Apply a chat preset to the chat session. | No | `false` | `-p friendly` | +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + + + diff --git a/docs/docs/cli/models/stop.md b/docs/docs/cli/models/stop.md new file mode 100644 index 000000000..56e4f156e --- /dev/null +++ b/docs/docs/cli/models/stop.md @@ -0,0 +1,32 @@ +--- +title: Cortex Models Stop +description: Cortex models subcommands. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex models stop` + +This command stops a model defined by a `model_id`. + + + +## Usage + +```bash +cortex models stop +``` +:::info +- This command uses a `model_id` from the model that you have started before. +::: +## Options + +| Option | Description | Required | Default value | Example | +|---------------------------|-----------------------------------------------------------------------------|----------|----------------------|------------------------| +| `model_id` | The identifier of the model you want to stop. | Yes | - | `mistral` | +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + + + diff --git a/docs/docs/cli/models/update.md b/docs/docs/cli/models/update.md new file mode 100644 index 000000000..57faac1f6 --- /dev/null +++ b/docs/docs/cli/models/update.md @@ -0,0 +1,33 @@ +--- +title: Cortex Models Update +description: Cortex models subcommands. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex models update` + +This command updates a model configuration defined by a `model_id`. + + + +## Usage + +```bash +cortex models update [options] +``` +:::info +This command uses a `model_id` from the model that you have downloaded or available in your file system. +::: +## Options + +| Option | Description | Required | Default value | Example | +|-----------------------------|-------------------------------------------------------------------------------------------------------|----------|----------------------|-----------------------------------------------------------| +| `model_id` | The identifier of the model you want to update. | Yes | - | `mistral` | +| `-c`, `--options ` | Specify the options to update the model. Syntax: `-c option1=value1 option2=value2`. | Yes | - | `-c max_tokens=100 temperature=0.5` | +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + + + diff --git a/docs/docs/cli/presets.mdx b/docs/docs/cli/presets.mdx new file mode 100644 index 000000000..f814028bb --- /dev/null +++ b/docs/docs/cli/presets.mdx @@ -0,0 +1,27 @@ +--- +title: Cortex Presets +description: Cortex presets command. +slug: "presets" +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex presets` + +This command shows all the available presets within Cortex. + + + +## Usage + +```bash +cortex presets +``` + +## Options + +| Option | Description | Required | Default value | Example | +|-------------------|-------------------------------------------------------|----------|---------------|-------------| +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | \ No newline at end of file diff --git a/docs/docs/cli/ps.mdx b/docs/docs/cli/ps.mdx new file mode 100644 index 000000000..2641a388f --- /dev/null +++ b/docs/docs/cli/ps.mdx @@ -0,0 +1,65 @@ +--- +title: Cortex Ps +description: Cortex ps command. +slug: "ps" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex ps` + +This command shows the running model and its status. + + + +## Usage +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex ps [options] + + # Beta + cortex-beta ps [options] + + # Nightly + cortex-nightly ps [options] + ``` + + + ```sh + # Stable + cortex.exe ps [options] + + # Beta + cortex-beta.exe ps [options] + + # Nightly + cortex-nightly.exe ps [options] + ``` + + + + +For example, it returns the following table: + +```bash ++----------------+-----------+----------+-----------+-----------+ +| Model | Engine | RAM | VRAM | Up time | ++----------------+-----------+----------+-----------+-----------+ +| tinyllama:gguf | llama-cpp | 35.16 MB | 601.02 MB | 5 seconds | ++----------------+-----------+----------+-----------+-----------+ +``` +## Options + +| Option | Description | Required | Default value | Example | +|-------------------|-------------------------------------------------------|----------|---------------|-------------| +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | \ No newline at end of file diff --git a/docs/docs/cli/pull.mdx b/docs/docs/cli/pull.mdx new file mode 100644 index 000000000..df1f3917d --- /dev/null +++ b/docs/docs/cli/pull.mdx @@ -0,0 +1,61 @@ +--- +title: Cortex Pull +description: Cortex CLI. +slug: "pull" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex pull` +:::info +This CLI command calls the following API endpoint: +- [Download Model](/api-reference#tag/models/post/v1/models/{modelId}/pull) +::: +This command downloads models from supported [model repositories](/docs/model-sources). + +The downloaded model will be stored in the Cortex folder in your home data directory. + + +## Usage +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex pull [options] + + # Beta + cortex-beta pull [options] + + # Nightly + cortex-nightly pull [options] + ``` + + + ```sh + # Stable + cortex.exe pull [options] + + # Beta + cortex-beta.exe pull [options] + + # Nightly + cortex-nightly.exe pull [options] + ``` + + + + +## Options + +| Option | Description | Required | Default value | Example | +| -------------- | ------------------------------------------------- | -------- | ------------- | ----------- | +| `model_id` | The identifier of the model you want to download. | Yes | - | `mistral` | +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | diff --git a/docs/docs/cli/run.mdx b/docs/docs/cli/run.mdx new file mode 100644 index 000000000..786b5cb0c --- /dev/null +++ b/docs/docs/cli/run.mdx @@ -0,0 +1,81 @@ +--- +title: Cortex Run +description: Cortex run command +slug: "run" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex run` +:::info +This CLI command calls the following API endpoint: +- [Download Model](/api-reference#tag/models/post/v1/models/pull) (The command only calls this endpoint if the specified model is not downloaded yet.) +- Install Engine (The command only calls this endpoint if the specified engine is not downloaded yet.) +- [Start Model](/api-reference#tag/models/post/v1/models/start) +::: + +This command facilitates the initiation of starting a specified machine-learning model. + +## Usage +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex [options] :[engine] + + # Beta + cortex-beta [options] :[engine] + + # Nightly + cortex-nightly [options] :[engine] + ``` + + + ```sh + # Stable + cortex.exe [options] :[engine] + + # Beta + cortex-beta.exe [options] :[engine] + + # Nightly + cortex-nightly.exe [options] :[engine] + ``` + + + +### `model_id` +You can use the [Built-in models](/docs/hub/cortex-hub) or Supported [HuggingFace models](/docs/hub/hugging-face). + +:::info +This command downloads and installs the model if not already available in your file system, then starts it for interaction. +::: + + +## Options + +| Option | Description | Required | Default value | Example | +|-----------------------------|-----------------------------------------------------------------------------|----------|----------------------------------------------|------------------------| +| `model_id` | The identifier of the model you want to chat with. | Yes | `Prompt to select from the available models` | `mistral` | +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + + + + +## Command Chain + +`cortex run` command is a convenience wrapper that automatically executes a sequence of commands to simplify user interactions: + +1. [`cortex pull`](/docs/cli/models/): This command pulls the specified model if the model is not yet downloaded. +2. [`cortex engines install`](/docs/cli/engines/): This command installs the specified engines if not yet downloaded. +3. [`cortex models start`](/docs/cli/models/): This command starts the specified model, making it active and ready for interactions. diff --git a/docs/docs/cli/serve.md b/docs/docs/cli/serve.md new file mode 100644 index 000000000..d7193e3c8 --- /dev/null +++ b/docs/docs/cli/serve.md @@ -0,0 +1,35 @@ +--- +title: Cortex Serve +description: Cortex serve command. +slug: "serve" +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex serve` + +This command runs the API endpoint server for the Cortex back-end. + + + +## Usage + +```bash +# Start the API server +cortex serve [options] +# Stop the API server +cortex serve [options] stop +``` + +## Options + +| Option | Description | Required | Default Value | Example | +|----------------------------|-------------------------------------------|----------|---------------|------------------------| +| `-a`, `--address
` | Specify the address to use. | No | `localhost` | `-a 192.168.1.1`| +| `-p`, `--port ` | Define the port to serve the application. | No | `3928` | `-p 8080` | +| `-d`, `--detach` | Run the server in detached mode. | No | `false` | `-d` | +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + + diff --git a/docs/docs/cli/start.mdx b/docs/docs/cli/start.mdx new file mode 100644 index 000000000..c180908eb --- /dev/null +++ b/docs/docs/cli/start.mdx @@ -0,0 +1,60 @@ +--- +title: Cortex Start +description: Cortex CLI. +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# Start +:::info +This is the initial command you need to run to start using Cortex.cpp. +::: + +This command start the Cortex.cpp's API server processes. + +## Usage +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex start [options] + + # Beta + cortex-beta start [options] + + # Nightly + cortex-nightly start [options] + ``` + + + ```sh + # Stable + cortex.exe start [options] + + # Beta + cortex-beta.exe start [options] + + # Nightly + cortex-nightly.exe start [options] + ``` + + + + +## Options + +| Option | Description | Required | Default value | Example | +| ---------------------------- | ----------------------------------------- | -------- | ------------- | ----------------------------- | +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | +| `-p`, `--port ` | Port to serve the application. | No | - | `-p 39281` | + + + diff --git a/docs/docs/cli/stop.mdx b/docs/docs/cli/stop.mdx new file mode 100644 index 000000000..48c4eec31 --- /dev/null +++ b/docs/docs/cli/stop.mdx @@ -0,0 +1,59 @@ +--- +title: Cortex Stop +description: Cortex stop command. +slug: "stop" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex stop` +:::info +This CLI command calls the following API endpoint: +- [Stop Cortex](/api-reference#tag/system/delete/v1/system) +::: +This command stops the API server. + + + +## Usage +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex stop [options] + + # Beta + cortex-beta stop [options] + + # Nightly + cortex-nightly stop [options] + ``` + + + ```sh + # Stable + cortex.exe stop [options] + + # Beta + cortex-beta.exe stop [options] + + # Nightly + cortex-nightly.exe stop [options] + ``` + + + + +## Options + +| Option | Description | Required | Default value | Example | +|-------------------|-------------------------------------------------------|----------|---------------|-------------| +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | diff --git a/docs/docs/cli/telemetry.mdx b/docs/docs/cli/telemetry.mdx new file mode 100644 index 000000000..50dd2712a --- /dev/null +++ b/docs/docs/cli/telemetry.mdx @@ -0,0 +1,31 @@ +--- +title: Cortex Telemetry +description: Cortex telemetry command. +slug: "telemetry" +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex telemetry` + +This command is used to fetch telemetry logs, providing vital data for assessing the cortex's performance, usage, and health. + + + +## Usage + +```bash +cortex telemetry [options] +``` + +## Options + +| Option | Description | Required | Default value | Example | +|----------------------|------------------------------------------------------|----------|---------------|----------------------| +| `-t`, `--type` | Configure the type of the telemetry log you want to get. Currently, only `crash`. | No | `crash` | `-t crash` | +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | + + + diff --git a/docs/docs/cli/update.mdx b/docs/docs/cli/update.mdx new file mode 100644 index 000000000..f54d554cc --- /dev/null +++ b/docs/docs/cli/update.mdx @@ -0,0 +1,63 @@ +--- +title: Cortex Update +description: Cortex update command. +slug: "update" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +# `cortex update` + +This command updates Cortex.cpp to the provided version or the latest version. + + + +## Usage +:::info +You can use the `--verbose` flag to display more detailed output of the internal processes. To apply this flag, use the following format: `cortex --verbose [subcommand]`. +::: + + + ```sh + # Stable + cortex update [options] + + # Beta + cortex-beta update [options] + + # Nightly + cortex-nightly update [options] + ``` + + + ```sh + # Stable + cortex.exe update [options] + + # Beta + cortex-beta.exe update [options] + + # Nightly + cortex-nightly.exe update [options] + ``` + + + +:::info +By default, if no version is specified, Cortex.cpp will be updated to the latest version. +::: + +## Options + +| Option | Description | Required | Default Value | Example | +|----------------------------|-------------------------------------------|----------|---------------|------------------------| +| `-h`, `--help` | Display help information for the command. | No | - | `-h` | +| `-v` | Specify the version of the Cortex. | No | - | `-v 0.5.0`| + + + diff --git a/docs/docs/cortex-cpp.md b/docs/docs/cortex-cpp.md new file mode 100644 index 000000000..9612164f1 --- /dev/null +++ b/docs/docs/cortex-cpp.md @@ -0,0 +1,62 @@ +--- +title: Cortex.cpp +description: Cortex.cpp Architecture +slug: "cortex-cpp" +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +Cortex.cpp is a Local AI engine that is used to run and customize LLMs. Cortex can be deployed as a standalone server, or integrated into apps like [Jan.ai](https://jan.ai/) + +Cortex's roadmap is to eventually support full OpenAI API-equivalence. + +It includes a Drogon server, with request queues, model orchestration logic, and hardware telemetry, and more, for prod environments. + +This guide walks you through how Cortex.cpp is designed, the codebase structure, and future plans. + +## Usage + +See [Quickstart](/docs/quickstart) + +## Interface + +## Architecture + +## Code Structure + +```md +β”œβ”€β”€ app/ +β”‚ β”‚ β”œβ”€β”€ controllers/ +β”‚ β”‚ β”œβ”€β”€ models/ +β”‚ β”‚ β”œβ”€β”€ services/ +β”‚ β”‚ β”œβ”€β”€ ?engines/ +β”‚ β”‚ β”‚ β”œβ”€β”€ llama.cpp +β”‚ β”‚ β”‚ β”œβ”€β”€ tensorrt-llm +β”‚ β”‚ β”‚ └── ... +β”‚ β”‚ └── ... +β”‚ β”œβ”€β”€ CMakeLists.txt +β”‚ β”œβ”€β”€ config.json +β”‚ β”œβ”€β”€ Dockerfile +β”‚ β”œβ”€β”€ docker-compose.yml +β”‚ β”œβ”€β”€ README.md +β”‚ └── ... +``` + +`cortex-cpp` folder contains stateless implementations, most of which call into `llamacpp` and `tensorrt-llm`, depending on the engine at runtime. + +Here you will find the implementations for stateless endpoints: + +- `/chat/completion` +- `/audio` +- `/fine_tuning` +- `/embeddings` +- `/load_model` +- `/unload_model` + +And core hardware and model management logic like CPU instruction set detection, and multiple model loading logic. + +## Runtime + +## Roadmap diff --git a/docs/docs/cortex-llamacpp.mdx b/docs/docs/cortex-llamacpp.mdx new file mode 100644 index 000000000..82e51a7a8 --- /dev/null +++ b/docs/docs/cortex-llamacpp.mdx @@ -0,0 +1,191 @@ +--- +title: llama.cpp +description: llamacpp Architecture +slug: "cortex-llamacpp" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +:::info +`llamacpp` is formerly called "Nitro". +::: + +## Introduction + +`llamacpp` is a C++ inference library that any server can load at runtime. It submodules (and occasionally upstreams) [llama.cpp](https://github.com/ggerganov/llama.cpp) for GGUF inference. llama.cpp runs on CPU and GPU, and is optimized for inference. + +In addition to `llama.cpp`, `llamacpp` adds: + +- Model orchestration, like model warm-up and concurrent models. + +:::warning +`llamacpp` is bundled by default in our product, [Jan](https://jan.ai/docs) and [Cortex](/docs). +::: + +## Usage +```sh +cortex engines llama.cpp init +``` +The command will check, download, and install these dependencies: + + + ``` + - engine.dll + - Cuda 11.7: + - cublas64_11.dll + - cublasLt64_11.dll + - cudart64_110.dll + - Cuda 12.2 + - cublas64_12.dll + - cublasLt64_12.dll + - cudart64_12.dll + - cudnn_ops_infer64_8.dll + - cudnn64_8.dll + - Cuda 12.4 + - cublas64_12.dll + - cublasLt64_12.dll + - cudart64_12.dll + - nvrtc64_120_0.dll + - MSBuild libraries: + - msvcp140.dll + - vcruntime140.dll + - vcruntime140_1.dll + ``` + + + ``` + - libengine.so + - Cuda 11.7: + - libcublas.so.11 + - libcublasLt.so.11 + - libcudart.so.11.0 + - Cuda 12.2: + - libcublas.so.12 + - libcublasLt.so.12 + - libcudart.so.12 + - Cuda 12.4: + - libcublasLt.so.12 + - libcublas.so.12 + ``` + + + ``` + - libengine.dylib + ``` + + +:::info +To include `llamacpp` in your own server implementation, follow the steps [here](https://github.com/janhq/llamacpp/tree/main/examples/server). +::: + +#### Get GGUF Models + +You can download precompiled models from the [Cortex Hub](https://huggingface.co/cortexso) on Hugging Face. These models include configurations, tokenizers, and dependencies tailored for optimal performance with this engine. + + +## Interface + +`llamacpp` has the following Interfaces: + +- **HandleChatCompletion:** Processes chat completion tasks. + ```cpp + void HandleChatCompletion( + std::shared_ptr jsonBody, + std::function&& callback); + ``` +- **HandleEmbedding:** Generates embeddings for the input data provided. + ```cpp + void HandleEmbedding( + std::shared_ptr jsonBody, + std::function&& callback); + ``` +- **LoadModel:** Loads a model based on the specifications. + ```cpp + void LoadModel( + std::shared_ptr jsonBody, + std::function&& callback); + ``` +- **UnloadModel:** Unloads a model as specified. + ```cpp + void UnloadModel( + std::shared_ptr jsonBody, + std::function&& callback); + ``` +- **GetModelStatus:** Retrieves the status of a model. + ```cpp + void GetModelStatus( + std::shared_ptr jsonBody, + std::function&& callback); + ``` + All the interfaces above contain the following parameters: + +| Parameter | Description | +| ---------- | ---------------------------------------- | +| `jsonBody` | The requested content is in JSON format. | +| `callback` | A function that handles the response. | + +## Architecture + +import Diagram from "../src/components/Diagram" + + + +### Main Components + +`llamacpp` is architected with several key components: + +- **enginei**: An engine interface definition that extends to all engines, handling endpoint logic and facilitating communication between `cortex.cpp` and `llama engine`. +- **llama engine**: Exposes APIs for embedding and inference. It loads and unloads models and simplifies API calls to `llama.cpp`. +- **llama.cpp**: Submodule from the `llama.cpp` repository that provides the core functionality for embeddings and inferences. +- **llama server context**: A wrapper offers a more straightforward and user-friendly interface for `llama.cpp` APIs + +### Communication Protocols + + + +The diagram above illustrates how `llamacpp` communication protocol works: + +- `Streaming`: Responses are processed and returned one token at a time. +- `RESTful`: The response is processed as a whole. After the llama server context completes the entire process, a single result returns to `cortex.cpp`. + +## Code Structure + +``` +. +β”œβ”€β”€ base # Engine interface definition +| └── cortex-common # Common interfaces used for all engines +| └── enginei.h # Define abstract classes and interface methods for engines +β”œβ”€β”€ examples # Server example to integrate engine +β”‚ └── server.cc # Example server demonstrating engine integration +β”œβ”€β”€ llama.cpp # Upstream llama.cpp repository +β”‚ └── (files from upstream llama.cpp) +β”œβ”€β”€ src # Source implementation for llama.cpp +β”‚ β”œβ”€β”€ chat_completion_request.h # OpenAI compatible request handling +β”‚ β”œβ”€β”€ llama_client_slot # Manage vector of slots for parallel processing +β”‚ β”œβ”€β”€ llama_engine # Implementation of llamacpp engine for model loading and inference +β”‚ β”œβ”€β”€ llama_server_context # Context management for chat completion requests +β”‚ β”‚ β”œβ”€β”€ slot # Struct for slot management +β”‚ β”‚ └── llama_context # Struct for llama context management +| | └── chat_completion # Struct for chat completion management +| | └── embedding # Struct for embedding management +β”œβ”€β”€ third-party # Dependencies of the llamacpp project +β”‚ └── (list of third-party dependencies) +``` + + + +## Roadmap + +The future plans for `llamacpp` are focused on enhancing performance and expanding capabilities. Key areas of improvement include: + +- **Performance Enhancements**: Optimizing speed and reducing memory usage to ensure efficient processing of tasks. +- **Multimodal Model Compatibility**: Expanding support to include a variety of multimodal models, enabling a broader range of applications and use cases. + +:::info +To follow the latest developments of `llamacpp`, please see the [GitHub Repository](https://github.com/janhq/llamacpp). +::: diff --git a/docs/docs/cortex-onnx.mdx b/docs/docs/cortex-onnx.mdx new file mode 100644 index 000000000..1720c6e3a --- /dev/null +++ b/docs/docs/cortex-onnx.mdx @@ -0,0 +1,258 @@ +--- +title: ONNX +description: Onnx Architecture +slug: "cortex-onnx" +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +## Introduction +Cortex.onnx is a C++ inference library for Windows that relies on [onnxruntime-genai](https://github.com/microsoft/onnxruntime-genai), utilizing DirectML for hardware acceleration. [DirectML](https://github.com/microsoft/DirectML) is a high-performance DirectX 12 library for machine learning, providing GPU acceleration across various hardware and drivers, including AMD, Intel, NVIDIA, and Qualcomm GPUs. It integrates and sometimes upstreams [onnxruntime-genai](https://github.com/microsoft/onnxruntime-genai) for inference tasks. + + +:::info +The current valid combinations for executor and precision are: +- FP32 CPU +- FP32 CUDA +- FP16 CUDA +- FP16 DML +- INT4 CPU +- INT4 CUDA +- INT4 DML +::: + +## Usage +```sh +cortex engines onnx init +``` +The command will check, download, and install these dependencies for Windows: +``` +- engine.dll +- D3D12Core.dll +- DirectML.dll +- onnxruntime.rel.dll +- onnxruntime-genai.dll +- MSBuild libraries: + - msvcp140.dll + - vcruntime140.dll + - vcruntime140_1.dll +``` +:::info +To include `onnx` in your own server implementation, follow the steps [here](https://github.com/janhq/onnx/tree/main/examples/server). +::: + +#### Get ONNX Models +You can download precompiled ONNX models from the [Cortex Hub](https://huggingface.co/cortexso) on Hugging Face. These models include configurations, tokenizers, and dependencies tailored for optimal performance with the `onnx` engine. + + +## Interface + +`onnx` has the following Interfaces: + +- **HandleChatCompletion:** Processes chat completion tasks. + ```cpp + void HandleChatCompletion( + std::shared_ptr json_body, + std::function&& callback); + ``` +- **LoadModel:** Loads a model based on the specifications. + ```cpp + void LoadModel( + std::shared_ptr json_body, + std::function&& callback); + ``` +- **UnloadModel:** Unloads a model as specified. + ```cpp + void UnloadModel( + std::shared_ptr json_body, + std::function&& callback); + ``` +- **GetModelStatus:** Retrieves the status of a model. + ```cpp + void GetModelStatus( + std::shared_ptr json_body, + std::function&& callback); + ``` +All the interfaces above contain the following parameters: + +| Parameter | Description | +|------------|------------------------------------------------| +| `jsonBody` | The requested content is in JSON format. | +| `callback` | A function that handles the response. | + + +## Architecture +import Diagram from "../src/components/Diagram" + + + +### Main Components +These are the main components that interact to provide an API for `inference` tasks using the `onnxruntime-genai` library: +- **cortex-cpp**: Responsible for handling API requests and responses. +- **enginei**: Engine interface for inference. +- **onnx**: It makes APIs accessible through an engine interface, allowing others to use its features easily. +- **onnx_engine**: Exposes APIs for inference. It loads and unloads models and simplifies API calls to **`onnxruntime_genai`**. +- **onnxruntime_genai**: A submodule from the **`onnxruntime_genai`** repository that provides the core functionality for inferences. + +### Communication Protocols + +#### Load a Model +```mermaid +sequenceDiagram + participant JS as Cortex-JS + participant CPP as Cortex-CPP + participant ONNX as Cortex.onnx + + JS->>CPP: HTTP request load model + CPP->>CPP: Load engine + CPP->>ONNX: Load model + ONNX->>ONNX: Cache chat template + ONNX->>ONNX: Create onnx model + ONNX->>ONNX: Create tokenizer + ONNX-->>CPP: Callback + CPP-->>JS: HTTP response + +``` + +The diagram above illustrates the interaction between three components: `cortex-js`, `cortex-cpp`, and `onnx` when using the `onnx` engine in Cortex: + +1. **HTTP Request from cortex-js to cortex-cpp**: + - `cortex-js` sends an HTTP request to `cortex-cpp` to load a model. + +2. **Engine Loading in cortex-cpp**: + - Upon receiving the HTTP request, `cortex-cpp` initiates the loading of the engine. + +3. **Model Loading from cortex-cpp to onnx**: + - `cortex-cpp` then requests `onnx` to load the model. + +4. **Model Preparation in onnx**: + - `onnx` performs the following tasks: + - **Create Tokenizer**: Initializes a tokenizer for the model. + - **Create ONNX Model**: Sets up the ONNX model for inference. + - **Cache Chat Template**: Caches the chat template for future use. + +5. **Callback from onnx to cortex-cpp**: + - Once the model is loaded and ready, `onnx` sends a callback to `cortex-cpp` to indicate the completion of the model loading process. + +6. **HTTP Response from cortex-cpp to cortex-js**: + - `cortex-cpp` sends an HTTP response back to `cortex-js`, indicating that the model has been successfully loaded and is ready for use. + +#### Stream Inference +```mermaid +sequenceDiagram + participant JS as Cortex-JS + participant CPP as Cortex-CPP + participant ONNX as Cortex.onnx + + JS->>CPP: HTTP request chat completion + CPP->>ONNX: Request chat completion + ONNX->>ONNX: Apply chat template + ONNX->>ONNX: Encode + ONNX->>ONNX: Set search options + ONNX->>ONNX: Create generator + loop Wait for done + ONNX->>ONNX: Compute logits + ONNX->>ONNX: Generate next token + ONNX->>ONNX: Decode new token + ONNX-->>CPP: Callback + CPP-->>JS: HTTP stream response + end + +``` + +The diagram above illustrates the interaction between three components: `cortex-js`, `cortex-cpp`, and `onnx` when using the `onnx` engine to call the `chat completions endpoint` with the stream inference option: + +1. **HTTP Request from cortex-js to `cortex-cpp`**: + - `cortex-js` sends an HTTP request to `cortex-cpp` for chat completion. + +2. **Request Chat Completion from `cortex-cpp` to `onnx`**: + - `cortex-cpp` forwards the request to `onnx` to process the chat completion. + +3. **Chat Processing in `onnx`**: + - `onnx` performs the following tasks: + - **Apply Chat Template**: Applies the chat template. + - **Encode**: Encodes the input data. + - **Set Search Options**: Configures search options for inference. + - **Create Generator**: Creates a generator for token generation. + +4. **Token Generation in `onnx`**: + - `onnx` executes the following steps in a loop to generate the response: + - **Compute Logits**: Computes the logits. + - **Generate Next Token**: Generates the next token. + - **Decode New Token**: Decodes the newly generated token. + +5. **Callback from `onnx` to `cortex-cpp`**: + - Once a token is generated, `onnx` sends a callback to `cortex-cpp`. + +6. **HTTP Stream Response from `cortex-cpp` to `cortex-js`**: + - `cortex-cpp` streams the response back to `cortex-js` as the tokens are generated. + +7. **Wait for Done in `cortex-js`**: + - `cortex-js` waits until the entire response is received and the process is completed. + +#### Non-stream Inference + +```mermaid +sequenceDiagram + participant JS as Cortex-JS + participant CPP as Cortex-CPP + participant ONNX as Cortex.onnx + + JS->>CPP: HTTP request chat completion + CPP->>ONNX: Request chat completion + ONNX->>ONNX: Apply chat template + ONNX->>ONNX: Encode + ONNX->>ONNX: Set search options + ONNX->>ONNX: Create generator + ONNX->>ONNX: Generate output + ONNX->>ONNX: Decode output + ONNX-->>CPP: Callback + CPP-->>JS: HTTP response + +``` +The diagram above illustrates the interaction between three components: `cortex-js`, `cortex-cpp`, and `onnx` when using the `onnx` engine to call the `chat completions endpoint` with the non-stream inference option: + +1. **HTTP Request from `cortex-js` to `cortex-cpp`**: + - `cortex-js` sends an HTTP request to `cortex-cpp` for chat completion. + +2. **Request Chat Completion from `cortex-cpp` to `onnx`**: + - `cortex-cpp` forwards the request to `onnx` to process the chat completion. + +3. **Chat Processing in `onnx`**: + - `onnx` performs the following tasks: + - **Apply Chat Template**: Applies the chat template. + - **Encode**: Encodes the input data. + - **Set Search Options**: Configures search options for inference. + - **Create Generator**: Creates a generator to process the request. + +4. **Output Generation in `onnx`**: + - `onnx` executes the following steps to generate the response: + - **Generate Output**: Generates the output based on the processed data. + - **Decode Output**: Decodes the generated output. + +5. **Callback from `onnx` to `cortex-cpp`**: + - Once the output is generated and ready, `onnx` sends a callback to `cortex-cpp` to indicate the completion of the chat completion process. + +6. **HTTP Response from `cortex-cpp` to `cortex-js`**: + - `cortex-cpp` sends an HTTP response back to `cortex-js`, providing the generated output. + +## Code Structure +``` +. +β”œβ”€β”€ base # Engine interface definition +| └── cortex-common # Common interfaces used for all engines +| └── enginei.h # Define abstract classes and interface methods for engines +β”œβ”€β”€ examples # Server example to integrate engine +β”‚ └── server.cc # Example server demonstrating engine integration +β”œβ”€β”€ onnxruntime-genai +β”‚ └── (files from upstream onnxruntime-genai) +β”œβ”€β”€ src # Source implementation for onnx engine +β”‚ β”œβ”€β”€ chat_completion_request.h # OpenAI compatible request handling +β”‚ β”œβ”€β”€ onnx_engine.h # Implementation onnx engine of model loading and inference +| β”œβ”€β”€ onnx_engine.cc +β”œβ”€β”€ third-party # Dependencies of the onnx project + └── (list of third-party dependencies) + +``` diff --git a/docs/docs/cortex-platform/about.mdx b/docs/docs/cortex-platform/about.mdx new file mode 100644 index 000000000..3516fab2d --- /dev/null +++ b/docs/docs/cortex-platform/about.mdx @@ -0,0 +1,27 @@ +--- +title: About +description: Cortex Platform Overview. +slug: /cortex-platform +--- + +import OAICoverage from "@site/src/components/OAICoverage" +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +# Cortex Platform + +:::warning +🚧 Cortex Platform is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +## OpenAI API Equivalence + +Cortex's roadmap is to eventually support full [OpenAI API](https://platform.openai.com/docs/api-reference) equivalence. + +Our goal is to help developers to build applications with on-device AI and with a fully open-source stack. + +Cortex is currently compatible with the following OpenAI API endpoints: +- [/chat/completions](/api-reference#tag/inference/post/v1/chat/completions) +- [/embeddings](/api-reference#tag/embeddings/post/v1/embeddings) + +> \ No newline at end of file diff --git a/docs/docs/cortex-platform/benchmarking.mdx b/docs/docs/cortex-platform/benchmarking.mdx new file mode 100644 index 000000000..2dcd90f58 --- /dev/null +++ b/docs/docs/cortex-platform/benchmarking.mdx @@ -0,0 +1,57 @@ +--- +title: Benchmarking +description: Cortex Benchmarking Feature +slug: "benchmarking" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex Platform is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +Benchmark is a feature to benchmark and analyze the performance of a specific AI model in your hardware system. This will determine how the hardware impacts the model's response time and overall throughput in different scenarios. + +## Usage +```bash +cortex benchmark mistral +``` +## Collected Data +### Hardware Data +| Metrics Name | Metric Data Type | Example Value | Description | +|---------------------|---------------------|------------------------------------------------------|--------------------------------------------------| +| `cpu` | Object | `{"avgLoad": 0.26, "currentLoad": 10.714285714285714, ...}` | CPU usage details, including average and current load. | +| `gpu` | Array of Objects | `[{"vendor": "Apple", "model": "Apple M3 Pro", ...}]` | Details about the GPU, including vendor and model. | +| `mem` | Object | `{"total": 38654705664, "free": 368312320, "used": 38286393344, ...}` | Memory details, including total, free, and used memory. | +| `resourceChange` | Object | `{"cpu": null, "mem": 0.15513102213541669}` | Changes in resource usage, such as CPU and memory. | + +### Model Data +Model ID with runtime parameters: +- `max_length` +- `temperature` +- `kv-cache size` (TBU) +### Model Inference Performance + +| Metrics Name | Metric Data Type | Example Value | Description | +|----------------------------------|---------------------|------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `tokens` | Integer | 2048 | The total number of tokens processed. | +| `token_length` | Integer | 78 | The length of each token processed. | +| `latency` | Integer | 662 ms | The overall time it takes for the model to generate the full response for a user. Calculated as: latency = (TTFT) + (TPOT) * (the number of tokens to be generated). | +| `tpot` (Time per Output Token) | Float | 8.487179487179487 | Time to generate an output token for each user querying our system. | +| `throughput ` | Float | 117.82477341389728 tokens/s | The number of output tokens per second an inference server can generate across all users and requests. | +| `ttft` (Time to First Token) | Integer | 257 ms | How quickly users start seeing the model's output after entering their query. | + +### Data per Round of Testing + +The overall metrics data of: +- **P50 (50th Percentile / Median)**: The value below which 50% of the data points fall. +- **P75 (75th Percentile)**: The value below which 75% of the data points fall. +- **P95 (95th Percentile)**: The value below which 95% of the data points fall. +- **avg (Average / Mean)**: The arithmetic mean of all the data points. + +:::note +Learn more about Benchmarking capabilities: +- [Benchmarking Architecture](/docs/benchmarking-architecture) +- [Benchmarking CLI command](/docs/cli/benchmark) +::: \ No newline at end of file diff --git a/docs/docs/cortex-tensorrt-llm.mdx b/docs/docs/cortex-tensorrt-llm.mdx new file mode 100644 index 000000000..c6dc1859d --- /dev/null +++ b/docs/docs/cortex-tensorrt-llm.mdx @@ -0,0 +1,251 @@ +--- +title: TensorRT-LLM +description: NVIDIA TensorRT-LLM Architecture +slug: "cortex-tensorrt-llm" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +## Introduction + +[Cortex.tensorrt-llm](https://github.com/janhq/tensorrt-llm) is a C++ inference library for NVIDIA GPUs. It submodules NVIDIA’s [TensorRT-LLM](https://github.com/NVIDIA/TensorRT-LLM) for GPU accelerated inference. + +In addition to TensorRT-LLM, `tensorrt-llm` adds: + +- Tokenizers for popular model architectures +- Prebuilt model engines compatible with popular GPUs + +:::info +TensorRT-LLM is by default bundled in Cortex. +::: + +## Usage +```sh +cortex engines tensorrt-llm init +``` +The command will check, download, and install these dependencies: + + + ``` + - engine.dll + - nvinfer_10.dll + - tensorrt_llm.dll + - nvinfer_plugin_tensorrt_llm.dll + - tensorrt_llm_nvrtc_wrapper.dll + - pcre2-8.dll + - Cuda 12.4 + - MSBuild libraries: + - msvcp140.dll + - vcruntime140.dll + - vcruntime140_1.dll + ``` + + + ``` + - Cuda 12.4 + - libengine.so + - libnvinfer.so.10 + - libtensorrt_llm.so + - libnvinfer_plugin_tensorrt_llm.so.10 + - libtensorrt_llm_nvrtc_wrapper.so + - libnccl.so.2 + ``` + + +:::info +To include `tensorrt-llm` in your own server implementation, follow the steps [here](https://github.com/janhq/tensorrt-llm/tree/rel). +::: + +#### Get TensorRT-LLM Models + +You can download precompiled models from the [Cortex Hub](https://huggingface.co/cortexso) on Hugging Face. These models include configurations, tokenizers, and dependencies tailored for optimal performance with this engine. + + +## Interface + +`tensorrt-llm` has the following Interfaces: + +- **HandleChatCompletion:** Processes chat completion tasks. + ```cpp + void HandleChatCompletion( + std::shared_ptr json_body, + std::function&& callback); + ``` +- **LoadModel:** Loads a model based on the specifications. + ```cpp + void LoadModel( + std::shared_ptr json_body, + std::function&& callback); + ``` +- **UnloadModel:** Unloads a model as specified. + ```cpp + void UnloadModel( + std::shared_ptr json_body, + std::function&& callback); + ``` +- **GetModelStatus:** Retrieves the status of a model. + ```cpp + void GetModelStatus( + std::shared_ptr json_body, + std::function&& callback); + ``` +All the interfaces above contain the following parameters: + +| Parameter | Description | +|------------|------------------------------------------------| +| `jsonBody` | The requested content is in JSON format. | +| `callback` | A function that handles the response. | + + +## Architecture + +import Diagram from "../src/components/Diagram" + + + +These are the main components that interact to provide an API for `inference` tasks using the `tensorrt-llm`: +1. **cortex-cpp**: Acts as an intermediary between `cortex-js` and the inference engine (`tensorrt-llm`). It processes incoming HTTP requests and forwards them to the appropriate components for handling. Once a response is generated, it sends it back to `cortex-js`. + +2. **enginei**: Serves as an interface for the inference engine. It defines the methods and protocols used for running inference tasks. + +3. **tensorrt-llm engine**: Manages the loading and unloading of models and simplifies API calls to the underlying `nvidia_tensorrt-llm` library. It acts as a high-level wrapper that makes it easier to interact with the core inference functionalities provided by NVIDIA's library. + +4. **tokenizer**: Responsible for converting input text into tokens that can be processed by the model and converting the output tokens back. Currently, only the Byte Pair Encoding (BPE) tokenizer (from the [SentencePiece library](https://github.com/google/sentencepiece)) is supported. + +5. **nvidia tensorrt-llm**: An NVIDIA library that provides the core functionality required for performing inference tasks. It leverages NVIDIA's hardware and software optimizations to deliver high-performance inference. + +### Communication Protocols + +#### Load a Model +```mermaid +sequenceDiagram + participant JS as Cortex-JS + participant CPP as Cortex-CPP + participant TRT as Cortex.tensorrt-llm + + JS->>CPP: HTTP request load model + CPP->>CPP: Load model + CPP->>TRT: Load model + TRT->>TRT: Cache chat template + TRT->>TRT: Create tokenizer + TRT->>TRT: Load config + TRT->>TRT: Initialize GPT Session + TRT-->>CPP: Callback + CPP-->>JS: HTTP response + +``` + +The diagram above illustrates the interaction between three components: `cortex-js`, `cortex-cpp`, and `tensorrt-llm` when using the `tensorrt-llm` engine in Cortex: + +1. **HTTP Request Load Model (cortex-js to cortex-cpp)**: + - `cortex-js` sends an HTTP request to `cortex-cpp` to load the model. + +2. **Load Engine (cortex-cpp)**: + - `cortex-cpp` processes the request and starts by loading the engine. + +3. **Load Model (cortex-cpp to tensorrt-llm)**: + - `cortex-cpp` then sends a request to `tensorrt-llm` to load the model. + +4. **Load Config (tensorrt-llm)**: + - `tensorrt-llm` begins by loading the necessary configuration. This includes parameters, settings, and other essential information needed to run the model. + +5. **Create Tokenizer (tensorrt-llm)**: + - After loading the configuration, `tensorrt-llm` creates a tokenizer. The tokenizer is responsible for converting input text into tokens that the model can understand and process. + +6. **Cache Chat Template (tensorrt-llm)**: + - Following the creation of the tokenizer, `tensorrt-llm` caches a chat template. + +7. **Initialize GPT Session (tensorrt-llm)**: + - Finally, `tensorrt-llm` initializes the GPT session, setting up the necessary environment and resources required for the session. + +8. **Callback (tensorrt-llm to cortex-cpp)**: + - After completing the initialization, `tensorrt-llm` sends a callback to `cortex-cpp` to indicate that the model loading process is complete. + +9. **HTTP Response (cortex-cpp to cortex-js)**: + - `cortex-cpp` then sends an HTTP response back to `cortex-js`, indicating that the model has been successfully loaded. + + +#### Inference +```mermaid +sequenceDiagram + participant JS as Cortex-JS + participant CPP as Cortex-CPP + participant TRT as Cortex.tensorrt-llm + + JS->>CPP: HTTP request chat completion + CPP->>TRT: Request chat completion + TRT->>TRT: Apply chat template + TRT->>TRT: Encode + TRT->>TRT: Set sampling config + TRT->>TRT: Create generator input/output + loop Wait for done + TRT->>TRT: Copy new token from GPU + TRT->>TRT: Decode new token + TRT-->>CPP: Callback + CPP-->>JS: HTTP stream response + end + + +``` + +The diagram above illustrates the interaction between three components: `cortex-js`, `cortex-cpp`, and `tensorrt-llm` when using the `tensorrt-llm` engine to call the `chat completions endpoint` with the inference option: + +1. **HTTP Request Chat Completion (cortex-js to cortex-cpp)**: + - `cortex-js` sends an HTTP request to `cortex-cpp` to request chat completion. + +2. **Request Chat Completion (cortex-cpp to tensorrt-llm)**: + - `cortex-cpp` processes the request and forwards it to `tensorrt-llm` to handle the chat completion. + +3. **Apply Chat Template (tensorrt-llm)**: + - `tensorrt-llm` starts by applying the chat template to the incoming request. + +4. **Encode (tensorrt-llm)**: + - The next step involves encoding the input data. + +5. **Set Sampling Config (tensorrt-llm)**: + - After encoding, the sampling configuration is set. This configuration might include parameters that control the generation process, such as temperature and top-k sampling. + +6. **Create Generation Input/Output (tensorrt-llm)**: + - `tensorrt-llm` then creates the generation input and output structures. These structures are used to manage the data flowing in and out of the model during generation. + +7. **Copy New Token from GPU (tensorrt-llm)**: + - During the generation process, new tokens are copied from the GPU as they are generated. + +8. **Decode New Token (tensorrt-llm)**: + - The newly generated tokens are then decoded back. + +9. **Callback (tensorrt-llm to cortex-cpp)**: + - After processing the request, `tensorrt-llm` sends a callback to `cortex-cpp` indicating that the chat completion process is done. + +10. **HTTP Stream Response (cortex-cpp to cortex-js)**: + - `cortex-cpp` streams the response back to `cortex-js`, which waits for the completion of the process. + + +## Code Structure +``` +. +tensorrt-llm # Forks from nvidia tensorrt-llm repository +|__ ... +|__cpp +| |_ ... +| |__ tensorrt-llm +| | |__cortex.tensorrt-llm +| | β”œβ”€β”€ base # Engine interface definition +| | | └── cortex-common # Common interfaces used for all engines +| | | └── enginei.h # Define abstract classes and interface methods for engines +| | β”œβ”€β”€ examples # Server example to integrate engine +β”‚ | | └── server.cc # Example server demonstrating engine integratio +| | β”œβ”€β”€ src # Source implementation for tensorrt-llm engine +| | β”‚ β”œβ”€β”€ chat_completion_request.h # OpenAI compatible request handling +β”‚ | | β”œβ”€β”€ tensorrt-llm_engine.h # Implementation tensorrt-llm engine of model loading and inference +| | | β”œβ”€β”€ tensorrt-llm_engine.cc +| | β”œβ”€β”€ third-party # Dependencies of the tensorrt-llm project +| | └── (list of third-party dependencies) +| |__ ... +|__ ... +``` diff --git a/docs/docs/data-folder.mdx b/docs/docs/data-folder.mdx new file mode 100644 index 000000000..7acfbd361 --- /dev/null +++ b/docs/docs/data-folder.mdx @@ -0,0 +1,142 @@ +--- +title: Data Folder +description: Cortex.cpp's data folder. +slug: "data-folder" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +When you install Cortex.cpp, three types of files will be generated on your device: + +- **Binary Files** +- **Configuration Files** +- **Data Folder** + +## Binary Files +These are the executable files of the Cortex.cpp application. The file format varies depending on the operating system: + +- **Windows**: `.exe` + - Stable: `C:\Users\\AppData\Local\cortexcpp\cortex.exe` + - Beta: `C:\Users\\AppData\Local\cortexcpp-beta\cortex-beta.exe` + - Nighty: `C:\Users\\AppData\Local\cortexcpp-nightly\cortex-nightly.exe` +- **Linux**: `.deb` or `.fedora` + - Stable: `/usr/bin/cortexcpp` + - Beta: `/usr/bin/cortexcpp-beta` + - Nighty: `/usr/bin/cortexcpp-nightly` +- **macOS**: `.pkg` + - Stable: `/usr/local/bin/cortexcpp` + - Beta: `/home//.cortexrc-beta` + - Nighty: `/home//.cortexrc-nightly` + +## Cortex.cpp Data Folder +The data folder stores the engines, models, and logs required by Cortex.cpp. This folder is located at: + +- **Windows**: + - Stable: `C:\Users\\.cortexcpp` + - Beta: `C:\Users\\.cortexcpp-beta` + - Nighty: `C:\Users\\.cortexcpp-nightly` +- **Linux**: + - Stable: `/home//.cortexcpp` + - Beta: `/home//.cortexcpp-beta` + - Nighty: `/home//.cortexcpp-nightly` +- **macOS**: + - Stable: `/Users/\.cortexcpp` + - Beta: `/Users//.cortexcpp-beta` + - Nighty: `/Users//.cortexcpp-nightly` + +### Folder Structure +The Cortex.cpp data folder typically follows this structure: + + + + ```yaml + ~/.cortex + β”œβ”€β”€ models/ + β”‚ └── model.list + β”‚ └── huggingface.co/ + β”‚ └── / + └── / + └── model.yaml + └── model.gguf + β”‚ └── cortex.so/ + β”‚ └── / + β”‚ └── / + └── ...engine_files + └── model.yaml + β”‚ └── imported/ + └── imported_model.yaml + β”œβ”€β”€ logs/ + β”‚ └── cortex.txt + └── cortex-cli.txt + └── engines/ + └── llamacpp + ``` + + + ```yaml + ~/.cortex-beta + β”œβ”€β”€ models/ + β”‚ └── model.list + β”‚ └── huggingface.co/ + β”‚ └── / + └── / + └── model.yaml + └── model.gguf + β”‚ └── cortex.so/ + β”‚ └── / + β”‚ └── / + └── ...engine_files + └── model.yaml + β”‚ └── imported/ + └── imported_model.yaml + β”œβ”€β”€ logs/ + β”‚ └── cortex.txt + └── cortex-cli.txt + └── engines/ + └── llamacpp + ``` + + + ```yaml + ~/.cortex-nightly + β”œβ”€β”€ models/ + β”‚ └── model.list + β”‚ └── huggingface.co/ + β”‚ └── / + └── / + └── model.yaml + └── model.gguf + β”‚ └── cortex.so/ + β”‚ └── / + β”‚ └── / + └── ...engine_files + └── model.yaml + β”‚ └── imported/ + └── imported_model.yaml + β”œβ”€β”€ logs/ + β”‚ └── cortex.txt + └── cortex-cli.txt + └── engines/ + └── llamacpp + ``` + + + +#### `.cortexcpp` +The main directory that stores all Cortex-related files, located in the user's home directory. +#### `models/` +Contains the AI models used by Cortex for processing and generating responses. +:::info +For more information regarding the `model.list` and `model.yaml`, please see [here](/docs/model-yaml). +::: +#### `logs/` +Stores log files that are essential for troubleshooting and monitoring the performance of the Cortex.cpp API server and CLI. + +We use Trantor for logging, which ensures non-blocking, thread-safe, multi-stream file logging without affecting system performance. Trantor automatically creates a new log file for each server session, based on the date and time, simplifying debugging. It also supports setting limits on log file size and the number of log files per session. +#### `engines/` +Stores the necessary dependencies and engine files needed to run Cortex on supported engines. \ No newline at end of file diff --git a/docs/docs/embeddings.mdx b/docs/docs/embeddings.mdx new file mode 100644 index 000000000..5cc675ee2 --- /dev/null +++ b/docs/docs/embeddings.mdx @@ -0,0 +1,87 @@ +--- +title: Embeddings +description: Inference engine for embedding, the same as OpenAI's +slug: "embeddings" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +An embedding is a vector that represents a piece of text, with the distance between vectors indicating similarity, which means closer distances mean more similar texts, while farther distances mean less similar texts. +:::note +The Cortex Embeddings feature is fully compatible with OpenAI's [Embeddings API](https://platform.openai.com/docs/api-reference/embeddings) endpoints. +::: + +## Usage +### CLI +```bash +# Without Flag +cortex embeddings "Hello World" +# With model_id Flag +cortex embeddings [options] [model_id] "Hello World" +``` +### API + + + To generate an embedding, send a text string and the embedding model name **(e.g., 'nomic-embed-text-v1.5.f16')** to the Embeddings API endpoint. + The Cortex-cpp server will return a list of floating-point numbers, which can be stored in a vector database for later use. + ```bash +curl http://127.0.0.1:39281/v1/embeddings \ + -H "Content-Type: application/json" \ + -d '{ + "input": "Your text string goes here", + "model": "nomic-embed-text-v1.5.f16", + "stream": false + }' + + + ``` + + + ```bash +{ + "data": [ + { + "embedding": [ + 0.065036498010158539, + 0.036638252437114716, + -0.15189965069293976, + ... (omitted for spacing) + -0.021707100793719292, + -0.010746118612587452, + 0.0078709172084927559 + ], + "index": 0, + "object": "embedding" + } + ], + "model": "_", + "object": "list", + "usage": { + "prompt_tokens": 0, + "total_tokens": 0 + } +} + ``` + + +## Capabilities +### Batch Embeddings +Cortex's Embedding feature, powered by the [`llamacpp`](/docs/cortex-llamacpp) engine, offers an OpenAI-compatible endpoint. It supports processing multiple input data prompts simultaneously for batch embeddings. +### Pre-configured Models +We provide a selection of pre-configured models designed to integrate seamlessly with embedding features. These optimized models include: +- Mistral Instruct 7B Q4 +- Llama 3 8B Q4 +- Aya 23 8B Q4 +:::info +For a complete list of models, please visit the [Cortex Hub](https://huggingface.co/cortexso). +::: +:::note +Learn more about Embeddings capabilities: +- [Embeddings API Reference](/api-reference#tag/embeddings/post/embeddings) +- [Embeddings CLI command](/docs/cli/embeddings) +::: \ No newline at end of file diff --git a/docs/docs/engines/index.mdx b/docs/docs/engines/index.mdx new file mode 100644 index 000000000..9f9f7f9cf --- /dev/null +++ b/docs/docs/engines/index.mdx @@ -0,0 +1,12 @@ +--- +slug: /engines +title: Engines +--- +import DocCardList from '@theme/DocCardList'; + + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + + diff --git a/docs/docs/engines/llamacpp.mdx b/docs/docs/engines/llamacpp.mdx new file mode 100644 index 000000000..f65c15473 --- /dev/null +++ b/docs/docs/engines/llamacpp.mdx @@ -0,0 +1,106 @@ +--- +title: Llama.cpp +description: GGUF Model Format. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +Cortex uses `llama.cpp` as the default engine by default the `GGUF` format is supported by Cortex. + +:::info +Cortex automatically generates any `GGUF` model from the HuggingFace repo that does not have the `model.yaml` file. +::: + +## [`model.yaml`](/docs/model-yaml) Sample +```yaml +## BEGIN GENERAL GGUF METADATA +id: Mistral-Nemo-Instruct-2407 # Model ID unique between models (author / quantization) +model: mistral-nemo # Model ID which is used for request construct - should be unique between models (author / quantization) +name: Mistral-Nemo-Instruct-2407 # metadata.general.name +version: 2 # metadata.version +files: # can be universal protocol (models://) OR absolute local file path (file://) OR https remote URL (https://) + - /home/thuan/cortex/models/mistral-nemo-q8/Mistral-Nemo-Instruct-2407.Q6_K.gguf +# END GENERAL GGUF METADATA + +# BEGIN INFERENCE PARAMETERS +# BEGIN REQUIRED +stop: # tokenizer.ggml.eos_token_id + - +# END REQUIRED + +# BEGIN OPTIONAL +stream: true # Default true? +top_p: 0.949999988 # Ranges: 0 to 1 +temperature: 0.699999988 # Ranges: 0 to 1 +frequency_penalty: 0 # Ranges: 0 to 1 +presence_penalty: 0 # Ranges: 0 to 1 +max_tokens: 1024000 # Should be default to context length +seed: -1 +dynatemp_range: 0 +dynatemp_exponent: 1 +top_k: 40 +min_p: 0.0500000007 +tfs_z: 1 +typ_p: 1 +repeat_last_n: 64 +repeat_penalty: 1 +mirostat: false +mirostat_tau: 5 +mirostat_eta: 0.100000001 +penalize_nl: false +ignore_eos: false +n_probs: 0 +min_keep: 0 +# END OPTIONAL +# END INFERENCE PARAMETERS + +# BEGIN MODEL LOAD PARAMETERS +# BEGIN REQUIRED +engine: cortex.llamacpp # engine to run model +prompt_template: "[INST] <>\n{system_message}\n<>\n{prompt}[/INST]" +# END REQUIRED + +# BEGIN OPTIONAL +ctx_len: 1024000 # llama.context_length | 0 or undefined = loaded from model +ngl: 41 # Undefined = loaded from model +# END OPTIONAL +# END MODEL LOAD PARAMETERS + +``` +## Model Parameters +| **Parameter** | **Description** | **Required** | +|------------------------|--------------------------------------------------------------------------------------|--------------| +| `top_p` | The cumulative probability threshold for token sampling. | No | +| `temperature` | Controls the randomness of predictions by scaling logits before applying softmax. | No | +| `frequency_penalty` | Penalizes new tokens based on their existing frequency in the sequence so far. | No | +| `presence_penalty` | Penalizes new tokens based on whether they appear in the sequence so far. | No | +| `max_tokens` | Maximum number of tokens in the output. | No | +| `stream` | Enables or disables streaming mode for the output (true or false). | No | +| `ngl` | Number of attention heads. | No | +| `ctx_len` | Context length (maximum number of tokens). | No | +| `prompt_template` | Template for formatting the prompt, including system messages and instructions. | Yes | +| `stop` | Specifies the stopping condition for the model, which can be a word, a letter, or a specific text. | Yes | +| `seed` | Random seed value used to initialize the generation process. | No | +| `dynatemp_range` | Dynamic temperature range used to adjust randomness during generation. | No | +| `dynatemp_exponent` | Exponent used to adjust the effect of dynamic temperature. | No | +| `top_k` | Limits the number of highest probability tokens to consider during sampling. | No | +| `min_p` | Minimum cumulative probability for nucleus sampling. | No | +| `tfs_z` | Top-p frequency selection parameter. | No | +| `typ_p` | Typical sampling probability threshold. | No | +| `repeat_last_n` | Number of tokens to consider for the repetition penalty. | No | +| `repeat_penalty` | Penalty applied to repeated tokens to reduce their likelihood of being selected again. | No | +| `mirostat` | Enables or disables the use of Mirostat algorithm for dynamic temperature adjustment. | No | +| `mirostat_tau` | Target surprise value for Mirostat algorithm. | No | +| `mirostat_eta` | Learning rate for Mirostat algorithm. | No | +| `penalize_nl` | Whether newline characters should be penalized during sampling. | No | +| `ignore_eos` | If true, ignores the end of sequence token, allowing generation to continue indefinitely. | No | +| `n_probs` | Number of top token probabilities to return in the output. | No | +| `min_keep` | Minimum number of tokens to keep during top-k sampling. | No | + +:::info +You can download a `GGUF` model from the following: +- [Cortex Model Repos](/docs/hub/cortex-hub) +- [HuggingFace Model Repos](/docs/hub/hugging-face) +::: \ No newline at end of file diff --git a/docs/docs/engines/onnx.mdx b/docs/docs/engines/onnx.mdx new file mode 100644 index 000000000..d4e999406 --- /dev/null +++ b/docs/docs/engines/onnx.mdx @@ -0,0 +1,60 @@ +--- +title: ONNX +description: ONNX Model Format. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +Cortex uses `onnxruntime-genai` with DirectML to provide GPU acceleration for AMD, Intel, NVIDIA, and Qualcomm GPUs. + +## Run Model +```bash +## Initialize the ONNX engine +cortex engines onnx init + +## Run an ONNX model +cortex run openhermes-2.5:7b-onnx +``` +## [`model.yaml`](/docs/model-yaml) Sample +```yaml +name: openhermes-2.5 +model: openhermes +version: 1 + +# Engine / Model Settings +engine: onnx +prompt_template: "<|im_start|>system\n{system_message}<|im_end|>\n<|im_start|>user\n{prompt}<|im_end|>\n<|im_start|>assistant\n" + +# Results Preferences +top_p: 1.0 +temperature: 1.0 +frequency_penalty: 0 +presence_penalty: 0 +max_tokens: 2048 +stream: true # true | false + +``` +## Model Parameters + +| **Parameter** | **Description** | **Required** | +|------------------------|--------------------------------------------------------------------------------------|--------------| +| `top_p` | The cumulative probability threshold for token sampling. | No | +| `temperature` | Controls the randomness of predictions by scaling logits before applying softmax. | No | +| `frequency_penalty` | Penalizes new tokens based on their existing frequency in the sequence so far. | No | +| `presence_penalty` | Penalizes new tokens based on whether they appear in the sequence so far. | No | +| `stop` | Specifies the stopping condition for the model, which can be a word, a letter, or a specific text. | No | +| `max_tokens` | Maximum number of tokens in the output. | Yes | +| `stream` | Enables or disables streaming mode for the output (true or false). | Yes | +| `ngl` | Number of attention heads. | Yes | +| `ctx_len` | Context length (maximum number of tokens). | Yes | +| `engine` | Specifies the engine to be used for model execution. | Yes | +| `prompt_template` | Template for formatting the prompt, including system messages and instructions. | Yes | + + +:::info +You can download a `ONNX` model from the following: +- [Cortex Model Repos](/docs/hub/cortex-hub) +- [HuggingFace Model Repos](/docs/hub/hugging-face) +::: \ No newline at end of file diff --git a/docs/docs/engines/tensorrt-llm.mdx b/docs/docs/engines/tensorrt-llm.mdx new file mode 100644 index 000000000..0cfe7d483 --- /dev/null +++ b/docs/docs/engines/tensorrt-llm.mdx @@ -0,0 +1,71 @@ +--- +title: TensorRT-LLM +description: TensorRT-LLM Model Format. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +Cortex uses the `tensorrt-llm` inference library for NVIDIA GPUs acceleration. + +## Run Model +```bash +## Initialize the TensorRT-LLM engine +cortex engines tensorrt-llm init + +## Run a TensorRT-LLM model +cortex run openhermes-2.5:7b-tensorrt-llm +``` +## [`model.yaml`](/docs/model-yaml) Sample +```yaml +name: Openhermes-2.5 7b Linux Ada +model: openhermes-2.5:7B-tensorrt-llm +version: 1 + +# Engine / Model Settings +engine: tensorrt-llm +os: linux +gpu_arch: ada +quantization_method: awq +precision: int4 +tp: 1 +trtllm_version: 0.9.0 +ctx_len: 2048 # Infer from base config.json -> max_position_embeddings +text_model: false +prompt_template: "<|im_start|>system\n{system_message}<|im_end|>\n<|im_start|>user\n{prompt}<|im_end|>\n<|im_start|>assistant\n" + +# Results Preferences +temperature: 0.7 +max_tokens: 2048 +stream: true # true | false + +``` +## Model Parameters + +| **Parameter** | **Description** | **Required** | +|------------------------|--------------------------------------------------------------------------------------|--------------| +| `top_p` | The cumulative probability threshold for token sampling. | No | +| `temperature` | Controls the randomness of predictions by scaling logits before applying softmax. | No | +| `frequency_penalty` | Penalizes new tokens based on their existing frequency in the sequence so far. | No | +| `presence_penalty` | Penalizes new tokens based on whether they appear in the sequence so far. | No | +| `stop` | Specifies the stopping condition for the model, which can be a word, a letter, or a specific text. | No | +| `max_tokens` | Maximum number of tokens in the output. | Yes | +| `stream` | Enables or disables streaming mode for the output (true or false). | Yes | +| `engine` | Specifies the engine to be used for model execution. | Yes | +| `os` | Operating system used. | Yes | +| `gpu_arch` | GPU architecture used. | Yes | +| `quantization_method` | Method used for quantization. | Yes | +| `precision` | Precision level used. | Yes | +| `tp` | Number of tensor parallelism partitions. | Yes | +| `trtllm_version` | Version of TensorRT-LLM being used. | Yes | +| `ctx_len` | Context length (maximum number of tokens). | Yes | +| `text_model` | Indicates if the text model is being used (true or false). | Yes | +| `prompt_template` | Template for formatting the prompt, including system messages and instructions. | Yes | + +:::info +You can download a `TensorRT-LLM` model from the following: +- [Cortex Model Repos](/docs/hub/cortex-hub) +- [HuggingFace Model Repos](/docs/hub/hugging-face) +- Nvidia Catalog (Coming Soon!) +::: \ No newline at end of file diff --git a/docs/docs/hub/cortex-hub.mdx b/docs/docs/hub/cortex-hub.mdx new file mode 100644 index 000000000..6c9ac5070 --- /dev/null +++ b/docs/docs/hub/cortex-hub.mdx @@ -0,0 +1,114 @@ +--- +title: Cortex Model Repos +description: Cortex's built-in models are hosted on Huggingface, supporting multi-engine repositories. +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +![cortex repo](/img/docs/repo.png) + +[Cortex Model Repos](https://huggingface.co/cortexso) are Cortex.cpp's built-in models hosted on Huggingface, which uses a single Git repository to hold different versions of a model, which can be pulled using Docker or Ollama-like syntax. + +:::info +We also plan to provide alternative hosting locations or servers to replicate the content, ensuring access in regions where HuggingFace is blocked or has slow download speeds. +::: + +## Why HuggingFace? +Cortex Model Repos are hosted on Huggingface for several reasons: +- **Tag-Based Formats**: Inspired by Docker and Ollama, Cortex Model Repos uses a tag-based format (`model:version`) that simplifies managing multiple versions and formats of a model. +- **Git and Git-LFS Based (Inspired by Ollama)**: Using Git and Git-LFS makes mirroring and version control easy. +- **Mirror-Friendly Setup**: If Huggingface is blocked or slow, repositories can be mirrored across different locations. + +## Usage +Download a built-in model from the [Cortex Model Repos](https://huggingface.co/cortexso) using a `model_id`. You can obtain the `model_id` from the Cortex model repository or the model's specific branch. + + + ```sh + # Stable + ## Download the default mistral model from: https://huggingface.co/cortexso/mistral/tree/main + cortex pull mistral + + ## Download an ONNX version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/onnx + cortex pull mistral:onnx + + ## Download a TensorRT-LLM version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/tensorrt-llm-linux-ada + cortex pull mistral:tensorrt-llm-linux-ada + + ## Download a 7B version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/7b-gguf + cortex pull mistral:7b-gguf + + # Beta + ## Download the default mistral model from: https://huggingface.co/cortexso/mistral/tree/main + cortex-beta pull mistral + + ## Download an ONNX version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/onnx + cortex-beta pull mistral:onnx + + ## Download a TensorRT-LLM version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/tensorrt-llm-linux-ada + cortex-beta pull mistral:tensorrt-llm-linux-ada + + ## Download a 7B version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/7b-gguf + cortex-beta pull mistral:7b-gguf + + # Nightly + ## Download the default mistral model from: https://huggingface.co/cortexso/mistral/tree/main + cortex-nightly pull mistral + + ## Download an ONNX version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/onnx + cortex-nightly pull mistral:onnx + + ## Download a TensorRT-LLM version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/tensorrt-llm-linux-ada + cortex-nightly pull mistral:tensorrt-llm-linux-ada + + ## Download a 7B version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/7b-gguf + cortex-nightly pull mistral:7b-gguf + ``` + + + ```sh + # Stable + ## Download the default mistral model from: https://huggingface.co/cortexso/mistral/tree/main + cortex.exe pull mistral + + ## Download an ONNX version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/onnx + cortex.exe pull mistral:onnx + + ## Download a TensorRT-LLM version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/tensorrt-llm-linux-ada + cortex.exe pull mistral:tensorrt-llm-linux-ada + + ## Download a 7B version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/7b-gguf + cortex.exe pull mistral:7b-gguf + + # Beta + ## Download the default mistral model from: https://huggingface.co/cortexso/mistral/tree/main + cortex-beta.exe pull mistral + + ## Download an ONNX version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/onnx + cortex-beta.exe pull mistral:onnx + + ## Download a TensorRT-LLM version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/tensorrt-llm-linux-ada + cortex-beta.exe pull mistral:tensorrt-llm-linux-ada + + ## Download a 7B version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/7b-gguf + cortex-beta.exe pull mistral:7b-gguf + + # Nightly + ## Download the default mistral model from: https://huggingface.co/cortexso/mistral/tree/main + cortex-nightly.exe pull mistral + + ## Download an ONNX version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/onnx + cortex-nightly.exe pull mistral:onnx + + ## Download a TensorRT-LLM version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/tensorrt-llm-linux-ada + cortex-nightly.exe pull mistral:tensorrt-llm-linux-ada + + ## Download a 7B version of the mistral model from: https://huggingface.co/cortexso/mistral/tree/7b-gguf + cortex-nightly.exe pull mistral:7b-gguf + ``` + + \ No newline at end of file diff --git a/docs/docs/hub/hugging-face.mdx b/docs/docs/hub/hugging-face.mdx new file mode 100644 index 000000000..a4409992a --- /dev/null +++ b/docs/docs/hub/hugging-face.mdx @@ -0,0 +1,128 @@ +--- +title: Hugging Face +description: Cortex supports all `GGUF` and `ONNX` models available in Huggingface repositories, providing access to a wide range of models. +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + + +Cortex.cpp supports all `GGUF` and `ONNX` models from the [Hugging Face Hub](https://huggingface.co), along with its built-in models. For `TensorRT-LLM` models, only built-in models in the [Cortex Model Repos](/docs/hub/cortex-hub) are supported. + +:::info +To pull a supported model from HuggingFace, use the format `ORG_ID/MODEL_ID`. +::: +## GGUF +![HF GGUF](/img/docs/gguf.png) +To view all available `GGUF` models on HuggingFace, select the `GGUF` tag in the Libraries section. + + + ```sh + # Stable + ## Pull the Codestral-22B-v0.1-GGUF model from the bartowski organization + cortex pull bartowski/Codestral-22B-v0.1-GGUF + + # Pull the gemma-7b model from the google organization + cortex pull google/gemma-7b + + # Beta + ## Pull the Codestral-22B-v0.1-GGUF model from the bartowski organization + cortex-beta pull bartowski/Codestral-22B-v0.1-GGUF + + # Pull the gemma-7b model from the google organization + cortex-beta pull google/gemma-7b + + # Nightly + ## Pull the Codestral-22B-v0.1-GGUF model from the bartowski organization + cortex-nightly pull bartowski/Codestral-22B-v0.1-GGUF + + # Pull the gemma-7b model from the google organization + cortex-nightly pull google/gemma-7b + ``` + + + ```sh + # Stable + ## Pull the Codestral-22B-v0.1-GGUF model from the bartowski organization + cortex.exe pull bartowski/Codestral-22B-v0.1-GGUF + + # Pull the gemma-7b model from the google organization + cortex.exe pull google/gemma-7b + + # Beta + ## Pull the Codestral-22B-v0.1-GGUF model from the bartowski organization + cortex-beta.exe pull bartowski/Codestral-22B-v0.1-GGUF + + # Pull the gemma-7b model from the google organization + cortex-beta.exe pull google/gemma-7b + + # Nightly + ## Pull the Codestral-22B-v0.1-GGUF model from the bartowski organization + cortex-nightly.exe pull bartowski/Codestral-22B-v0.1-GGUF + + # Pull the gemma-7b model from the google organization + cortex-nightly.exe pull google/gemma-7b + ``` + + + +## ONNX +![HF ONNX](/img/docs/onnx.png) +To view all available `ONNX` models on HuggingFace, select the `ONNX` tag in the Libraries section. + + + ```sh + # Stable + ## Pull the XLM-Roberta-Large-Vit-B-16Plus model from the immich-app organization + cortex pull immich-app/XLM-Roberta-Large-Vit-B-16Plus + + # Pull the mt0-base model from the bigscience organization + cortex pull bigscience/mt0-base + + # Beta + ## Pull the XLM-Roberta-Large-Vit-B-16Plus model from the immich-app organization + cortex-beta pull immich-app/XLM-Roberta-Large-Vit-B-16Plus + + # Pull the mt0-base model from the bigscience organization + cortex-beta pull bigscience/mt0-base + + # Nightly + ## Pull the XLM-Roberta-Large-Vit-B-16Plus model from the immich-app organization + cortex-nightly pull immich-app/XLM-Roberta-Large-Vit-B-16Plus + + # Pull the mt0-base model from the bigscience organization + cortex-nightly pull bigscience/mt0-base + ``` + + + ```sh + # Stable + ## Pull the XLM-Roberta-Large-Vit-B-16Plus model from the immich-app organization + cortex.exe pull immich-app/XLM-Roberta-Large-Vit-B-16Plus + + # Pull the mt0-base model from the bigscience organization + cortex.exe pull bigscience/mt0-base + + # Beta + ## Pull the XLM-Roberta-Large-Vit-B-16Plus model from the immich-app organization + cortex-beta.exe pull immich-app/XLM-Roberta-Large-Vit-B-16Plus + + # Pull the mt0-base model from the bigscience organization + cortex-beta.exe pull bigscience/mt0-base + + # Nightly + ## Pull the XLM-Roberta-Large-Vit-B-16Plus model from the immich-app organization + cortex-nightly.exe pull immich-app/XLM-Roberta-Large-Vit-B-16Plus + + # Pull the mt0-base model from the bigscience organization + cortex-nightly.exe pull bigscience/mt0-base + ``` + + + +## TensorRT-LLM +We are still working to support all available `TensorRT-LLM` models on HuggingFace. For now, Cortex.cpp only supports built-in `TensorRT-LLM` models, which can be downloaded from the [Cortex Model Repos](/docs/hub/cortex-hub). diff --git a/docs/docs/hub/index.mdx b/docs/docs/hub/index.mdx new file mode 100644 index 000000000..95739ef0a --- /dev/null +++ b/docs/docs/hub/index.mdx @@ -0,0 +1,14 @@ +--- +slug: /model-sources +title: Model Sources +--- +import DocCardList from '@theme/DocCardList'; + + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +Cortex.cpp allows users to pull models from multiple repositories, offering flexibility and extensive model access. Here are the supported repositories: + + diff --git a/docs/docs/hub/nvidia-ngc.mdx b/docs/docs/hub/nvidia-ngc.mdx new file mode 100644 index 000000000..ee0248d95 --- /dev/null +++ b/docs/docs/hub/nvidia-ngc.mdx @@ -0,0 +1,10 @@ +--- +title: NVIDIA Catalog (Coming Soon) +description: Coming Soon! +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +Cortex.cpp will soon support Nvidia NGC, enabling users to download a wider variety of TensorRT-LLM models. \ No newline at end of file diff --git a/docs/docs/installation/docker.mdx b/docs/docs/installation/docker.mdx new file mode 100644 index 000000000..3aa0dcbac --- /dev/null +++ b/docs/docs/installation/docker.mdx @@ -0,0 +1,8 @@ +--- +title: Docker +description: Install Cortex through Docker. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: \ No newline at end of file diff --git a/docs/docs/installation/gpu-acceleration.mdx b/docs/docs/installation/gpu-acceleration.mdx new file mode 100644 index 000000000..ff57a714f --- /dev/null +++ b/docs/docs/installation/gpu-acceleration.mdx @@ -0,0 +1,8 @@ +--- +title: GPU Acceleration +description: GPU Acceleration. +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: \ No newline at end of file diff --git a/docs/docs/installation/linux.mdx b/docs/docs/installation/linux.mdx new file mode 100644 index 000000000..ce074f753 --- /dev/null +++ b/docs/docs/installation/linux.mdx @@ -0,0 +1,131 @@ +--- +title: Linux Installation +description: Install Cortex CLI on Linux. +slug: 'linux' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +## Cortex.cpp Installation +Cortex.cpp offers two installer types: +- Network Installers download a minimal system and require an internet connection to fetch packages during installation. +- Local Installers include all necessary packages, enabling offline installation without internet access. +:::info +Before installation, make sure that you have met the required [dependencies](#dependencies) and [hardware](#hardware) to run Cortex. +::: +1. Download the Linux installer: + - `.deb`: + - Stable: https://github.com/janhq/cortex.cpp/releases + - Beta: https://github.com/janhq/cortex.cpp/releases + - Nightly: https://github.com/janhq/cortex.cpp/releases + - `.appImage`: + - Stable: https://github.com/janhq/cortex.cpp/releases + - Beta: https://github.com/janhq/cortex.cpp/releases + - Nightly: https://github.com/janhq/cortex.cpp/releases + +2. Ensure that Cortex.cpp is sucessfulyy installed: +```bash +# Stable +cortex + +# Beta +cortex-beta + +# Nightly +cortex-nightly +``` + +### Data Folder +By default, Cortex.cpp is installed in the following directory: +``` +# Binary Location +/usr/bin/cortexcpp + +# Application Data (Engines, Models and Logs folders) +/home//.cortexcpp +``` +## Uninstall Cortex.cpp +```bash +# Stable version +sudo apt remove cortexcpp + +# Beta version +sudo apt remove cortexcpp-beta + +# Nightly version +sudo apt remove cortexcpp-nightly +``` + +## Build from Source +1. Clone the Cortex.cpp repository [here](https://github.com/janhq/cortex.cpp). +2. Navigate to the `engine > vcpkg` folder. +3. Configure the vpkg: + +```bash +cd vcpkg +./bootstrap-vcpkg.sh +vcpkg install +``` +4. Build the Cortex.cpp inside the `build` folder: + +```bash +mkdir build +cd build +cmake .. -DCMAKE_TOOLCHAIN_FILE=path_to_vcpkg_folder/vcpkg/scripts/buildsystems/vcpkg.cmake +make -j4 +``` +5. Use Visual Studio with the C++ development kit to build the project using the files generated in the `build` folder. +6. Verify that Cortex.cpp is installed correctly by getting help information. + +```sh +# Get the help information +cortex -h +``` + +## Prerequisites +### Dependencies +- Node.js version 18 and higher +- NPM +- Homebrew +- OpenMPI + +### Hardware +#### Operating System +- Debian-based (Supports `.deb` and `AppImage` ) +- Ubuntu version 22.04 and higher +#### CPU +:::info +- Cortex.cpp supports a processor that can handle AVX2. For the full list, please see [here](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#CPUs_with_AVX2). +- We support older processors with AVX and AVX-512, though this is not recommended. +::: +##### Intel CPU +- Haswell processors (Q2 2013) and newer. +- Tiger Lake (Q3 2020) and newer for Celeron and Pentium processors. +##### AMD CPU +- Excavator processors (Q2 2015) and newer. +#### RAM +:::info +We support DDR2 RAM as the minimum requirement but recommend using newer generations of RAM for improved performance. +::: +- 8GB for running up to 3B models (int4). +- 16GB for running up to 7B models (int4). +- 32GB for running up to 13B models (int4). +#### GPU +:::info +Having at least 6GB VRAM when using NVIDIA, AMD, or Intel Arc GPUs is recommended. +::: +- 6GB can load the 3B model (int4) with `ngl` at 120 ~ full speed on CPU/ GPU. +- 8GB can load the 7B model (int4) with `ngl` at 120 ~ full speed on CPU/ GPU. +- 12GB can load the 13B model (int4) with `ngl` at 120 ~ full speed on CPU/ GPU. +:::info +- [NVIDIA driver](https://www.nvidia.com/Download/index.aspx) version 470.63.01 or higher. +- [CUDA Toolkit](https://developer.nvidia.com/cuda-toolkit) version 12.3 or higher. +::: +#### Disk +- At least 10GB for app storage and model download. \ No newline at end of file diff --git a/docs/docs/installation/mac.mdx b/docs/docs/installation/mac.mdx new file mode 100644 index 000000000..a198c2f86 --- /dev/null +++ b/docs/docs/installation/mac.mdx @@ -0,0 +1,103 @@ +--- +title: Mac Installation +description: Install Cortex CLI on Mac. +slug: 'mac' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +## Cortex.cpp Installation +Cortex.cpp offers two installer types: +- Network Installers download a minimal system and require an internet connection to fetch packages during installation. +- Local Installers include all necessary packages, enabling offline installation without internet access. +:::info +Before installation, make sure that you have met the required [dependencies](#dependencies) and [hardware](#hardware) to run Cortex. +::: +1. Download the MacOs installer: + - Stable: https://github.com/janhq/cortex.cpp/releases + - Beta: https://github.com/janhq/cortex.cpp/releases + - Nightly: https://github.com/janhq/cortex.cpp/releases +2. Ensure that Cortex.cpp is sucessfulyy installed: +```bash +# Stable +cortex + +# Beta +cortex-beta + +# Nightly +cortex-nightly +``` + +### Data Folder +By default, Cortex.cpp is installed in the following directory: +``` +# Binary Location +/usr/local/bin/cortexcpp + +# Application Data (Engines, Models and Logs folders) +/Users//.cortexcpp +``` +## Uninstall Cortex.cpp +Run the uninstaller script: +```bash +# Stable version +sudo sh cortex-uninstall.sh + +# Beta version +sudo sh cortex-beta-uninstall.sh + +# Stable version +sudo sh cortex-nightly-uninstall.sh +``` +:::info +The script requires sudo permission. +::: +## Build from Source +1. Clone the Cortex.cpp repository [here](https://github.com/janhq/cortex.cpp). +2. Navigate to the `engine > vcpkg` folder. +3. Configure the vpkg: + +```bash +cd vcpkg +./bootstrap-vcpkg.sh +vcpkg install +``` +4. Build the Cortex.cpp inside the `build` folder: + +```bash +mkdir build +cd build +cmake .. -DCMAKE_TOOLCHAIN_FILE=path_to_vcpkg_folder/vcpkg/scripts/buildsystems/vcpkg.cmake +make -j4 +``` +5. Use Visual Studio with the C++ development kit to build the project using the files generated in the `build` folder. +6. Verify that Cortex.cpp is installed correctly by getting help information. + +```sh +# Get the help information +cortex -h +``` + +## Prerequisites + +### Dependencies +- Homebrew + +### Hardware +#### Operating System +- MacOSX 13.6 or higher. +#### CPU +- Mac Intel CPU +- Mac Apple Silicon +#### RAM +- 8GB for running up to 3B models. +- 16GB for running up to 7B models. +- 32GB for running up to 13B models. +#### Disk +- At least 10GB for app storage and model download. \ No newline at end of file diff --git a/docs/docs/installation/windows.mdx b/docs/docs/installation/windows.mdx new file mode 100644 index 000000000..11dce33a2 --- /dev/null +++ b/docs/docs/installation/windows.mdx @@ -0,0 +1,169 @@ +--- +title: Windows Installation +description: Install Cortex CLI on Windows. +slug: 'windows' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +## Overview +For Windows, Cortex.cpp can be installed in two ways: +- [Windows](#windows) +- [Windows Subsystem for Linux (WSL)](#windows-subsystem-linux) + +## Windows +### Install Cortex.cpp +Cortex.cpp offers two installer types: +- Network Installers download a minimal system and require an internet connection to fetch packages during installation. +- Local Installers include all necessary packages, enabling offline installation without internet access. +:::info +Before installation, make sure that you have met the required [dependencies](#dependencies) and [hardware](#hardware) to run Cortex. +::: +- Stable: https://github.com/janhq/cortex.cpp/releases +- Beta: https://github.com/janhq/cortex.cpp/releases +- Nightly: https://github.com/janhq/cortex.cpp/releases +#### Data Folder +By default, Cortex.cpp is installed in the following directory: +``` +# Binary Location +C:\Users\\AppData\Local\cortexcpp + +# Application Data (Engines, Models and Logs folders) +C:\Users\\.cortexcpp +``` +### Uninstall Cortex.cpp +To uninstall Cortex.cpp: +1. Navigate to **Add or Remove program**. +2. Search for Cortex.cpp and click **Uninstall**. +## Windows Subsystem Linux +:::info +Windows Subsystem Linux allows running Linux tools and workflows seamlessly alongside Windows applications. For more information, please see this [article](https://learn.microsoft.com/en-us/windows/wsl/faq). +::: +### Install Cortex.cpp +Cortex.cpp offers two installer types: +- Network Installers download a minimal system and require an internet connection to fetch packages during installation. +- Local Installers include all necessary packages, enabling offline installation without internet access. +:::info +Before installation, make sure that you have met the required [dependencies](#dependencies) and [hardware](#hardware) to run Cortex. +::: +1. Download the Windows installer: + - Stable: https://github.com/janhq/cortex.cpp/releases + - Beta: https://github.com/janhq/cortex.cpp/releases + - Nightly: https://github.com/janhq/cortex.cpp/releases +2. Ensure that Cortex.cpp is sucessfulyy installed: +```bash +# Stable +cortex.exe + +# Beta +cortex-beta.exe + +# Nightly +cortex-nightly.exe +``` + +#### Data Folder +By default, Cortex.cpp is installed in the following directory: +``` +# Binary Location +C:\Users\\AppData\Local\cortexcpp\cortex.exe + +# Application Data (Engines, Models and Logs folders) +C:\Users\\.cortexcpp +``` +### Uninstall Cortex.cpp +Run the uninstaller script: +```bash +# Stable version +sudo apt remove cortexcpp + +# Beta version +sudo apt remove cortexcpp-beta + +# Nightly version +sudo apt remove cortexcpp-nightly +``` +## Build from Source + +1. Clone the Cortex.cpp repository [here](https://github.com/janhq/cortex.cpp). +2. Navigate to the `engine > vcpkg` folder. +3. Configure the vpkg: + +```bash +cd vcpkg +## Windows +./bootstrap-vcpkg.bat +## WSL +./bootstrap-vcpkg.sh +vcpkg install +``` +4. Build the Cortex.cpp inside the `build` folder: + +```bash +mkdir build +cd build +## Windows +cmake .. -DBUILD_SHARED_LIBS=OFF -DCMAKE_TOOLCHAIN_FILE=path_to_vcpkg_folder/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static +## WSL +cmake .. -DCMAKE_TOOLCHAIN_FILE=path_to_vcpkg_folder/vcpkg/scripts/buildsystems/vcpkg.cmake +make -j4 +``` +5. Use Visual Studio with the C++ development kit to build the project using the files generated in the `build` folder. +6. Verify that Cortex.cpp is installed correctly by getting help information. + +```sh +# Get the help information +cortex -h +``` + +## Prerequisites +### Dependencies +#### Windows +- Node.js version 18 and higher +- NPM +#### Windows Subsystem for Linux +- Node.js version 18 and higher +- NPM +- Homebrew +- Windows Subsystem for Linux (Ubuntu) +- OpenMPI + +### Hardware +#### Operating System +- Windows 10 or higher. +#### CPU +:::info +- Cortex.cpp supports a processor that can handle AVX2. For the full list, please see [here](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#CPUs_with_AVX2). +- We support older processors with AVX and AVX-512, though this is not recommended. +::: +##### Intel CPU +- Haswell processors (Q2 2013) and newer. +- Tiger Lake (Q3 2020) and newer for Celeron and Pentium processors. +##### AMD CPU +- Excavator processors (Q2 2015) and newer. +#### RAM +:::info +We support DDR2 RAM as the minimum requirement but recommend using newer generations of RAM for improved performance. +::: +- 8GB for running up to 3B models (int4). +- 16GB for running up to 7B models (int4). +- 32GB for running up to 13B models (int4). +#### GPU +:::info +Having at least 6GB VRAM when using NVIDIA, AMD, or Intel Arc GPUs is recommended. +::: +- 6GB can load the 3B model (int4) with `ngl` at 120 ~ full speed on CPU/ GPU. +- 8GB can load the 7B model (int4) with `ngl` at 120 ~ full speed on CPU/ GPU. +- 12GB can load the 13B model (int4) with `ngl` at 120 ~ full speed on CPU/ GPU. +:::info +- [NVIDIA driver](https://www.nvidia.com/Download/index.aspx) version 470.63.01 or higher. +- [CUDA Toolkit](https://developer.nvidia.com/cuda-toolkit) version 12.3 or higher. +::: +#### Disk +- At least 10GB for app storage and model download. \ No newline at end of file diff --git a/docs/docs/integrate-remote-engine.mdx b/docs/docs/integrate-remote-engine.mdx new file mode 100644 index 000000000..b32fcc635 --- /dev/null +++ b/docs/docs/integrate-remote-engine.mdx @@ -0,0 +1,84 @@ +--- +title: Integrate Remote Engine +description: How to integrate remote engine into Cortex. +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + + +This document provides a step-by-step guide to adding a new engine to the Cortex codebase, similar to the `OpenAIEngineExtension`. + + +## Integrate a New Remote Engine + +### Step 1: Create the New Engine Extension + +1. Navigate to the `cortex-js/src/extensions` directory. +2. Create a new file named `.engine.ts` (replace `` with the name of your engine). +3. Implement your new engine extension class using the following template: + +```typescript +class EngineExtension extends OAIEngineExtension { + apiUrl = 'https://api..com/v1/chat/completions'; + name = ''; + productName = ' Inference Engine'; + description = 'This extension enables chat completion API calls'; + version = '0.0.1'; + apiKey?: string; +} +``` + +:::info +Be sure to replace all placeholders with the appropriate values for your engine. +::: + +### Step 2: Register the New Engine + +1. Open the `extensions.module.ts` located at `cortex-js/src/extensions/`. + +2. Register your new engine in the provider array using the following code: + +```typescript +[ + new OpenAIEngineExtension(httpService, configUsecases, eventEmitter), + //... other remote engines + new EngineExtension(httpService, configUsecases, eventEmitter), +] +``` + +## Explanation of Key Properties and Methods +| **Value** | **Description** | +|------------------------------------|--------------------------------------------------------------------------------------------------| +| `apiUrl` | This is the URL endpoint for the new engine's API. It is used to make chat completion requests. | +| `name` | This is a unique identifier for the engine. It is used internally to reference the engine. | +| `productName` | This is a human-readable name for the engine. It is used for display purposes. | +| `description` | This provides a brief description of what the engine does. It is used for documentation and display purposes. | +| `version` | This indicates the version of the engine extension. It is used for version control and display purposes. | +| `eventEmmitter.on('config.updated')` | This is an event listener that listens for configuration updates. When the configuration for the engine is updated, this listener updates the `apiKey` and the engine's status. | +| `onLoad` | This method is called when the engine extension is loaded. It retrieves the engine's configuration (such as the `apiKey`) and sets the engine's status based on whether the `apiKey` is available. | + +## Advanced: Transforming Payloads and Responses + +Some engines require custom transformations for the payload sent to the API and the response received from the API. This is achieved using the `transformPayload` and `transformResponse` methods. These methods allow you to modify the data structure to match the specific requirements of the engine. + +### `transformPayload` + +The `transformPayload` method is used to transform the data before sending it to the engine's API. This method takes the original payload and modifies it as needed. + +**Example: Anthropic Engine** + +In the Anthropic Engine, the `transformPayload` method extracts the system message and other messages, and includes additional parameters like `model`, `stream`, and `max_tokens`. + +### `transformResponse` + +The `transformResponse` method is used to transform the data received from the engine's API. This method processes the response and converts it into a format that the application can use. + +**Example: Anthropic Engine** + +In the Anthropic Engine, the `transformResponse` method handles both stream and non-stream responses. It processes the response data and converts it into a standardized format. + diff --git a/docs/docs/model-overview.mdx b/docs/docs/model-overview.mdx new file mode 100644 index 000000000..0eecc9ee4 --- /dev/null +++ b/docs/docs/model-overview.mdx @@ -0,0 +1,42 @@ +--- +title: Model Overview +description: The Model section overview +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +When Cortex.cpp is started, it automatically starts an API server, this is inspired by Docker CLI. This server manages various model endpoints. These endpoints facilitate the following: +- **Model Operations**: Run and stop models. +- **Model Management**: Manage your local models. +:::info +The model in the API server is automatically loaded/unloaded by using the [`/chat/completions`](/api-reference#tag/inference/post/v1/chat/completions) endpoint. +::: +## Model Formats +Cortex.cpp supports three model formats: +- GGUF +- ONNX +- TensorRT-LLM + +:::info +For details on each format, see the [Model Formats](/docs/model-yaml#model-formats) page. +::: + +## Built-in Models +Cortex.cpp offers a range of built-in models that include popular open-source options. These models, hosted on HuggingFace as [Cortex Model Repositories](/docs/hub/cortex-hub), are pre-compiled for different engines, enabling each model to have multiple branches in various formats. + +### Built-in Model Variants +Built-in models are made available across the following variants: + +- **By format**: `gguf`, `onnx`, and `tensorrt-llm` +- **By Size**: `7b`, `13b`, and more. +- **By quantizations**: `q4`, `q8`, and more. + +:::info +You can see our full list of Built-in Models [here](/models). +::: + +## Next steps +- Cortex requires a `model.yaml` file to run a model. Find out more [here](/docs/model-yaml). +- Cortex supports multiple model hubs hosting built-in models. See details [here](/docs/model-sources). \ No newline at end of file diff --git a/docs/docs/model-presets.mdx b/docs/docs/model-presets.mdx new file mode 100644 index 000000000..d4196e146 --- /dev/null +++ b/docs/docs/model-presets.mdx @@ -0,0 +1,17 @@ +--- +title: Model Presets +description: Model Presets +--- + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +## Model Presets + +Model presets are saved `model.yaml` files that serve as templates for pre-configured model settings. These presets are designed to ensure optimal performance with the specified engine. +These presets are not restricted to specific models. You can apply the presets to any model or any engine runtime. + +:::info +Model presets override the values of the `model.yaml`. If presets are available, Cortex uses them. Otherwise, it defaults to `model.yaml` values. +::: \ No newline at end of file diff --git a/docs/docs/model-yaml.mdx b/docs/docs/model-yaml.mdx new file mode 100644 index 000000000..53a25a770 --- /dev/null +++ b/docs/docs/model-yaml.mdx @@ -0,0 +1,140 @@ +--- +title: model.yaml +description: The model.yaml +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +Cortex.cpp uses a `model.yaml` file to specify the configuration for running a model. Models can be downloaded from the Cortex Model Hub or Hugging Face repositories. Once downloaded, the model data is parsed and stored in the `models` folder. + +## `model.list` +The `model.list` file acts as a registry for all model files used by Cortex.cpp. It keeps track of every downloaded and imported model by listing their details in a structured format. Each time a model is downloaded or imported, Cortex.cpp will automatically append an entry to `model.list` with the following format: +``` +# Downloaded model + + +# Imported model + local imported + +``` +## `model.yaml` High Level Structure +Here is an example of `model.yaml` format: +```yaml +# BEGIN GENERAL METADATA +model: gemma-2-9b-it-Q8_0 ## Model ID which is used for request construct - should be unique between models (author / quantization) +name: Llama 3.1 ## metadata.general.name +version: 1 ## metadata.version +sources: ## can be universal protocol (models://) OR absolute local file path (file://) OR https remote URL (https://) + - models://huggingface/bartowski/Mixtral-8x22B-v0.1/main/Mixtral-8x22B-v0.1-IQ3_M-00001-of-00005.gguf # for downloaded model from HF + - files://C:/Users/user/Downloads/Mixtral-8x22B-v0.1-IQ3_M-00001-of-00005.gguf # for imported model +# END GENERAL METADATA + +# BEGIN INFERENCE PARAMETERS +## BEGIN REQUIRED +stop: ## tokenizer.ggml.eos_token_id +Β  - <|end_of_text|> +Β  - <|eot_id|> +Β  - <|eom_id|> +## END REQUIRED +## BEGIN OPTIONAL +stream: true # Default true? +top_p: 0.9 # Ranges: 0 to 1 +temperature: 0.6 # Ranges: 0 to 1 +frequency_penalty: 0 # Ranges: 0 to 1 +presence_penalty: 0 # Ranges: 0 to 1 +max_tokens: 8192 # Should be default to context length +## END OPTIONAL +# END INFERENCE PARAMETERS + +# BEGIN MODEL LOAD PARAMETERS +## BEGIN REQUIRED +prompt_template: |+ # tokenizer.chat_template +Β  <|begin_of_text|><|start_header_id|>system<|end_header_id|> + +Β  {system_message}<|eot_id|><|start_header_id|>user<|end_header_id|> + +Β  {prompt}<|eot_id|><|start_header_id|>assistant<|end_header_id|> +## END REQUIRED +## BEGIN OPTIONAL +ctx_len: 0 # llama.context_length | 0 or undefined = loaded from model +ngl: 33 # Undefined = loaded from model +## END OPTIONAL +# END MODEL LOAD PARAMETERS + +``` + +The `model.yaml` is composed of three high-level sections: + +### Cortex Meta +```yaml +model: gemma-2-9b-it-Q8_0 +name: Llama 3.1 +version: 1 +sources: + - models://huggingface/bartowski/Mixtral-8x22B-v0.1/main/Mixtral-8x22B-v0.1-IQ3_M-00001-of-00005.gguf + - files://C:/Users/user/Downloads/Mixtral-8x22B-v0.1-IQ3_M-00001-of-00005.gguf +``` +Cortex Meta consists of essential metadata that identifies the model within Cortex.cpp. The required parameters include: +| **Parameter** | **Description** | **Required** | +|------------------------|--------------------------------------------------------------------------------------|--------------| +| `name` | The identifier name of the model, used as the `model_id`. |Yes | +| `model` | Details specifying the variant of the model, including size or quantization. |Yes | +| `version` | The version number of the model. |Yes | +| `sources` | The source file of the model. |Yes | + +### Inference Parameters +```yaml +stop: +Β  - <|end_of_text|> +Β  - <|eot_id|> +Β  - <|eom_id|> +stream: true +top_p: 0.9 +temperature: 0.6 +frequency_penalty: 0 +presence_penalty: 0 +max_tokens: 8192 +``` +Inference parameters define how the results will be produced. The required parameters include: +| **Parameter** | **Description** | **Required** | +|------------------------|--------------------------------------------------------------------------------------|--------------| +| `top_p` | The cumulative probability threshold for token sampling. | No | +| `temperature` | Controls the randomness of predictions by scaling logits before applying softmax. | No | +| `frequency_penalty` | Penalizes new tokens based on their existing frequency in the sequence so far. | No | +| `presence_penalty` | Penalizes new tokens based on whether they appear in the sequence so far. | No | +| `max_tokens` | Maximum number of tokens in the output. | No | +| `stream` | Enables or disables streaming mode for the output (true or false). | No | +| `stop` | Specifies the stopping condition for the model, which can be a word, a letter, or a specific text. | Yes | + + +### Model Load Parameters +```yaml +prompt_template: |+ + <|begin_of_text|><|start_header_id|>system<|end_header_id|> + + {system_message}<|eot_id|><|start_header_id|>user<|end_header_id|> + + {prompt}<|eot_id|><|start_header_id|>assistant<|end_header_id|> + +ctx_len: 0 +ngl: 33 +``` +Model load parameters include the options that control how Cortex.cpp runs the model. The required parameters include: +| **Parameter** | **Description** | **Required** | +|------------------------|--------------------------------------------------------------------------------------|--------------| +| `ngl` | Number of attention heads. | No | +| `ctx_len` | Context length (maximum number of tokens). | No | +| `prompt_template` | Template for formatting the prompt, including system messages and instructions. | Yes | + + +:::info +You can download all the supported model formats from the following: +- [Cortex Model Repos](/docs/hub/cortex-hub) +- [HuggingFace Model Repos](/docs/hub/hugging-face) +::: diff --git a/docs/docs/overview.mdx b/docs/docs/overview.mdx new file mode 100644 index 000000000..25be18b72 --- /dev/null +++ b/docs/docs/overview.mdx @@ -0,0 +1,102 @@ +--- +title: Overview +description: Cortex Overview. +slug: / +--- + +import OAICoverage from "@site/src/components/OAICoverage" +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +# Cortex + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +![Cortex Cover Image](/img/social-card.jpg) + +Cortex.cpp lets you run AI easily on your computer. + +Cortex.cpp is a C++ command-line interface (CLI) designed as an alternative to Ollama. By default, it runs on the `llama.cpp` engine but also supports other engines, including `ONNX` and `TensorRT-LLM`, making it a multi-engine platform. + +## Supported Accelerators +- Nvidia CUDA +- Apple Metal +- Qualcomm AI Engine + +## Supported Inference Backends +- [llama.cpp](https://github.com/ggerganov/llama.cpp): cross-platform, supports most laptops, desktops and OSes +- [ONNX Runtime](https://github.com/microsoft/onnxruntime): supports Windows Copilot+ PCs & NPUs +- [TensorRT-LLM](https://github.com/NVIDIA/TensorRT-LLM): supports Nvidia GPUs + +If GPU hardware is available, Cortex is GPU accelerated by default. + +:::info +**Real-world Use**: Cortex.cpp powers [Jan](https://jan.ai), our on-device ChatGPT-alternative. + +Cortex.cpp has been battle-tested across 1 million+ downloads and handles a variety of hardware configurations. +::: + +## Supported Models + +Cortex.cpp supports the following list of [Built-in Models](/models): + + + +| Model ID | Variant (Branch) | Model size | CLI command | +|------------------|------------------|-------------------|------------------------------------| +| codestral | 22b-gguf | 22B | `cortex run codestral:22b-gguf` | +| command-r | 35b-gguf | 35B | `cortex run command-r:35b-gguf` | +| gemma | 7b-gguf | 7B | `cortex run gemma:7b-gguf` | +| llama3 | gguf | 8B | `cortex run llama3:gguf` | +| llama3.1 | gguf | 8B | `cortex run llama3.1:gguf` | +| mistral | 7b-gguf | 7B | `cortex run mistral:7b-gguf` | +| mixtral | 7x8b-gguf | 46.7B | `cortex run mixtral:7x8b-gguf` | +| openhermes-2.5 | 7b-gguf | 7B | `cortex run openhermes-2.5:7b-gguf`| +| phi3 | medium-gguf | 14B - 4k ctx len | `cortex run phi3:medium-gguf` | +| phi3 | mini-gguf | 3.82B - 4k ctx len| `cortex run phi3:mini-gguf` | +| qwen2 | 7b-gguf | 7B | `cortex run qwen2:7b-gguf` | +| tinyllama | 1b-gguf | 1.1B | `cortex run tinyllama:1b-gguf` | + + +| Model ID | Variant (Branch) | Model size | CLI command | +|------------------|------------------|-------------------|------------------------------------| +| gemma | 7b-onnx | 7B | `cortex run gemma:7b-onnx` | +| llama3 | onnx | 8B | `cortex run llama3:onnx` | +| mistral | 7b-onnx | 7B | `cortex run mistral:7b-onnx` | +| openhermes-2.5 | 7b-onnx | 7B | `cortex run openhermes-2.5:7b-onnx`| +| phi3 | mini-onnx | 3.82B - 4k ctx len| `cortex run phi3:mini-onnx` | +| phi3 | medium-onnx | 14B - 4k ctx len | `cortex run phi3:medium-onnx` | + + + +| Model ID | Variant (Branch) | Model size | CLI command | +|------------------|-------------------------------|-------------------|------------------------------------| +| llama3 | 8b-tensorrt-llm-windows-ampere | 8B | `cortex run llama3:8b-tensorrt-llm-windows-ampere` | +| llama3 | 8b-tensorrt-llm-linux-ampere | 8B | `cortex run llama3:8b-tensorrt-llm-linux-ampere` | +| llama3 | 8b-tensorrt-llm-linux-ada | 8B | `cortex run llama3:8b-tensorrt-llm-linux-ada`| +| llama3 | 8b-tensorrt-llm-windows-ada | 8B | `cortex run llama3:8b-tensorrt-llm-windows-ada` | +| mistral | 7b-tensorrt-llm-linux-ampere | 7B | `cortex run mistral:7b-tensorrt-llm-linux-ampere`| +| mistral | 7b-tensorrt-llm-windows-ampere | 7B | `cortex run mistral:7b-tensorrt-llm-windows-ampere` | +| mistral | 7b-tensorrt-llm-linux-ada | 7B | `cortex run mistral:7b-tensorrt-llm-linux-ada`| +| mistral | 7b-tensorrt-llm-windows-ada | 7B | `cortex run mistral:7b-tensorrt-llm-windows-ada` | +| openhermes-2.5 | 7b-tensorrt-llm-windows-ampere | 7B | `cortex run openhermes-2.5:7b-tensorrt-llm-windows-ampere`| +| openhermes-2.5 | 7b-tensorrt-llm-windows-ada | 7B | `cortex run openhermes-2.5:7b-tensorrt-llm-windows-ada`| +| openhermes-2.5 | 7b-tensorrt-llm-linux-ada | 7B | `cortex run openhermes-2.5:7b-tensorrt-llm-linux-ada`| + + + +:::info +Cortex.cpp supports pulling `GGUF` and `ONNX` models from the [Hugging Face Hub](https://huggingface.co). Read how to [Pull models from Hugging Face](/docs/hub/hugging-face/) +::: + +## Cortex.cpp Versions +Cortex.cpp offers three different versions of the app, each serving a unique purpose: +- **Stable**: The official release version of Cortex.cpp, designed for general use with proven stability. +- **Beta**: This version includes upcoming features still in testing, allowing users to try new functionality before the next official release. +- **Nightly**: Automatically built every night, this version includes the latest updates and changes from the engineering team but may be unstable. + +:::info +Each of these versions has a different CLI prefix command. +::: \ No newline at end of file diff --git a/docs/docs/quickstart.mdx b/docs/docs/quickstart.mdx new file mode 100644 index 000000000..0dea487ec --- /dev/null +++ b/docs/docs/quickstart.mdx @@ -0,0 +1,268 @@ +--- +title: Quickstart +description: Cortex Quickstart. +slug: quickstart +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +## Installation +To install Cortex, download the installer for your operating system from the following options: +- **Stable Version** + - [Windows](https://github.com/janhq/cortex.cpp/releases) + - [Mac](https://github.com/janhq/cortex.cpp/releases) + - [Linux (Debian)](https://github.com/janhq/cortex.cpp/releases) + - [Linux (Fedora)](https://github.com/janhq/cortex.cpp/releases) +## Start Cortex.cpp Processes and API Server +This command starts the Cortex.cpp API server at `localhost:39281`. + + + ```sh + # Stable + cortex start + + # Beta + cortex-beta start + + # Nightly + cortex-nightly start + ``` + + + ```sh + # Stable + cortex.exe start + + # Beta + cortex-beta.exe start + + # Nightly + cortex-nightly.exe start + ``` + + +## Run a Model +This command downloads the default `gguf` model format from the [Cortex Hub](https://huggingface.co/cortexso), starts the model, and chat with the model. + + + ```sh + # Stable + cortex run mistral + + # Beta + cortex-beta run mistral + + # Nightly + cortex-nightly run mistral + ``` + + + ```sh + # Stable + cortex.exe run mistral + + # Beta + cortex-beta.exe run mistral + + # Nightly + cortex-nightly.exe run mistral + ``` + + +:::info +All model files are stored in the `~users/cortex/models` folder. +::: +## Using the Model +### API +```curl +curl http://localhost:39281/v1/chat/completions \ +-H "Content-Type: application/json" \ +-d '{ + "model": "", + "messages": [ + { + "role": "user", + "content": "Hello" + }, + ], + "model": "mistral", + "stream": true, + "max_tokens": 1, + "stop": [ + null + ], + "frequency_penalty": 1, + "presence_penalty": 1, + "temperature": 1, + "top_p": 1 +}' +``` +### Cortex.js +```js +const resp = await cortex.chat.completions.create({ + model: "mistral", + messages: [ + { role: "system", content: "You are a chatbot." }, + { role: "user", content: "What is the capital of the United States?" }, + ], + }); +``` +### Cortex.py +```py +completion = client.chat.completions.create( + model=mistral, + messages=[ + { + "role": "user", + "content": "Say this is a test", + }, + ], +) +``` +## Stop a Model +This command stops the running model. + + + ```sh + # Stable + cortex models stop mistral + + # Beta + cortex-beta models stop mistral + + # Nightly + cortex-nightly models stop mistral + ``` + + + ```sh + # Stable + cortex.exe models stop mistral + + # Beta + cortex-beta.exe models stop mistral + + # Nightly + cortex-nightly.exe models stop mistral + ``` + + +## Show the System State +This command displays the running model and the hardware system status. + + + ```sh + # Stable + cortex ps + + # Beta + cortex-beta ps + + # Nightly + cortex-nightly ps + ``` + + + ```sh + # Stable + cortex.exe ps + + # Beta + cortex-beta.exe ps + + # Nightly + cortex-nightly.exe ps + ``` + + +## Run Different Model Variants + + + ```sh + # Stable + ## Run HuggingFace model with HuggingFace Repo + cortex run TheBloke/Mistral-7B-Instruct-v0.2-GGUF + + # Run Mistral in ONNX format + cortex run mistral:onnx + + # Run Mistral in TensorRT-LLM format + cortex run mistral:tensorrt-llm + + # Beta + ## Run HuggingFace model with HuggingFace Repo + cortex-beta run TheBloke/Mistral-7B-Instruct-v0.2-GGUF + + # Run Mistral in ONNX format + cortex-beta run mistral:onnx + + # Run Mistral in TensorRT-LLM format + cortex-beta run mistral:tensorrt-llm + + # Nightly + ## Run HuggingFace model with HuggingFace Repo + cortex-nightly run TheBloke/Mistral-7B-Instruct-v0.2-GGUF + + # Run Mistral in ONNX format + cortex-nightly run mistral:onnx + + # Run Mistral in TensorRT-LLM format + cortex-nightly run mistral:tensorrt-llm + ``` + + + ```sh + # Stable + ## Run HuggingFace model with HuggingFace Repo + cortex.exe run TheBloke/Mistral-7B-Instruct-v0.2-GGUF + + # Run Mistral in ONNX format + cortex.exe run mistral:onnx + + # Run Mistral in TensorRT-LLM format + cortex.exe run mistral:tensorrt-llm + + # Beta + ## Run HuggingFace model with HuggingFace Repo + cortex-beta.exe run TheBloke/Mistral-7B-Instruct-v0.2-GGUF + + # Run Mistral in ONNX format + cortex-beta.exe run mistral:onnx + + # Run Mistral in TensorRT-LLM format + cortex-beta.exe run mistral:tensorrt-llm + + # Nightly + ## Run HuggingFace model with HuggingFace Repo + cortex-nightly.exe run TheBloke/Mistral-7B-Instruct-v0.2-GGUF + + # Run Mistral in ONNX format + cortex-nightly.exe run mistral:onnx + + # Run Mistral in TensorRT-LLM format + cortex-nightly.exe run mistral:tensorrt-llm + ``` + + + +## What's Next? +Now that Cortex.cpp is set up, here are the next steps to explore: + +1. Adjust the folder path and configuration using the [`.cortexrc`](/docs/basic-usage/cortexrc) file. +2. Explore the Cortex.cpp [data folder](/docs/data-folder) to understand how it stores data. +3. Learn about the structure of the [`model.yaml`](/docs/model-yaml) file in Cortex.cpp. +4. Integrate Cortex.cpp [libraries](/docs/category/libraries) seamlessly into your Python or JavaScript applications. + + +:::info +Cortex.cpp is still in early development, so if you have any questions, please reach out to us: + +- [GitHub](https://github.com/janhq/cortex) +- [Discord](https://discord.gg/YFKKeuVu) + ::: diff --git a/docs/docs/requirements.mdx b/docs/docs/requirements.mdx new file mode 100644 index 000000000..7c13ab772 --- /dev/null +++ b/docs/docs/requirements.mdx @@ -0,0 +1,140 @@ +--- +title: Requirements +description: Hardware, OS, and driver requirements +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +To run LLMs on-device or on-premise, Cortex has the following requirements: + +## Hardware Requirements + + + + + - Mac Intel CPU. + - Mac Apple Silicon. + + + + - Jan supports a processor that can handle AVX2. For the full list, please see [here](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#CPUs_with_AVX2). + - We support older processors with AVX and AVX-512, though this is not recommended. + + - Haswell processors (Q2 2013) and newer. + - Tiger Lake (Q3 2020) and newer for Celeron and Pentium processors. + + + + - Jan supports a processor that can handle AVX2. For the full list, please see [here](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#CPUs_with_AVX2). + - We support older processors with AVX and AVX-512, though this is not recommended. + + - Excavator processors (Q2 2015) and newer. + + + + + - 8GB for running up to 3B models (int4). + - 16GB for running up to 7B models (int4). + - 32GB for running up to 13B models (int4). + + We support DDR2 RAM as the minimum requirement but recommend using newer generations of RAM for improved performance. + + + + - 6GB can load the 3B model (int4) with `ngl` at 120 ~ full speed on CPU/ GPU. + - 8GB can load the 7B model (int4) with `ngl` at 120 ~ full speed on CPU/ GPU. + - 12GB can load the 13B model (int4) with `ngl` at 120 ~ full speed on CPU/ GPU. + + Having at least 6GB VRAM when using NVIDIA, AMD, or Intel Arc GPUs is recommended. + + + + - Having at least 10GB is recommended. + + The app is 1.02 MB, but models are usually 4GB+. + + + + +## Operating System Requirements + + + - MacOSX 13.6 or higher. + - **Dependencies**: + - Node.js version 18 or higher. + - NPM version 9 or higher. + - Homebrew version 3 or higher. + - CPU Instructions Sets: AVX AVX2 AVX512. + + + - Windows 10 or higher. + - **Dependencies**: + - Node.js version 18 or higher. + - NPM version 9 or higher. + - CPU Instructions Sets: AVX AVX2 AVX512. + + + - Debian-based (Supports `.deb` and `AppImage` ) + - Ubuntu-based + - Ubuntu Desktop LTS (official)/ Ubuntu Server LTS (only for server) + - Edubuntu (Mainly desktop) + - Kubuntu (Desktop only) + - Lubuntu (Both desktop and server, though mainly desktop) + - Ubuntu Budgie (Mainly desktop) + - Ubuntu Cinnamon (Desktop only) + - Ubuntu Kylin (Both desktop and server) + - Ubuntu MATE (Desktop only) + - Pacman-based + - Arch Linux based + - Arch Linux (Mainly desktop) + - SteamOS (Desktop only) + - RPM-based (Supports `.rpm` and `AppImage` ) + - Fedora-based + - RHEL-based (Server only) + - openSUSE (Both desktop and server) + - **Dependencies**: + - Node.js version 18 or higher. + - NPM version 9 or higher. + - Homebrew version 3 or higher. + - CPU Instructions Sets: AVX AVX2 AVX512. + - MPI or OpenMPI. + + - Please check whether your Linux distribution supports desktop, server, or both environments. + - For server versions, please refer to the [server installation](https://jan.ai/docs/server-installation). + + + + +## GPU Requirements + + + - [NVIDIA driver](https://www.nvidia.com/Download/index.aspx) version 470.63.01 or higher. + - [CUDA Toolkit](https://developer.nvidia.com/cuda-toolkit) version 12.3 or higher. + + CUDA Toolkit dependencies will be installed when you install Cortex. + + + + - [AMD driver](https://www.amd.com/en/support/download/drivers.html) version 22.7.1 or higher. + + + + + 1. Update the package list: + ```bash + sudo apt update + ``` + 2. Install the OpenMPI binaries and development libraries: + ```bash + sudo apt install openmpi-bin libopenmpi-dev + ``` + + + + \ No newline at end of file diff --git a/docs/docs/telemetry-architecture.mdx b/docs/docs/telemetry-architecture.mdx new file mode 100644 index 000000000..32ac104a2 --- /dev/null +++ b/docs/docs/telemetry-architecture.mdx @@ -0,0 +1,192 @@ +--- +title: Telemetry Infra +description: Telemetry Infrastructure +slug: "telemetry-architecture" +--- + + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +## Architecture +import Diagram from "../src/components/Diagram" + + +The telemetry capability comprises several key components: +1. **Telemetry Collector**: This component gathers telemetry data from the Cortex and exports it to other observability tools for further analysis and monitoring. +2. **Jan Telemetry Server**: This component ingests telemetry data from Cortex. It processes this data and forwards events to Google Logging for further handling. +3. **Google Logging**: This component receives events from the Jan Telemetry Server. It stores and manages these logs and exports them to BigQuery. +4. **Google BigQuery**: This component stores the exported logs from Google Logging. +5. **Metabase**: This component connects to Google BigQuery to perform queries and visualize the data. It provides an interface for analyzing and presenting the telemetry data. + +### Crash Report Schema +```json +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "definitions": { + "StringValue": { + "type": "object", + "properties": { + "stringValue": { + "type": "string" + } + }, + "required": ["stringValue"] + }, + "ObjectValue": { + "type": "object", + "properties": { + "kvlist_value": { + "type": "object", + "properties": { + "values": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "$ref": "#/definitions/StringValue" + } + }, + "required": ["key", "value"] + } + } + }, + "required": ["values"] + } + }, + "required": ["kvlist_value"] + }, + "Attribute": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "oneOf": [ + { "$ref": "#/definitions/StringValue" }, + { "$ref": "#/definitions/ObjectValue" } + ] + } + }, + "required": ["key", "value"] + }, + "TelemetryLog": { + "type": "object", + "properties": { + "traceId": { + "type": "string" + }, + "startTimeUnixNano": { + "type": "string" + }, + "endTimeUnixNano": { + "type": "string" + }, + "severityText": { + "type": "string" + }, + "body": { + "type": "object", + "properties": { + "stringValue": { + "type": "string" + } + }, + "required": ["stringValue"] + }, + "attributes": { + "type": "array", + "items": { "$ref": "#/definitions/Attribute" } + } + }, + "required": ["traceId", "severityText", "body", "attributes"] + }, + "ScopeLog": { + "type": "object", + "properties": { + "scope": { + "type": "object" + }, + "logRecords": { + "type": "array", + "items": { "$ref": "#/definitions/TelemetryLog" } + } + }, + "required": ["scope", "logRecords"] + }, + "Resource": { + "type": "object", + "properties": { + "attributes": { + "type": "array", + "items": { "$ref": "#/definitions/Attribute" } + } + }, + "required": ["attributes"] + }, + "TelemetryEvent": { + "type": "object", + "properties": { + "resource": { "$ref": "#/definitions/Resource" }, + "scopeLogs": { + "type": "array", + "items": { "$ref": "#/definitions/ScopeLog" } + } + }, + "required": ["resource", "scopeLogs"] + } + }, + "type": "object", + "properties": { + "resourceLogs": { + "type": "array", + "items": { "$ref": "#/definitions/TelemetryEvent" } + } + }, + "required": ["resourceLogs"] +} +``` +## Implementation +```mermaid +sequenceDiagram + participant User + participant Server as Cortex Server Main Process + participant Child as Child Process + participant Dir as Local Dir + + User->>Server: Command/Request + Server->>Child: Fork child process + Server-->>Server: Catch uncaughtException, unhandledRejection event from process + Server->>Dir: Fork child process + Child->>Server: Interval ping to main process + Child->>Dir: Insert crash report +``` + +The diagram illustrates the implementation of handling crashes in the Cortex server environment: + +1. **User Interaction** + - The user sends a command or requests to the Cortex Server Main Process. +2. **Cortex Server Main Process** + - The main process handles the initial command or request. + - It forks a child process to monitor and handle errors. + - To manage unexpected errors, the main process catches any `uncaughtException` or `unhandledRejection` events. +3. **Child Process** + - A child process is forked to perform periodic checks (interval pings) to ensure the main process is not hanging or unresponsive. + - This child process can also capture and log errors. +4. **Local Directory** + - If a crash is detected, the error details and crash reports are inserted into a local directory for further analysis and record-keeping. + + +:::info +Learn more about Telemetry: +- [Telemetry CLI command](/docs/cli/telemetry). +::: \ No newline at end of file diff --git a/docs/docs/telemetry.mdx b/docs/docs/telemetry.mdx new file mode 100644 index 000000000..602449978 --- /dev/null +++ b/docs/docs/telemetry.mdx @@ -0,0 +1,118 @@ +--- +title: Telemetry +description: Telemetry +slug: "telemetry" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +Cortex collects telemetry data to enhance our product. This data provides detailed insights into your usage, including crash reports for your Cortex or Jan applications. By analyzing this information, we can identify and fix bugs, optimize performance, and improve overall stability and user experience. +:::info +We do not collect any sensitive or personal information. +::: +## Usage +```bash +cortex telemetry crash +``` +## Dataflow +To understand how our telemetry system operates and how data flows from your hardware into our system, please refer to the [Telemetry architecture](/docs/telemetry-architecture). +## Telemetry Metrics +The collected telemetry metrics for Cortex are divided into two main categories: +- `CrashReportResource` +- `CrashReportPayload` + + +This category includes metrics related to the operating system and hardware details. It captures the following metrics: + +| Metric | Description | +|-----------------|--------------------------------| +| `osName` | Name of the operating system. | +| `osVersion` | Version of the operating system.| +| `architecture` | Architecture of the operating system. | +| `appVersion` | Version of Cortex. | +| `service.name` | Name of the Cortex service. | +| `source` | Source of the report (`cli`, `cortex-server`, or `cortex-cpp`). | +| `cpu` | Model of the CPU. | +| `gpus` | Model of the GPU, vendor, VRAM, and VRAM dynamic. | + + +This category focuses on metrics related to specific operations within Cortex. It captures the following metrics: + +| Metric | Description | +|-------------|--------------------------------| +| `modelId` | ID of the currently used model. | +| `endpoint` | Endpoint of the Cortex Server. | +| `command` | Command executed by Cortex CLI. | + + + +## Turn Off Telemetry + + + ```bash + ## 1. First Command + echo "export CORTEX_CRASH_REPORT=0" >>~/.profile + ## 2. Second Command + source ~/.profile + ``` + + + ```bash + ## 1. First Command + echo "export CORTEX_CRASH_REPORT=0" >>~/.profile + ## 2. Second Command + source ~/.profile + ``` + + + ```bash + ## Command Prompt + set CORTEX_CRASH_REPORT 0 + ## PowerShell + $env:CORTEX_CRASH_REPORT 0 + ## To set the env permanently + setx CORTEX_CRASH_REPORT 0 + ``` + + + + +## Export to Otel Collector + + + ```bash + ## 1. First Command + echo "export CORTEX_EXPORTER_OLTP_ENDPOINT=" >>~/.profile + ## 2. Second Command + source ~/.profile + ``` + + + ```bash + ## 1. First Command + echo "export CORTEX_EXPORTER_OLTP_ENDPOINT=" >>~/.profile + ## 2. Second Command + source ~/.profile + ``` + + + ```bash + ## Command Prompt + set CORTEX_EXPORTER_OLTP_ENDPOINT + ## PowerShell + $env:CORTEX_EXPORTER_OLTP_ENDPOINT + ## To set the env permanently + setx CORTEX_EXPORTER_OLTP_ENDPOINT + ``` + + + +:::info +Learn more about Telemetry: +- [Telemetry CLI command](/docs/cli/telemetry). +::: \ No newline at end of file diff --git a/docs/docs/troubleshooting.mdx b/docs/docs/troubleshooting.mdx new file mode 100644 index 000000000..e50ab115b --- /dev/null +++ b/docs/docs/troubleshooting.mdx @@ -0,0 +1,159 @@ +--- +title: Troubleshooting +description: Troubleshooting +slug: "troubleshooting" +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import Admonition from '@theme/Admonition'; + + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +## Model No Response + +In this issue, the model and the engine load successfully, but when interacting with the model, the model either times out or does not respond. This issue may occur when Cortex is running with low or insufficient VRAM hardware. + +To resolve this issue: + + + 1. `cortex stop` to stop the Cortex process and model if you have started a model before. + 2. To make sure the processes are terminated, open your **Task Manager**. + 3. Search for any **Jan** or **Cortex** processes β†’ **Terminate** the tasks. + 4. Rerun `cortex`. + + + 1. `cortex stop` to stop the Cortex process and model if you have started a model before. + 2. To make sure the processes are terminated, open your **Activity Monitor**. + 3. Search for any **Jan** or **Cortex** processes β†’ **Terminate** the tasks. + 4. Rerun `cortex` + + + +## Axios Error +```bash +AxiosError: getaddrinfo ENOTFOUND api.github.com +``` + +This issue occurs for several reasons: + +- Bad internet connection when Cortex trying to download the model or the engine data. +- If you attempt to run a model with a specific engine that has not been initialized yet after installing Cortex. + +To resolve this issue: + +1. Ensure your internet connection is good, or restart your model. +2. Follow the command below to restart the Cortex process: + +```bash +# Stop the Cortex process +cortex stop +# Start the Cortex process +cortex +# Init the engine +cortex engines init +``` + +## Engine Installation Error + +```bash +Installing engine . . .Error:EPERM: operation not permitted +``` +This issue occurs when an engine runs in the background and you attempt to run a different engine without stopping the previous one. + +To resolve this issue, follow the steps below: + +```bash +# Stop the Cortex process +cortex stop +# Start the Cortex process +cortex +# Init the engine +cortex run : +``` + +## 500 Status Code + +"500 status code ("no body") indicates an internal server error with no additional details provided. This issue may occur for several reasons: + +1. Cortex is running in low or insufficient VRAM hardware. +2. The engine version is outdated, while the model requires the latest version of the engine. + +To resolve this issue: + + + To solve the insufficient VRAM: + + 1. `cortex stop` to stop the Cortex process and model if you have started a model before. + 2. To make sure the processes are terminated, open your **Task Manager**. + 3. Search for any **Jan** or **Cortex** processes β†’ Terminate the tasks. + 4. Rerun `cortex`. + + To solve the error caused by the outdated engine version: + + 1. Re-initialize the engine that you want to use: + + ```bash + # ONNX Engine + cortex engines onnx init + # TensorRT-LLM Engine + cortex engines tensorrt-llm init + ``` + + 2. Rerun `cortex` β†’ run the model you want to use. + + + To solve the insufficient VRAM: + 1. `cortex stop` to stop the Cortex process and model if you have started a model before. + 2. To make sure the processes are terminated, open your **Activity Monitor**. + 3. Search for any **Jan** or **Cortex** processes β†’ **Terminate** the tasks. + 4. Rerun `cortex`. + + To solve the error caused by the outdated engine version: + + 1. Re-initialize the engine that you want to use: + + ```bash + # ONNX Engine + cortex engines onnx init + # TensorRT-LLM Engine + cortex engines tensorrt-llm init + ``` + + 2. Rerun `cortex` β†’ run the model you want to use. + + + +## 426 Error Code + +This issue occurs when a new Cortex process is started without fully stopping the previous Cortex processes. This causes a heavy load on port `39281` and requires a protocol upgrade. + +To resolve this issue: + + + +```bash +# Check for network connections using port 1337 to find the Cortex PID. +netstat -an | findstr :1337 + +# Terminate Cortex process by its Process ID (PID). +taskkill /f /pid [pid] +``` + + +```bash +# Check for network connections using port 1337 to find the Cortex PID. +lsof -i :1337 + +# Terminate Cortex process by its Process ID (PID). +kill -9 [pid] +``` + + + +:::info +For additional issues not listed above, please contact us on [Discord](https://discord.com/channels/1107178041848909847/1267305972733444147) or submit a [GitHub issue](https://github.com/janhq/cortex/issues). Include your `~/cortex/cortex.log` or an error snippet. +::: diff --git a/docs/docs/using-models.mdx b/docs/docs/using-models.mdx new file mode 100644 index 000000000..24137a366 --- /dev/null +++ b/docs/docs/using-models.mdx @@ -0,0 +1,189 @@ +--- +title: Using Models +description: Model Operations +slug: "using-models" +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +:::warning +🚧 Cortex.cpp is currently under development. Our documentation outlines the intended behavior of Cortex, which may not yet be fully implemented in the codebase. +::: + +Cortex's Models API is compatible with OpenAI’s [Models](https://platform.openai.com/docs/api-reference/models) endpoint. It is a fork of the OpenAI API used for model management. Additionally, Cortex exposes lower-level operations for managing models like downloading models from a model hub and model loading. + +## Model Operation +Model Operation allows you to pull, run, and stop models. +### Run Model +:::info +The Run Model CLI and endpoint will automatically pull a model if it has not been downloaded yet. +::: + + + ```bash + curl --request POST \ + --url http://localhost:39281/v1/models/mistral/start \ + --header 'Content-Type: application/json' \ + --data '{ + "prompt_template": "system\n{system_message}\nuser\n{prompt}\nassistant", + "stop": [], + "ngl": 4096, + "ctx_len": 4096, + "cpu_threads": 10, + "n_batch": 2048, + "caching_enabled": true, + "grp_attn_n": 1, + "grp_attn_w": 512, + "mlock": false, + "flash_attn": true, + "cache_type": "f16", + "use_mmap": true, + "engine": "llamacpp" + }' + ``` + + + ```bash + cortex models run + ``` + + + + + + +### Stop Model + + + ```bash + curl --request POST \ + --url http://localhost:39281/models/mistral/stop + + + + ``` + + + ```bash + cortex models stop + ``` + + + + + + +### Pull Model + + + ```bash + curl --request POST \ + --url http://localhost:39281/v1/models/mistral/pull + + + + ``` + + + ```bash + # Download a built-in model + cortex models pull mistral + # Download a specific variant + cortex models pull bartowski/Hermes-2-Theta-Llama-3-70B-GGUF + ``` + + + + + + + +## Models Management +Model Management allows you to manage your local models, which can be found in `~users/user_name/cortex/models`. +### List Models + + + ```bash + curl --request GET \ + --url http://localhost:39281/v1/models + + + + ``` + + + ```bash + cortex models list + ``` + + + + + + +### Get Model + + + ```bash + curl --request GET \ + --url http://localhost:39281/v1/models/mistral + + + + ``` + + + ```bash + cortex models get + ``` + + + + + + +### Delete Model + + + ```bash + curl --request DELETE \ + --url http://localhost:39281/v1/models/mistral + + + + ``` + + + ```bash + cortex models remove + ``` + + + + + + +### Update Model + + + ```bash + curl --request PATCH \ + --url http://localhost:39281/v1/models/mistral \ + --header 'Content-Type: application/json' \ + --data '{}' + + + + ``` + + + ```bash + cortex models update + ``` + + + + + + \ No newline at end of file diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts new file mode 100644 index 000000000..ed0680352 --- /dev/null +++ b/docs/docusaurus.config.ts @@ -0,0 +1,499 @@ +require("dotenv").config(); + +import { themes as prismThemes } from "prism-react-renderer"; +import type { Config } from "@docusaurus/types"; +import type * as Preset from "@docusaurus/preset-classic"; +import type { ScalarOptions } from "@scalar/docusaurus"; +import { downloadFile, listModels, listFiles } from "@huggingface/hub"; +import { remarkCodeHike } from "@code-hike/mdx"; +import fs from "fs"; +import path from "path"; +import matter from "gray-matter"; + +const date = new Date(); + +const month = ("0" + (date.getMonth() + 1)).slice(-2); +const day = ("0" + date.getDate()).slice(-2); +const year = date.getFullYear(); + +const formattedDate = `${month}-${day}-${year}`; + +async function fetchDataDaily(date: string) { + const response = await fetch( + `https://delta.jan.ai/openai-api-collection-test/${date}.json` + ); + if (!response.ok) { + return {}; + } + const data = await response.json(); + return data; +} + +function generateDates(startDate: string, numberOfDays: number): string[] { + const dates: string[] = []; + const start = new Date(startDate); + + for (let i = 0; i < numberOfDays; i++) { + const date = new Date(start); + date.setDate(start.getDate() - i); + const formattedDate = `${(date.getMonth() + 1) + .toString() + .padStart(2, "0")}-${date + .getDate() + .toString() + .padStart(2, "0")}-${date.getFullYear()}`; + dates.push(formattedDate); + } + + return dates; +} + +const dateArray = generateDates(formattedDate, 30); + +const config: Config = { + title: "Cortex", + titleDelimiter: "-", + tagline: + "Cortex is an Local AI engine for developers to run and customize Local LLMs. It is packaged with a Docker-inspired command-line interface and a Typescript client library. It can be used as a standalone server, or imported as a library. Cortex's roadmap is to eventually support full OpenAI API-equivalence.", + favicon: "img/favicons/favicon.ico", + staticDirectories: ["static"], + + plugins: [ + [ + "@docusaurus/plugin-content-docs", + { + id: "changelog", + path: "changelog", + routeBasePath: "changelog", + }, + ], + "docusaurus-plugin-sass", + async function myPlugin(context, options) { + return { + name: "docusaurus-tailwindcss", + configurePostCss(postcssOptions) { + // Appends TailwindCSS and AutoPrefixer. + postcssOptions.plugins.push(require("tailwindcss")); + postcssOptions.plugins.push(require("autoprefixer")); + return postcssOptions; + }, + }; + }, + + async function modelsPagesGenPlugin(context, options) { + return { + name: "list-models", + async contentLoaded({ content, actions }) { + const { setGlobalData } = actions; + try { + let fetchedModels = []; + for await (const model of listModels({ + search: { owner: "cortexso" }, + })) { + try { + const files = []; + let readmeContent = "README.md not available"; + let modelContent = "model.yml not available"; + for await (const fileInfo of listFiles({ + repo: model.name, + })) { + files.push(fileInfo); + if (fileInfo.path === "README.md") { + const response = await downloadFile({ + repo: model.name, + path: "README.md", + }); + if (response && response.text) { + readmeContent = await response.text(); + } + } + if (fileInfo.path === "model.yml") { + const response = await downloadFile({ + repo: model.name, + path: "model.yml", + }); + if (response && response.text) { + modelContent = await response.text(); + } + } + } + try { + let refs = {}; + const response = await fetch( + `https://huggingface.co/api/models/${model.name}/refs` + ); + refs = await response.json(); + fetchedModels.push({ + ...model, + files, + readmeContent, + modelContent, + ...refs, + }); + } catch (error) { + console.error("Error fetching refs"); + } + } catch (error) { + console.error("Error fetching files:", error); + fetchedModels.push({ + ...model, + files: [], + readmeContent: "Error fetching README.md", + modelContent: "Error fetching model.yml", + error: "Error fetching files", + }); + } + } + setGlobalData(fetchedModels); + await Promise.all( + fetchedModels.map(async (page) => { + return actions.addRoute({ + // this is the path slug + // you can make it dynamic here + path: `/models/${page.name.replace("cortexso/", "")}`, + // the page component used to render the page + component: require.resolve( + "./src/components/MyModelPage/index.tsx" + ), + // will only match for exactly matching paths + exact: true, + // you can use this to optionally overwrite certain theme components + // see here: https://github.com/facebook/docusaurus/blob/main/packages/docusaurus-plugin-content-blog/src/index.ts#L343 + modules: {}, + // any extra custom data keys are passed to the page + // in this case, we merge the page data together with the loaded content data + customData: { ...page }, + }); + }) + ); + } catch (error) { + console.error("Error fetching models:", error); + } + }, + }; + }, + + async function getChangelogList(context, options) { + return { + name: "changelog-list", + async contentLoaded({ content, actions }) { + const { setGlobalData } = actions; + + let changelog = []; + + const changelogDir = path.resolve(__dirname, "changelog"); + const files = fs.readdirSync(changelogDir); + + // Loop through all .mdx files in the changelog directory + files.forEach(async (file) => { + if (file.endsWith(".mdx")) { + const filePath = path.join(changelogDir, file); + const fileContent = fs.readFileSync(filePath, "utf-8"); + + const { data, content } = matter(fileContent); + + changelog.push({ + frontmatter: data, // Frontmatter metadata (e.g., title, date) + body: content, // The actual MDX content + }); + } + }); + changelog.sort( + (a, b) => + new Date(b.frontmatter.date).getTime() - + new Date(a.frontmatter.date).getTime() + ); + setGlobalData(changelog); + }, + }; + }, + + async function getRepoInfo(context, options) { + return { + name: "repo-info", + async contentLoaded({ content, actions }) { + const { setGlobalData } = actions; + const fetchRepoInfo = await fetch( + "https://api.github.com/repos/janhq/cortex.cpp" + ); + const repoInfo = await fetchRepoInfo.json(); + setGlobalData(repoInfo); + }, + }; + }, + async function getRepoLatestReleaseInfo(context, options) { + return { + name: "latest-release", + async contentLoaded({ content, actions }) { + const { setGlobalData } = actions; + const fetchLatestRelease = await fetch( + "https://api.github.com/repos/janhq/cortex.cpp/releases/latest" + ); + const latestRelease = await fetchLatestRelease.json(); + setGlobalData(latestRelease); + }, + }; + }, + async function getDataOAITotalCoverage(context, options) { + return { + name: "oai-total-coverage", + async contentLoaded({ content, actions }) { + const { setGlobalData } = actions; + const fetchTotalCoverage = await fetch( + "https://delta.jan.ai/openai-api-collection-test/total-coverage.json" + ); + const totalCoverage = await fetchTotalCoverage.json(); + setGlobalData(totalCoverage); + }, + }; + }, + async function getDataOAIDaily(context, options) { + return { + name: "oai-daily-report", + async contentLoaded({ content, actions }) { + const { setGlobalData } = actions; + + let results = []; + for (let date of dateArray) { + try { + let data = await fetchDataDaily(date); + results.push({ date: date, ...data } as never); + } catch (error) { + results.push({ date: date } as never); + } + } + + setGlobalData(results as []); + }, + }; + }, + [ + "./src/plugins/scalar/index.ts", + { + label: "API Reference", + showNavLink: false, + route: "/api-reference", + configuration: { + spec: { + url: "/openapi/jan.json", + }, + hideModels: true, + }, + } as ScalarOptions, + ], + "docusaurus-plugin-dotenv", + ], + + scripts: [ + { + src: `https://www.googletagmanager.com/gtag/js?id=${process.env.GTM_ID}`, + async: true, + }, + { + src: "/js/gtag.js", + async: false, + }, + ], + + // Set the production url of your site here + url: "https://cortex.so", + // Set the // pathname under which your site is served + // For GitHub pages deployment, it is often '//' + baseUrl: "/", + + themes: ["live-codeblock", "@docusaurus/theme-mermaid"], + + markdown: { + format: "detect", + mermaid: true, + }, + + // GitHub pages deployment config. + // If you aren't using GitHub pages, you don't need these. + organizationName: "janhq", // Usually your GitHub org/user name. + projectName: "cortex", // Usually your repo name. + + onBrokenLinks: "throw", + onBrokenMarkdownLinks: "warn", + + // Even if you don't use internationalization, you can use this field to set + // useful metadata like html lang. For example, if your site is Chinese, you + // may want to replace "en" with "zh-Hans". + i18n: { + defaultLocale: "en", + locales: ["en"], + }, + + presets: [ + [ + "classic", + { + docs: { + beforeDefaultRemarkPlugins: [ + [ + remarkCodeHike, + { + theme: "dark-plus", + showCopyButton: true, + skipLanguages: ["mermaid"], + }, + ], + ], + sidebarPath: "./sidebars.ts", + // Please change this to your repo. + // Remove this to remove the "edit this page" links. + editUrl: "https://github.com/janhq/cortex.so/tree/main/", + }, + sitemap: { + changefreq: "daily", + priority: 1.0, + ignorePatterns: ["/tags/**"], + filename: "sitemap.xml", + }, + theme: { + customCss: [ + require.resolve("@code-hike/mdx/styles.css"), + "./src/styles/main.scss", + ], + }, + } satisfies Preset.Options, + ], + ], + + themeConfig: { + algolia: { + appId: process.env.ALGOLIA_APP_ID || "XXX", + apiKey: process.env.ALGOLIA_API_KEY || "XXX", + indexName: "cortex", + contextualSearch: true, + insights: true, + }, + + metadata: [ + { + name: "description", + content: + "Cortex is an Local AI engine for developers to run and customize Local LLMs. It is packaged with a Docker-inspired command-line interface and a Typescript client library. It can be used as a standalone server, or imported as a library. Cortex's roadmap is to eventually support full OpenAI API-equivalence.", + }, + { + name: "og:description", + content: + "Cortex is an Local AI engine for developers to run and customize Local LLMs. It is packaged with a Docker-inspired command-line interface and a Typescript client library. It can be used as a standalone server, or imported as a library. Cortex's roadmap is to eventually support full OpenAI API-equivalence.", + }, + ], + + headTags: [ + // Declare some json-ld structured data + { + tagName: "script", + attributes: { + type: "application/ld+json", + }, + innerHTML: JSON.stringify({ + "@context": "https://schema.org/", + "@type": "Organization", + name: "Cortex", + url: "https://cortex.so/", + logo: "https://cortex.so/img/logos/cortex-logo.svg", + }), + }, + ], + + image: "img/social-card.jpg", + navbar: { + logo: { + alt: "Cortex Logo", + src: "/img/logos/cortex-logo.svg", + srcDark: "/img/logos/cortex-logo-dark.svg", + width: 116, + }, + items: [ + { to: "/models", label: "Models", position: "left" }, + { to: "/changelog", label: "Changelog", position: "left" }, + { + type: "doc", + position: "right", + docId: "overview", + label: "Docs", + }, + { + to: "/api-reference", + label: "API Reference", + position: "right", + }, + { + type: "search", + position: "right", + }, + { + type: "custom-socialNavbar", + position: "right", + }, + ], + }, + footer: { + links: [ + { + title: "Cortex", + items: [ + { + label: "Docs", + to: "/docs", + }, + { to: "/docs/cli", label: "CLI" }, + { href: "/api-reference", label: "API Reference" }, + { to: "/models", label: "Models" }, + { to: "/changelog", label: "Changelog" }, + ], + }, + { + title: "Community", + items: [ + { + label: "Github", + href: "https://github.com/janhq/cortex.cpp", + }, + { + label: "Discord", + href: "https://discord.gg/FTk2MvZwJH", + }, + { + label: "Twitter", + href: "https://x.com/cortex_so", + }, + { + label: "Linkedin", + href: "https://www.linkedin.com/company/homebrewltd/", + }, + ], + }, + { + title: "Company", + items: [ + { + label: "About", + href: "https://jan.ai/about", + }, + { + label: "Careers", + href: "https://homebrew.bamboohr.com/careers", + }, + ], + }, + ], + logo: { + alt: "Cortex Logo", + src: "/img/logos/cortex-logo-mark.svg", + srcDark: "/img/logos/cortex-logo-mark.svg", + width: 34, + }, + copyright: `Β©${new Date().getFullYear()} Homebrew Computer Company`, + }, + prism: { + theme: prismThemes.github, + darkTheme: prismThemes.dracula, + }, + } satisfies Preset.ThemeConfig, +}; + +export default config; diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 000000000..23e64fa3b --- /dev/null +++ b/docs/package.json @@ -0,0 +1,82 @@ +{ + "name": "cortex-web", + "version": "0.0.0", + "private": true, + "scripts": { + "docusaurus": "docusaurus", + "start": "docusaurus start", + "dev": "docusaurus start", + "build": "docusaurus build", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus deploy", + "clear": "docusaurus clear", + "serve": "docusaurus serve", + "write-translations": "docusaurus write-translations", + "write-heading-ids": "docusaurus write-heading-ids", + "create:changelog": "plop create-changelog", + "typecheck": "tsc" + }, + "dependencies": { + "@code-hike/mdx": "^0.9.0", + "@docsearch/js": "^3.6.0", + "@docsearch/react": "^3.6.0", + "@docusaurus/core": "3.4.0", + "@docusaurus/preset-classic": "^3.4.0", + "@docusaurus/theme-live-codeblock": "^3.4.0", + "@docusaurus/theme-mermaid": "^3.4.0", + "@excalidraw/excalidraw": "^0.17.6", + "@huggingface/hub": "^0.15.1", + "@mdx-js/react": "3.0.1", + "@radix-ui/react-select": "^2.1.1", + "@radix-ui/react-tooltip": "^1.0.7", + "@scalar/docusaurus": "^0.3.5", + "autoprefixer": "^10.4.19", + "chalk": "^5.3.0", + "chokidar": "^3.6.0", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "date-fns": "^3.6.0", + "docusaurus-plugin-dotenv": "^1.0.1", + "docusaurus-plugin-sass": "^0.2.5", + "framer-motion": "^11.2.12", + "highlight.js": "^11.9.0", + "lucide-react": "^0.395.0", + "markdown-it": "^14.1.0", + "markdown-it-link-attributes": "^4.0.1", + "plop": "^4.0.1", + "plop-helper-date": "^1.0.0", + "postcss": "^8.4.38", + "prism-react-renderer": "^2.3.0", + "react": "^18.0.0", + "react-device-detect": "^2.2.3", + "react-dom": "^18.0.0", + "react-hook-form": "^7.52.0", + "react-icons": "^5.2.1", + "sass": "^1.77.4", + "tailwind-merge": "^2.3.0", + "tailwindcss": "^3.4.3" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "3.4.0", + "@docusaurus/tsconfig": "3.4.0", + "@docusaurus/types": "3.4.0", + "dotenv": "^16.4.5", + "typescript": "~5.4.5" + }, + "browserslist": { + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 3 chrome version", + "last 3 firefox version", + "last 5 safari version" + ] + }, + "engines": { + "node": ">=18.0" + }, + "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" +} diff --git a/docs/plopfile.mjs b/docs/plopfile.mjs new file mode 100644 index 000000000..19bba64d0 --- /dev/null +++ b/docs/plopfile.mjs @@ -0,0 +1,91 @@ +import chalk from "chalk"; + +const capitalize = (str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}; + +const camelCase = (str) => { + return str.replace(/[-_](\w)/g, (_, c) => c.toUpperCase()); +}; + +/** + * @param {import("plop").NodePlopAPI} plop + */ +export default async function (plop) { + plop.setHelper("capitalize", (text) => { + return capitalize(camelCase(text)); + }); + + plop.load("plop-helper-date"); + + plop.setGenerator("create-changelog", { + description: "Generates a changelog", + prompts: [ + { + type: "input", + name: "title", + message: "Enter the title of the changelog post:", + validate: (input) => (input ? true : "Title is required."), + }, + { + type: "input", + name: "slug", + message: (answers) => + `Enter the slug for the changelog post (suggested: ${generateSlug( + answers.title + )})`, + default: (answers) => generateSlug(answers.title), + validate: (input) => + input && /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(input) + ? true + : "Please enter a valid slug (lowercase letters, numbers, and hyphens only).", + }, + { + type: "input", + name: "version", + message: "Enter the version of the changelog post:", + validate: (input) => (input ? true : "Title is required."), + }, + { + type: "input", + name: "description", + message: "Enter the description of the changelog post:", + validate: (input) => (input ? true : "Description is required."), + }, + ], + + actions(answers) { + const actions = []; + if (!answers) return actions; + const { version, title, description, slug } = answers; + + actions.push({ + type: "addMany", + templateFiles: "templates/**", + destination: `./changelog`, + globOptions: { dot: true }, + data: { title, description, version }, + abortOnFail: true, + }); + + console.log(chalk.green(`Your changelog post is created!`)); + console.log(chalk.green(`You can modify under /changelog/${slug}`)); + console.log( + chalk.cyan( + `You can view it at: http://localhost:3000/changelog/${slug}` + ) + ); + + return actions; + }, + }); + + function generateSlug(title) { + return title + ? title + .toLowerCase() + .replace(/[^a-z0-9]+/g, "-") + .replace(/^-+|-+$/g, "") + : ""; + } +} diff --git a/docs/sidebars.ts b/docs/sidebars.ts new file mode 100644 index 000000000..09f2fb298 --- /dev/null +++ b/docs/sidebars.ts @@ -0,0 +1,331 @@ +import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; + +/** + * Creating a sidebar enables you to: + - create an ordered group of docs + - render a sidebar for each doc of that group + - provide next/previous navigation + + The sidebars can be generated from the filesystem, or explicitly defined here. + + Create as many sidebars as you want. + */ +const sidebars: SidebarsConfig = { + // By default, Docusaurus generates a sidebar from the docs folder structure + sidebar: [ + // { + // type: "html", + // value: + // '', + // }, + // { + // type: "html", + // value: + // '', + // }, + { + type: "html", + value: "GET STARTED", + + className: "sidebar-divider", + }, + "overview", + "quickstart", + { + type: "category", + label: "Installation", + link: { + type: "generated-index", + }, + collapsed: true, + items: [ + { type: "doc", id: "installation/windows", label: "Windows" }, + { type: "doc", id: "installation/mac", label: "Mac" }, + { type: "doc", id: "installation/linux", label: "Linux" }, + { type: "doc", id: "installation/docker", label: "Docker" }, + { + type: "doc", + id: "installation/gpu-acceleration", + label: "GPU Acceleration", + }, + ], + }, + { + type: "html", + value: "BASIC USAGE", + + className: "sidebar-divider", + }, + { type: "doc", id: "basic-usage/overview", label: "Overview" }, + { type: "doc", id: "basic-usage/cortexrc", label: ".cortexrc" }, + { type: "doc", id: "model-yaml", label: "model.yaml" }, + { type: "doc", id: "data-folder", label: "Data Folder" }, + { + type: "category", + label: "Libraries", + link: { + type: "generated-index", + }, + collapsed: true, + items: [ + { + type: "doc", + id: "basic-usage/integration/js-library", + label: "cortex.js", + }, + { + type: "doc", + id: "basic-usage/integration/py-library", + label: "cortex.py", + }, + ], + }, + { + type: "category", + label: "Model Sources", + link: { type: "doc", id: "hub/index" }, + collapsed: true, + items: [ + { type: "doc", id: "hub/cortex-hub", label: "Cortex Model Repos" }, + { type: "doc", id: "hub/hugging-face", label: "HuggingFace Repos" }, + { + type: "doc", + id: "hub/nvidia-ngc", + label: "Nvidia Catalog (Coming Soon)", + }, + ], + }, + { + type: "category", + label: "Engines", + link: { type: "doc", id: "engines/index" }, + collapsed: true, + items: [ + { type: "doc", id: "engines/llamacpp", label: "Llama.cpp" }, + // { type: "doc", id: "engines/tensorrt-llm", label: "TensorRT-LLM" }, + // { type: "doc", id: "engines/onnx", label: "ONNX" }, + ], + }, + // { + // type: "category", + // label: "Basic Usage", + // link: { + // type: "generated-index", + // }, + // collapsed: true, + // items: [ + // { type: "doc", id: "basic-usage/command-line", label: "CLI" }, + // { type: "doc", id: "basic-usage/server", label: "API" }, + // { + // type: "category", + // label: "Integration", + // link: { + // type: "generated-index", + // }, + // collapsed: true, + // items: [ + // { + // type: "doc", + // id: "basic-usage/integration/js-library", + // label: "cortex.js", + // }, + // { + // type: "doc", + // id: "basic-usage/integration/py-library", + // label: "cortex.py", + // }, + // ], + // }, + // ], + // }, + // { type: "doc", id: "telemetry", label: "Telemetry" }, + // MODELs + // { + // type: "html", + // value: "MODELS", + // className: "sidebar-divider", + // }, + // { type: "doc", id: "model-overview", label: "Overview" }, + // { type: "doc", id: "model-yaml", label: "model.yaml" }, + // { type: "doc", id: "built-in-models", label: "Built-in Models" }, + // { + // type: "category", + // label: "Using Models", + // link: { type: "doc", id: "using-models" }, + // collapsed: true, + // items: [ + // { type: "doc", id: "model-yaml", label: "model.yaml" }, + // // { type: "doc", id: "model-presets", label: "Model Presets" }, + // { type: "doc", id: "built-in-models", label: "Built-in Models" }, + // ], + // }, + // BASIC USAGE + // { + // type: "html", + // value: "BASIC USAGE", + // className: "sidebar-divider", + // }, + // { type: "doc", id: "command-line", label: "CLI" }, + // { type: "doc", id: "ts-library", label: "Typescript Library" }, + // { type: "doc", id: "py-library", label: "Python Library" }, + // { type: "doc", id: "server", label: "Server Endpoint" }, + // CAPABILITIES + // { + // type: "html", + // value: "ENDPOINTS", + // className: "sidebar-divider", + // }, + // { type: "doc", id: "chat-completions", label: "Chat Completions" }, + // { type: "doc", id: "embeddings", label: "Embeddings" }, + // CLI + { + type: "html", + value: "CLI", + className: "sidebar-divider", + }, + { type: "doc", id: "cli/cortex", label: "cortex" }, + { type: "doc", id: "cli/start", label: "cortex start" }, + { type: "doc", id: "cli/chat", label: "cortex chat" }, + { type: "doc", id: "cli/embeddings", label: "cortex embeddings" }, + // { type: "doc", id: "cli/presets", label: "cortex presets" }, + { type: "doc", id: "cli/pull", label: "cortex pull" }, + { type: "doc", id: "cli/run", label: "cortex run" }, + { type: "doc", id: "cli/models/index", label: "cortex models" }, + { type: "doc", id: "cli/engines/index", label: "cortex engines" }, + { type: "doc", id: "cli/stop", label: "cortex stop" }, + { type: "doc", id: "cli/ps", label: "cortex ps" }, + { type: "doc", id: "cli/update", label: "cortex update" }, + // { type: "doc", id: "cli/telemetry", label: "cortex telemetry" }, + // { type: "doc", id: "cli/benchmark", label: "cortex benchmark" }, + // ARCHITECTURE + // { + // type: "html", + // value: "ARCHITECTURE", + // className: "sidebar-divider", + // }, + // { type: "doc", id: "architecture", label: "Cortex" }, + // { + // type: "category", + // label: "Engines", + // link: { + // type: "generated-index", + // }, + // collapsed: true, + // items: [ + // { type: "doc", id: "cortex-llamacpp", label: "llama.cpp" }, + // { type: "doc", id: "cortex-tensorrt-llm", label: "TensorRT-LLM" }, + // { type: "doc", id: "cortex-onnx", label: "ONNX" }, + // { + // type: "doc", + // id: "integrate-remote-engine", + // label: "Integrate Remote Engine", + // }, + // ], + // }, + // { + // type: "category", + // label: "Infrastructure", + // link: { + // type: "generated-index", + // }, + // collapsed: true, + // items: [ + // { type: "doc", id: "telemetry-architecture", label: "Telemetry Infra" }, + // { + // type: "doc", + // id: "benchmarking-architecture", + // label: "Benchmarking Infra", + // }, + // ], + // }, + // { + // type: "html", + // value: "TROUBLESHOOTING", + // className: "sidebar-divider", + // }, + // { type: "doc", id: "troubleshooting", label: "Troubleshooting" }, + ], + platform: [ + { + type: "html", + value: + '', + }, + { + type: "html", + value: + '', + }, + { + type: "html", + value: "GET STARTED", + className: "sidebar-divider", + }, + "cortex-platform/about", + { + type: "html", + value: "ENDPOINTS", + className: "sidebar-divider", + }, + { type: "doc", id: "cortex-platform/benchmarking", label: "Benchmarking" }, + { + type: "html", + value: "ARCHITECTURE", + className: "sidebar-divider", + }, + { type: "doc", id: "architecture", label: "Cortex" }, + { + type: "category", + label: "Engines", + link: { + type: "generated-index", + }, + collapsed: true, + items: [ + { type: "doc", id: "cortex-llamacpp", label: "llama.cpp" }, + { type: "doc", id: "cortex-tensorrt-llm", label: "TensorRT-LLM" }, + { type: "doc", id: "cortex-onnx", label: "ONNX" }, + { + type: "doc", + id: "integrate-remote-engine", + label: "Integrate Remote Engine", + }, + ], + }, + { + type: "category", + label: "Infrastructure", + link: { + type: "generated-index", + }, + collapsed: true, + items: [ + { type: "doc", id: "telemetry-architecture", label: "Telemetry Infra" }, + { + type: "doc", + id: "benchmarking-architecture", + label: "Benchmarking Infra", + }, + ], + }, + { + type: "html", + value: "CLI", + className: "sidebar-divider", + }, + // { type: "doc", id: "cli/cortex", label: "cortex" }, + // { type: "doc", id: "cli/chat", label: "cortex chat" }, + // { type: "doc", id: "cli/embeddings", label: "cortex embeddings" }, + { type: "doc", id: "cli/presets", label: "cortex presets" }, + // { type: "doc", id: "cli/pull", label: "cortex pull" }, + // { type: "doc", id: "cli/run", label: "cortex run" }, + // { type: "doc", id: "cli/models/index", label: "cortex models" }, + // { type: "doc", id: "cli/engines/index", label: "cortex engines" }, + // { type: "doc", id: "cli/stop", label: "cortex stop" }, + // { type: "doc", id: "cli/ps", label: "cortex ps" }, + // { type: "doc", id: "cli/telemetry", label: "cortex telemetry" }, + { type: "doc", id: "cli/benchmark", label: "cortex benchmark" }, + ], +}; + +export default sidebars; diff --git a/docs/src/components/Announcement/index.tsx b/docs/src/components/Announcement/index.tsx new file mode 100644 index 000000000..ebb110524 --- /dev/null +++ b/docs/src/components/Announcement/index.tsx @@ -0,0 +1,21 @@ +import React from "react"; + +const Announcement = () => { + return ( +
+ {/* Please change this when cortex stable we can use from latest release endpoint */} +
+ 🚧 +

+ Cortex.cpp v1.0 is now live on github. + + {" "} + Read more + +

+
+
+ ); +}; + +export default Announcement; diff --git a/docs/src/components/Button/index.tsx b/docs/src/components/Button/index.tsx new file mode 100644 index 000000000..aa99cf36d --- /dev/null +++ b/docs/src/components/Button/index.tsx @@ -0,0 +1,61 @@ +import React, { forwardRef, ButtonHTMLAttributes } from "react"; + +import { cva, type VariantProps } from "class-variance-authority"; + +import { twMerge } from "tailwind-merge"; + +const buttonVariants = cva( + "px-6 py-4 rounded-lg font-semibold text-base cursor-pointer relative transition-all", + { + variants: { + theme: { + primary: [ + "bg-[#111] dark:bg-white", + "text-white dark:text-black", + "border-2 dark:border-neutral-500 border-neutral-700", + "hover:translate-y-[3px] hover:translate-x-[3px]", + ], + secondary: [ + "dark:bg-[#111] bg-white", + "dark:text-white text-black", + "border-2 border-neutral-500 dark:border-neutral-700", + "hover:translate-y-[3px] hover:translate-x-[3px]", + ], + }, + size: { + medium: "btn--medium", + }, + block: { + true: "btn--block", + }, + }, + defaultVariants: { + theme: "primary", + size: "medium", + block: false, + }, + } +); + +export interface ButtonProps + extends ButtonHTMLAttributes, + VariantProps {} + +const Button = forwardRef( + ({ className, theme, size, block, ...props }, ref) => { + return ( + + ); + } +); + +export { Button }; diff --git a/docs/src/components/CardContainer/index.tsx b/docs/src/components/CardContainer/index.tsx new file mode 100644 index 000000000..b293723cc --- /dev/null +++ b/docs/src/components/CardContainer/index.tsx @@ -0,0 +1,7 @@ +import * as React from "react"; + +const CardContainer = ({ children }: React.PropsWithChildren) => { + return
{children}
; +}; + +export default CardContainer; diff --git a/docs/src/components/ChangelogHeader/index.tsx b/docs/src/components/ChangelogHeader/index.tsx new file mode 100644 index 000000000..b7c4ebc46 --- /dev/null +++ b/docs/src/components/ChangelogHeader/index.tsx @@ -0,0 +1,36 @@ +import React from "react"; +import { format } from "date-fns"; +import { usePluginData } from "@docusaurus/useGlobalData"; + +type ChangelogHeaderProps = { + slug: string; +}; + +const ChangelogHeader = (props: ChangelogHeaderProps) => { + const { slug } = props; + + const data = usePluginData("changelog-list") as any[]; + + const currentChangelog = data.filter((x) => x.frontmatter.slug === slug)[0]; + + return ( +
+

+ {format(String(currentChangelog.frontmatter.date), "MMMM do, yyyy") || + null} +

+ + {currentChangelog.frontmatter.ogImage && ( + {currentChangelog.frontmatter.title} + )} +
+ ); +}; + +export default ChangelogHeader; diff --git a/docs/src/components/CopyCommand/index.tsx b/docs/src/components/CopyCommand/index.tsx new file mode 100644 index 000000000..1cf3c9990 --- /dev/null +++ b/docs/src/components/CopyCommand/index.tsx @@ -0,0 +1,38 @@ +import React from "react"; +import { useClipboard } from "@site/src/hooks/useClipboard"; +import { CopyIcon, CheckIcon } from "lucide-react"; + +type Props = { + checkedItems: string[]; + model: any; +}; + +const CopyCommand = ({ checkedItems, model }: Props) => { + const clipboard = useClipboard({ timeout: 1000 }); + return ( +
{ + clipboard.copy( + checkedItems.length > 0 + ? `cortex run ${model.name.replace("cortexso/", "")}:${ + checkedItems[0] + }` + : `cortex run ${model.name.replace("cortexso/", "")}` + ); + }} + > + {clipboard.copied ? ( + <> + + + ) : ( + <> + + + )} +
+ ); +}; + +export default CopyCommand; diff --git a/docs/src/components/Diagram/index.tsx b/docs/src/components/Diagram/index.tsx new file mode 100644 index 000000000..d951ff9f2 --- /dev/null +++ b/docs/src/components/Diagram/index.tsx @@ -0,0 +1,58 @@ +import BrowserOnly from "@docusaurus/BrowserOnly"; +import { ExcalidrawImperativeAPI } from "@excalidraw/excalidraw/types/types"; + +interface DiagramProps { + diagramPath: string; +} + +export default function Diagram({ diagramPath }: DiagramProps) { + return ( + + {() => { + const { Excalidraw, loadFromBlob } = + require("@excalidraw/excalidraw") as typeof import("@excalidraw/excalidraw"); + const { useState, useEffect } = + require("react") as typeof import("react"); + + function ExcalidrawDiagram({ diagramPath }: DiagramProps) { + const [excalidrawAPI, setExcalidrawAPI] = + useState(null); + + useEffect(() => { + if (excalidrawAPI !== null) { + fetch(diagramPath) + .then((res) => res.blob()) + .then((blob) => + loadFromBlob(blob, excalidrawAPI.getAppState(), null) + ) + .then((data) => { + excalidrawAPI.updateScene(data); + }); + } + }, [excalidrawAPI]); + + return ( +
+ setExcalidrawAPI(api)} + isCollaborating={false} + zenModeEnabled={false} + viewModeEnabled={true} + gridModeEnabled={false} + UIOptions={{ + canvasActions: { + export: false, + loadScene: false, + saveToActiveFile: false, + }, + }} + /> +
+ ); + } + + return ; + }} +
+ ); +} \ No newline at end of file diff --git a/docs/src/components/DropdownDownload/index.tsx b/docs/src/components/DropdownDownload/index.tsx new file mode 100644 index 000000000..bc9ddeb27 --- /dev/null +++ b/docs/src/components/DropdownDownload/index.tsx @@ -0,0 +1,235 @@ +import { useCallback, useEffect, useState } from "react"; +import { FaWindows, FaApple, FaLinux } from "react-icons/fa"; +import { IconType } from "react-icons/lib"; +import { IoChevronDownOutline } from "react-icons/io5"; +import { useClickOutside } from "@site/src/hooks/useClickOutside"; +import { twMerge } from "tailwind-merge"; + +type Props = { + lastRelease: any; +}; + +type SystemType = { + name: string; + logo: IconType; + fileFormat: string; + href?: string; +}; + +type GpuInfo = { + renderer: string; + vendor: string; + type: string; +}; + +const systemsTemplate: SystemType[] = [ + { + name: "Download for Mac", + logo: FaApple, + fileFormat: "mac-universal-local", + }, + { + name: "Download for Windows", + logo: FaWindows, + fileFormat: "windows-amd64-local", + }, + { + name: "Download for Linux", + logo: FaLinux, + fileFormat: "linux-amd64-local", + }, +]; + +const extractAppName = (fileName: string) => { + const regex = /^(.*?)-/; + const match = fileName.match(regex); + return match ? match[1] : null; +}; + +const DropdownDownload = ({ lastRelease }: Props) => { + const [systems, setSystems] = useState(systemsTemplate); + const [defaultSystem, setDefaultSystem] = useState(systems[0]); + const [open, setOpen] = useState(false); + const [gpuInfo, setGpuInfo] = useState({ + renderer: "", + vendor: "", + type: "", + }); + + const changeDefaultSystem = useCallback( + async (systems: SystemType[]) => { + const userAgent = navigator.userAgent; + if (userAgent.includes("Windows")) { + // windows user + setDefaultSystem(systems[1]); + } else if (userAgent.includes("Linux")) { + // linux user + setDefaultSystem(systems[2]); + } else if (userAgent.includes("Mac OS")) { + if (gpuInfo.type === "Apple Silicon") { + setDefaultSystem(systems[0]); + } else { + setDefaultSystem(systems[0]); + } + } else { + setDefaultSystem(systems[0]); + } + }, + [gpuInfo.type] + ); + + function getUnmaskedInfo(gl: WebGLRenderingContext): { + renderer: string; + vendor: string; + } { + const unMaskedInfo = { + renderer: "", + vendor: "", + }; + const dbgRenderInfo = gl.getExtension("WEBGL_debug_renderer_info"); + if (dbgRenderInfo) { + unMaskedInfo.renderer = gl.getParameter( + dbgRenderInfo.UNMASKED_RENDERER_WEBGL + ); + unMaskedInfo.vendor = gl.getParameter( + dbgRenderInfo.UNMASKED_VENDOR_WEBGL + ); + } + + return unMaskedInfo; + } + + function detectGPU() { + const canvas = document.createElement("canvas"); + const gl = + canvas.getContext("webgl") || + (canvas.getContext("experimental-webgl") as WebGLRenderingContext); + if (gl) { + const gpuInfo = getUnmaskedInfo(gl); + + let gpuType = "Unknown GPU vendor or renderer."; + if (gpuInfo.renderer.includes("Apple")) { + gpuType = "Apple Silicon"; + } else if ( + gpuInfo.renderer.includes("Intel") || + gpuInfo.vendor.includes("Intel") + ) { + gpuType = "Intel"; + } + setGpuInfo({ + renderer: gpuInfo.renderer, + vendor: gpuInfo.vendor, + type: gpuType, + }); + } else { + setGpuInfo({ + renderer: "N/A", + vendor: "N/A", + type: "Unable to initialize WebGL.", + }); + } + } + + useEffect(() => { + const updateDownloadLinks = async () => { + try { + const firstAssetName = await lastRelease.assets[0]?.name; + const appname = extractAppName(firstAssetName); + if (!appname) { + console.error( + "Failed to extract appname from file name:", + firstAssetName + ); + changeDefaultSystem(systems); + return; + } + const tag = lastRelease.tag_name.startsWith("v") + ? lastRelease.tag_name.substring(1) + : lastRelease.tag_name; + + const updatedSystems = systems.map((system) => { + const downloadUrl = system.fileFormat + .replace("{appname}", appname) + .replace("{tag}", tag); + return { + ...system, + href: `https://app.cortexcpp.com/download/latest/${downloadUrl}`, + }; + }); + setSystems(updatedSystems); + changeDefaultSystem(updatedSystems); + } catch (error) { + console.error("Failed to update download links:", error); + } + }; + + updateDownloadLinks(); + + if (gpuInfo.type.length === 0) { + detectGPU(); + } + + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [gpuInfo]); + + const [menu, setMenu] = useState(null); + + const [refDropdownContent, setRefDropdownContent] = + useState(null); + useClickOutside(() => setOpen(false), null, [menu, refDropdownContent]); + + return ( +
+
+
+ + + {defaultSystem.name} + + +
+ {open && ( +
+ {systems.map((system) => ( + + ))} +
+ )} +
+ ); +}; + +export default DropdownDownload; diff --git a/docs/src/components/FlipWord/index.tsx b/docs/src/components/FlipWord/index.tsx new file mode 100644 index 000000000..5e3fa85c9 --- /dev/null +++ b/docs/src/components/FlipWord/index.tsx @@ -0,0 +1,84 @@ +import React, { useCallback, useEffect, useState } from "react"; +import { AnimatePresence, motion } from "framer-motion"; +import { twMerge } from "tailwind-merge"; + +export const FlipWords = ({ + words, + duration = 3000, + className, +}: { + words: string[]; + duration?: number; + className?: string; +}) => { + const [currentWord, setCurrentWord] = useState(words[0]); + const [isAnimating, setIsAnimating] = useState(false); + + // thanks for the fix Julian - https://github.com/Julian-AT + const startAnimation = useCallback(() => { + const word = words[words.indexOf(currentWord) + 1] || words[0]; + setCurrentWord(word); + setIsAnimating(true); + }, [currentWord, words]); + + useEffect(() => { + if (!isAnimating) + setTimeout(() => { + startAnimation(); + }, duration); + }, [isAnimating, duration, startAnimation]); + + return ( + { + setIsAnimating(false); + }} + > + + {currentWord.split("").map((letter, index) => ( + + {letter} + + ))} + + + ); +}; diff --git a/docs/src/components/MyModelPage/index.tsx b/docs/src/components/MyModelPage/index.tsx new file mode 100644 index 000000000..86942ec54 --- /dev/null +++ b/docs/src/components/MyModelPage/index.tsx @@ -0,0 +1,47 @@ +import Layout from "@theme/Layout"; +import markdownit from "markdown-it"; +import hljs from "highlight.js"; + +const MyModelPage = (props: { route: any }) => { + const { route } = props; + const { customData: data } = route; + + const md = markdownit({ + highlight: function (str: string, lang: string) { + if (lang && hljs.getLanguage(lang)) { + try { + return ( + '
' +
+            hljs.highlight(str, { language: lang, ignoreIllegals: true })
+              .value +
+            "
" + ); + } catch (__) {} + } + + return ( + '
' +
+        md.utils.escapeHtml(str) +
+        "
" + ); + }, + }); + const result = md.render( + data.readmeContent.replace(/---\s*license:\s*([^\s]+)\s*---/m, "") + ); + + return ( + +
+

{data.name.replace("cortexso/", "")}

+
+
+ + ); +}; + +export default MyModelPage; diff --git a/docs/src/components/NavbarMegaMenu/index.tsx b/docs/src/components/NavbarMegaMenu/index.tsx new file mode 100644 index 000000000..e11662621 --- /dev/null +++ b/docs/src/components/NavbarMegaMenu/index.tsx @@ -0,0 +1,111 @@ +import React from "react"; +import { motion } from "framer-motion"; +import Link from "@docusaurus/Link"; + +const transition = { + type: "spring", + mass: 0.5, + damping: 11.5, + stiffness: 100, + restDelta: 0.001, + restSpeed: 0.001, +}; + +export const MenuItem = ({ + setActive, + active, + item, + children, +}: { + setActive: (item: string) => void; + active: string | null; + item: string; + children?: React.ReactNode; +}) => { + return ( +
setActive(item)} className="relative "> + + {item} + + {active !== null && ( + + {active === item && ( +
+ + + {children} + + +
+ )} +
+ )} +
+ ); +}; + +export const Menu = ({ + setActive, + children, +}: { + setActive: (item: string | null) => void; + children: React.ReactNode; +}) => { + return ( +
setActive(null)} // resets the state + > + {children} +
+ ); +}; + +export const ProductItem = ({ + title, + description, + href, + src, +}: { + title: string; + description: string; + href: string; + src: string; +}) => { + return ( + +
+

+ {title} +

+

+ {description} +

+
+ + ); +}; + +export const HoveredLink = ({ children, ...rest }: any) => { + return ( + + {children} + + ); +}; diff --git a/docs/src/components/OAICoverage/index.tsx b/docs/src/components/OAICoverage/index.tsx new file mode 100644 index 000000000..0ea6c972a --- /dev/null +++ b/docs/src/components/OAICoverage/index.tsx @@ -0,0 +1,316 @@ +import React from "react"; + +import { usePluginData } from "@docusaurus/useGlobalData"; + +import * as Tooltip from "@radix-ui/react-tooltip"; +import { getMonthName } from "@site/src/utils"; + +interface DateObject { + date: string; +} +interface DateGroup { + [key: string]: DateObject[]; +} + +function flattenAndRemoveDuplicates(nestedArray: (T[] | undefined)[]): T[] { + const flattenedArray: T[] = []; + + for (const subArray of nestedArray) { + if (subArray) { + for (const item of subArray) { + flattenedArray.push(item); + } + } + } + + const seen = new Set(); + const uniqueArray: T[] = []; + + for (const item of flattenedArray) { + if (!seen.has(item)) { + seen.add(item); + uniqueArray.push(item); + } + } + + return uniqueArray; +} + +export default function OAICoverage() { + const totalCoverage: { + content?: { + result?: { + number: number; + passed: number; + skipped: number; + total: number; + }; + }; + } = usePluginData("oai-total-coverage"); + + const dailyCoverage = usePluginData("oai-daily-report"); + + const groupedDates = (dailyCoverage as never[]).reduce( + (acc, dateObj: any) => { + const [month, , year] = dateObj.date.split("-"); + const key = `${year}-${month}`; + if (!acc[key]) { + acc[key] = []; + } + acc[key].push(dateObj); + return acc; + }, + {} + ); + + const firstDates = Object.values(groupedDates).map((group) => { + return group.reduce((earliest, current) => { + const [, currentDay] = current.date.split("-"); + const [, earliestDay] = earliest.date.split("-"); + return parseInt(currentDay) < parseInt(earliestDay) ? current : earliest; + }); + }); + + const attributeValue = (dailyCoverage as never[]).map((x: any) => + x?.content?.result?.map((c: any) => c?.attributeValue) + ); + + const generateBlock = (y: any, x: any) => { + const block = y.content?.result?.filter( + (c: any) => c.attributeValue === x + )[0]; + + if (block?.passingRate === 100) + return ( + <> + +
+ + + +
+ Passing:{" "} + {Math.round((block.total * block?.passingRate) / 100) || 0} +
+
+ Failing:  + {Math.round( + block.total - (block.total * block?.passingRate) / 100 + )} +
+ +
+
+ + ); + + if (block?.passingRate === undefined) + return ( +
+ ); + + if (block?.passingRate === 0) + return ( + <> + +
+ + + +
+ Passing:{" "} + {Math.round((block.total * block?.passingRate) / 100) || 0} +
+
+ Failing:  + {Math.round( + block.total - (block.total * block?.passingRate) / 100 + )} +
+ +
+
+ + ); + + return ( + <> + +
+ + + +
+ Passing:{" "} + {Math.round((block.total * block?.passingRate) / 100) || 0} +
+
+ Failing:  + {Math.round( + block.total - (block.total * block?.passingRate) / 100 + )} +
+ +
+
+ + ); + }; + + return ( +
+ {/* Column */} +
+ {(dailyCoverage as never[]).map((x: any, i) => { + const firstDate = firstDates.some( + (firstDate) => + firstDate.date === x.date &&

test

+ ); + + return ( +
+
+ {firstDate &&

{getMonthName(x.date)}

} +

+ {x.date.split("-")[1].replace(/^0/, "")} +

+
+
+ ); + })} +
+ + {/* Row */} + {flattenAndRemoveDuplicates(attributeValue) + .sort((a, b) => a.localeCompare(b)) + .map((x, i) => { + return ( +
+ + + +

+ {x} +

+
+ + + {x} + + + +
+
+ +
+ {(dailyCoverage as any[]).map((y: any, i) => { + return ( + + {generateBlock(y, x)} + + ); + })} +
+
+ ); + })} + + {/* Total Coverage */} +
+
+
+

Total

+ {totalCoverage?.content?.result?.total} +
+
+

Coverage

+ + {( + (Number(totalCoverage?.content?.result?.passed) / + Number(totalCoverage?.content?.result?.total)) * + 100 + ).toFixed(2)} + % + +
+
+
+
+
+
+
+
+ {String(totalCoverage?.content?.result?.passed)} +
+
+

passed

+
+
+
+ + {String( + Number(totalCoverage?.content?.result?.total) - + Number(totalCoverage?.content?.result?.skipped) - + Number(totalCoverage?.content?.result?.passed) + )} + +
+
+

failed

+
+
+
+ {String(totalCoverage?.content?.result?.skipped)} +
+
+

skipped

+
+
+
+
+
+ ); +} diff --git a/docs/src/components/ProductsMenu/index.tsx b/docs/src/components/ProductsMenu/index.tsx new file mode 100644 index 000000000..8f674ede0 --- /dev/null +++ b/docs/src/components/ProductsMenu/index.tsx @@ -0,0 +1,59 @@ +import { HoveredLink, Menu, MenuItem, ProductItem } from "../NavbarMegaMenu"; +import { useState } from "react"; + +const ProductsMenu = () => { + const [active, setActive] = useState(null); + + return ( + + +
+ +
+

Cortex.cpp

+

+ Local AI Engine +

+
+
+ +
+

Cortex Platform

+

+ Self-hosted AI Platform +

+
+
+ +
+
+

Cortex Desktop

+
+ Coming Soon +
+
+

+ Easy-to-use Desktop app +

+
+
+ +
+
+

Cortex Server

+
+ Coming Soon +
+
+

+ Run Cortex in Production +

+
+
+
+
+
+ ); +}; + +export default ProductsMenu; diff --git a/docs/src/components/Select/index.tsx b/docs/src/components/Select/index.tsx new file mode 100644 index 000000000..5edc53524 --- /dev/null +++ b/docs/src/components/Select/index.tsx @@ -0,0 +1,162 @@ +"use client"; + +import * as React from "react"; +import * as SelectPrimitive from "@radix-ui/react-select"; +import { Check, ChevronDown, ChevronUp } from "lucide-react"; + +import { twMerge } from "tailwind-merge"; + +const Select = SelectPrimitive.Root; + +const SelectGroup = SelectPrimitive.Group; + +const SelectValue = SelectPrimitive.Value; + +const SelectTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + span]:line-clamp-1 cursor-pointer", + className + )} + {...props} + > + {children} + + + + +)); +SelectTrigger.displayName = SelectPrimitive.Trigger.displayName; + +const SelectScrollUpButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)); +SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName; + +const SelectScrollDownButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)); +SelectScrollDownButton.displayName = + SelectPrimitive.ScrollDownButton.displayName; + +const SelectContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, position = "popper", ...props }, ref) => ( + + + + + {children} + + + + +)); +SelectContent.displayName = SelectPrimitive.Content.displayName; + +const SelectLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +SelectLabel.displayName = SelectPrimitive.Label.displayName; + +const SelectItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + + + + + + {children} + + +)); +SelectItem.displayName = SelectPrimitive.Item.displayName; + +const SelectSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +SelectSeparator.displayName = SelectPrimitive.Separator.displayName; + +export { + Select, + SelectGroup, + SelectValue, + SelectTrigger, + SelectContent, + SelectLabel, + SelectItem, + SelectSeparator, + SelectScrollUpButton, + SelectScrollDownButton, +}; diff --git a/docs/src/components/SocialNavbar/index.tsx b/docs/src/components/SocialNavbar/index.tsx new file mode 100644 index 000000000..efb9ed738 --- /dev/null +++ b/docs/src/components/SocialNavbar/index.tsx @@ -0,0 +1,43 @@ +import { RiStarSFill } from "react-icons/ri"; +import { usePluginData } from "@docusaurus/useGlobalData"; +import { useDiscordWidget } from "@site/src/hooks/useDiscordWidget"; +import { formatCompactNumber } from "@site/src/utils"; +import Link from "@docusaurus/Link"; + +const SocialNavbar = () => { + const repoInfo: { + stargazers_count?: number; + } = usePluginData("repo-info"); + const { data: discordWidget } = useDiscordWidget(); + + return ( +
+
+ +
+ + {formatCompactNumber(repoInfo.stargazers_count)} +
+ +
+
+ +
+
+ {formatCompactNumber(discordWidget.presence_count)} +
+ +
+
+ ); +}; + +export default SocialNavbar; diff --git a/docs/src/containers/Homepage/About/index.tsx b/docs/src/containers/Homepage/About/index.tsx new file mode 100644 index 000000000..cba10434b --- /dev/null +++ b/docs/src/containers/Homepage/About/index.tsx @@ -0,0 +1,227 @@ +import ThemedImage from "@theme/ThemedImage"; + +const teams = [ + { + name: "Daniel Onggunhao", + title: "Co-Founder", + url: "https://github.com/dan-jan", + image_url: "https://avatars.githubusercontent.com/u/101145494?v=4", + email: "daniel@jan.ai", + }, + { + name: "Nicole Zhu", + title: "Co-Founder", + url: "https://github.com/0xsage", + image_url: "https://avatars.githubusercontent.com/u/69952136?v=4", + email: "nicole@jan.ai", + }, + { + name: "Nam Nguyen", + title: "Developer", + url: "https://github.com/namchuai", + image_url: "https://avatars.githubusercontent.com/u/10397206?v=4", + email: "james@jan.ai", + }, + { + name: "Hiro Vuong", + title: "MLE", + url: "https://github.com/hiro-v", + image_url: "https://avatars.githubusercontent.com/u/22463238?v=4", + email: "hiro@jan.ai", + }, + { + name: "Ashley Tran", + title: "Product Designer", + url: "https://github.com/imtuyethan", + image_url: "https://avatars.githubusercontent.com/u/89722390?v=4", + email: "ashley@jan.ai", + }, + { + name: "Hien To", + title: "DevOps Engineer", + url: "https://github.com/hientominh", + image_url: "https://avatars.githubusercontent.com/u/37921427?v=4", + email: "hien@jan.ai", + }, + { + name: "Van Pham", + title: "QA & Release Manager", + url: "https://github.com/Van-QA", + image_url: "https://avatars.githubusercontent.com/u/64197333?v=4", + email: "van@jan.ai", + }, + { + name: "Louis Le", + title: "Software Engineer", + url: "https://github.com/louis-jan", + image_url: "https://avatars.githubusercontent.com/u/133622055?v=4", + email: "louis@jan.ai", + }, + { + name: "Rex Ha", + title: "LLM Researcher & Content Writer", + url: "https://github.com/hahuyhoang411", + image_url: "https://avatars.githubusercontent.com/u/64120343?v=4", + email: "rex@jan.ai", + }, + { + name: "Faisal", + title: "UI Engineer", + url: "https://github.com/urmauur", + image_url: "https://avatars.githubusercontent.com/u/10354610?v=4", + email: "faisal@jan.ai", + }, + { + name: "Alan Dao", + title: "AI Engineer", + url: "https://github.com/tikikun", + image_url: "https://avatars.githubusercontent.com/u/22268502?v=4", + email: "alan@jan.ai", + }, + { + name: "Henry Ho", + title: "Software Engineer", + url: "https://github.com/hieu-jan", + image_url: "https://avatars.githubusercontent.com/u/150573299?v=4", + email: "hieu@jan.ai", + }, + { + name: "Mark Nguyen", + title: "Software Engineer", + url: "https://github.com/marknguyen1302", + image_url: "https://avatars.githubusercontent.com/u/170505949?v=4", + email: "hieu@jan.ai", + }, + { + name: "Sang", + title: "Software Engineer", + url: "https://github.com/vansangpfiev", + image_url: "https://avatars.githubusercontent.com/u/15782972?v=4", + email: "sang@jan.ai", + }, +]; + +const About = () => { + return ( +
+
+
+ +
+
+
+
+ + + + + + + + + + + + +

Hello

+
+

+ Hello, we're the Homebrew Computer Company, the team that built{" "} + + Jan + + . We believe that AI models and software should be local first, + user owned, and open source. +

+

+ After running LLMs on over 1 million machines, across laptops and + HCP servers, we built Cortex to help all developers run LLMs + easily and scalably. +

+

+ We'd also like to acknowledge the following incredible projects:{" "} + + llamacpp + + ,{" "} + + tensorrtllm + + ,{" "} + + onnx + + , and{" "} + + directml + + ... +

+
+
+ {teams.map((team) => { + return ( +
+
+ {`${team.name} +
+ ); + })} +
+
+
+
+ ); +}; + +export default About; diff --git a/docs/src/containers/Homepage/Download/CardDownload.tsx b/docs/src/containers/Homepage/Download/CardDownload.tsx new file mode 100644 index 000000000..b02a481fd --- /dev/null +++ b/docs/src/containers/Homepage/Download/CardDownload.tsx @@ -0,0 +1,153 @@ +import React, { useState, useEffect } from "react"; +import { IconType } from "react-icons/lib"; +import { FaWindows, FaApple, FaLinux } from "react-icons/fa"; +import { twMerge } from "tailwind-merge"; +import { DownloadIcon } from "lucide-react"; + +type Props = { + lastRelease?: any; +}; + +type SystemType = { + name: string; + label: string; + logo: IconType; + fileFormat: string; + href?: string; +}; + +const systemsTemplate: SystemType[] = [ + { + name: "Mac M1, M2, M3", + label: "Apple Silicon", + logo: FaApple, + fileFormat: "{appname}-installer-{tag}-arm64-mac.tar.gz", + }, + { + name: "Mac (Intel)", + label: "Apple Intel", + logo: FaApple, + fileFormat: "{appname}-installer-{tag}-amd64-mac.tar.gz", + }, + { + name: "Windows", + label: "Standard (64-bit)", + logo: FaWindows, + fileFormat: "{appname}-installer-{tag}-amd64-windows.tar.gz", + }, + { + name: "Linux", + label: "Deb", + logo: FaLinux, + fileFormat: "{appname}-installer-{tag}-amd64-linux.deb", + }, +]; + +const groupTemnplate = [ + { label: "MacOS", name: "mac", logo: FaApple }, + { label: "Windows", name: "windows", logo: FaWindows }, + { label: "Linux", name: "linux", logo: FaLinux }, +]; + +export default function CardDownload({ lastRelease }: Props) { + const [systems, setSystems] = useState(systemsTemplate); + + const extractAppName = (fileName: string) => { + const regex = /^(.*?)-/; + const match = fileName.match(regex); + return match ? match[1] : null; + }; + + useEffect(() => { + const updateDownloadLinks = async () => { + try { + // Extract appname from the first asset name + const firstAssetName = lastRelease.assets[0].name; + const appname = extractAppName(firstAssetName); + + if (!appname) { + console.error( + "Failed to extract appname from file name:", + firstAssetName + ); + + return; + } + + // Remove 'v' at the start of the tag_name + const tag = lastRelease.tag_name.startsWith("v") + ? lastRelease.tag_name.substring(1) + : lastRelease.tag_name; + + const updatedSystems = systems.map((system) => { + const downloadUrl = system.fileFormat + .replace("{appname}", appname) + .replace("{tag}", tag); + return { + ...system, + href: `https://github.com/janhq/cortex/releases/download/${lastRelease.tag_name}/${downloadUrl}`, + }; + }); + + setSystems(updatedSystems); + } catch (error) { + console.error("Failed to update download links:", error); + } + }; + + updateDownloadLinks(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + const renderDownloadLink = (group: string) => { + return ( + <> + {systems + .filter((x) => x.name.toLowerCase().includes(group)) + .map((system, i) => ( + + ))} + + ); + }; + + return ( +
+
+ {groupTemnplate.map((item, i) => { + return ( +
+
+
+
+ +
+
{item.label}
+
+
+ {renderDownloadLink(item.name)} +
+
+
+ ); + })} +
+
+ ); +} diff --git a/docs/src/containers/Homepage/Download/index.tsx b/docs/src/containers/Homepage/Download/index.tsx new file mode 100644 index 000000000..7c24b2348 --- /dev/null +++ b/docs/src/containers/Homepage/Download/index.tsx @@ -0,0 +1,19 @@ +import CardDownload from "./CardDownload"; +import { usePluginData } from "@docusaurus/useGlobalData"; + +const DownloadSection = () => { + const latestRelease = usePluginData("latest-release"); + + return ( +
+
+

Download

+
+
+ +
+
+ ); +}; + +export default DownloadSection; diff --git a/docs/src/containers/Homepage/GettingStartedSection/index.tsx b/docs/src/containers/Homepage/GettingStartedSection/index.tsx new file mode 100644 index 000000000..f7e540598 --- /dev/null +++ b/docs/src/containers/Homepage/GettingStartedSection/index.tsx @@ -0,0 +1,31 @@ +import Link from "@docusaurus/Link"; +import { FaArrowRight } from "react-icons/fa6"; + +const GettingStartedSection = () => { + return ( + <> +
+
+

Features

+

+ Cortex allows developers to focus on building local AI applications + by abstracting hardware and engine support. +

+
+ +
+
+ +
+ +

+ Learn more +

+ +
+
+ + ); +}; + +export default GettingStartedSection; diff --git a/docs/src/containers/Homepage/HeroSection/index.tsx b/docs/src/containers/Homepage/HeroSection/index.tsx new file mode 100644 index 000000000..99c6eaed6 --- /dev/null +++ b/docs/src/containers/Homepage/HeroSection/index.tsx @@ -0,0 +1,169 @@ +import { Button } from "@site/src/components/Button"; +import ThemedImage from "@theme/ThemedImage"; + +import Link from "@docusaurus/Link"; +import DropdownDownload from "@site/src/components/DropdownDownload"; +import { usePluginData } from "@docusaurus/useGlobalData"; +import { useState } from "react"; +import { twMerge } from "tailwind-merge"; +import { FlipWords } from "@site/src/components/FlipWord"; +import Announcement from "@site/src/components/Announcement"; + +const HeroSection = () => { + const userAgent = navigator.userAgent; + const latestRelease = usePluginData("latest-release"); + const getOs = () => { + if (userAgent.includes("Windows")) { + return "win"; + } else if (userAgent.includes("Linux")) { + return "linux"; + } else { + return "mac"; + } + }; + + const [tabActive, setTabActive] = useState(getOs()); + // const words = ["Local", "AI"]; + + const installationScript = () => { + if (tabActive === "win") { + return ( +

+ {/* winget  + install  + cortexso */} + npm  + install -g  + cortexso +

+ ); + } + return ( + <> +

+ {/* brew  + install  + cortexso */} + npm  + install -g  + cortexso +

+ + ); + }; + + return ( +
+
+ +
+ +
+

+ {/* */} +

Local AI

+

+

+ Powers πŸ‘‹ Jan +

+
+ + + + +
+
+ +
+ + +
+
+
setTabActive("win")} + > + Windows +
+
setTabActive("mac")} + > + Mac +
+
setTabActive("linux")} + > + Linux +
+
+
+
+ +

# Install

+ {installationScript()} + +

# Run

+

+ cortex  + run  + mistral +

+ +

+ # Run using a specific backend +

+

+ cortex  + run  + mistral:gguf +

+

+ cortex  + run  + mistral:onnx +

+

+ cortex  + run  + mistral:tensorrt-llm +

+
+
+
+
+
+
+ ); +}; +export default HeroSection; diff --git a/docs/src/containers/Homepage/OAIReplacement/index.tsx b/docs/src/containers/Homepage/OAIReplacement/index.tsx new file mode 100644 index 000000000..9b404be47 --- /dev/null +++ b/docs/src/containers/Homepage/OAIReplacement/index.tsx @@ -0,0 +1,619 @@ +import Link from "@docusaurus/Link"; +import ThemedImage from "@theme/ThemedImage"; +import { twMerge } from "tailwind-merge"; +import { motion } from "framer-motion"; +import useWindowSize from "@site/src/hooks/useWindowSize"; +import { CirclePlusIcon } from "lucide-react"; +import React, { useState } from "react"; + +const floatingAnimations = [ + { + x: [0, 10, 10, 0], + y: [4, 20, 10, 4], + transition: { + duration: 5, + ease: "easeInOut", + repeat: Infinity, + }, + }, + { + x: [4, 0, 0, 4], + y: [0, 10, -8, 0], + transition: { + duration: 5, + ease: "easeInOut", + repeat: Infinity, + }, + }, + { + x: [0, 8, -10, 0], + y: [4, 15, 15, 4], + transition: { + duration: 5, + ease: "easeInOut", + repeat: Infinity, + }, + }, + { + x: [8, -10, 0, 8], + y: [2, 6, 4, 2], + transition: { + duration: 5, + ease: "easeInOut", + repeat: Infinity, + }, + }, + { + x: [0, 2, 6, 0], + y: [0, 10, 10, 0], + transition: { + duration: 5, + ease: "easeInOut", + repeat: Infinity, + }, + }, + { + x: [20, 8, 8, 20], + y: [4, 4, -6, 4], + transition: { + duration: 5, + ease: "easeInOut", + repeat: Infinity, + }, + }, + { + x: [2, 10, -8, 2], + y: [0, 12, 8, 0], + transition: { + duration: 5, + ease: "easeInOut", + repeat: Infinity, + }, + }, + { + x: [0, -2, 8, 0], + y: [0, 0, 10, 0], + transition: { + duration: 5, + ease: "easeInOut", + repeat: Infinity, + }, + }, +]; + +const fileTrees = [ + { + name: "Chat Completions", + status: "work in progress", + }, + { + name: "Embeddings", + }, + { + name: "Files", + status: "coming soon", + }, + { + name: "Assistants", + status: "coming soon", + }, + { + name: "Fine-tuning", + status: "coming soon", + }, + { + name: "and more...", + }, +]; + +const modelRegistry = [ + { + name: "Built-in Models", + logo: "/img/logos/cortex-logo-mark.svg", + link: "/models", + }, + { + name: "Hugging Face", + logo: "/img/logos/hf.svg", + link: "https://huggingface.co/models", + }, + { + name: "Nvidia NGC", + logo: "/img/logos/nvidia.svg", + status: "coming soon", + link: "https://catalog.ngc.nvidia.com/models?filters=platform%7CRuns+on+RTX%7Cpltfm_runs_on_rtx&orderBy=weightPopularDESC&query=&page=&pageSize=", + }, +]; + +const list = [ + "/chat/completions", + "/embeddings", + "/function-calling", + "/runs", + "/fine-tuning", + "/files", + "/models", + "/assistants", + "/...", +]; + +const OAIReplacement = () => { + const size = useWindowSize(); + const [tabActive, setTabActive] = useState("cortex"); + + return ( +
+
+
+

+ Local OpenAI API +

+

+ Cortex has OpenAI-equivalent API, making it easy for anyone to + switch to a self-hosted,{" "} + open source alternative. +

+
+ + API Reference + +
+
+ {fileTrees.map((x, i) => { + return ( +
+

+ {x.name} +

+ {x?.status && ( + + {x.status} + + )} +
+ ); + })} +
+
+
+
+
+
+
+ + + const ai = require('cortexso') + +
+
+ - const ai = require('openai') +
+
+
+ +
+
+
+
+ +
+
+ {list.map((y, i) => { + return ( +
+ {y} +
+ ); + })} +
+
+
+
+ +
+
+ {list.map((y, i) => { + return ( +
+ {y} +
+ ); + })} +
+
+
+
+
+
+
+ +
+

+ Multi-Engine
Hardware Support +

+ +
+
+ + llama.cpp +
+
+ + ONNX +
+
+ + TensorRT-LLM +
+
+ +
+
+
+
+
+
+
+
+
+ +

+ # Run using a specific backend +

+

+ cortex  + run  + mistral:gguf +

+

+ cortex  + run  + mistral:onnx +

+

+ cortex  + run  + mistral:tensorrt-llm +

+
+
+
+
+
+ +
+ 1024 ? floatingAnimations[0] : {}} + > + IoT & SBCs +

+ IoT & SBCs +

+
+ 1024 ? floatingAnimations[1] : {}} + > + Wearables +

+ Wearables +

+
+ 1024 ? floatingAnimations[2] : {}} + > + Phones +

+ Phones +

+
+ 1024 ? floatingAnimations[3] : {}} + > + CPUs, NPUs +

+ CPUs, NPUs +

+
+ 1024 ? floatingAnimations[4] : {}} + > + Desktops +

+ Desktops +

+
+ 1024 ? floatingAnimations[5] : {}} + > + Industrial PCs +

+ Industrial PCs +

+
+ 1024 ? floatingAnimations[6] : {}} + > + Server +

+ Server +

+
+ 1024 ? floatingAnimations[7] : {}} + > + Robots +

+ Robots +

+
+
+
+ + {/* Models */} +
+
+

+ Model Sources +

+

+ Cortex pulls and runs models from anywhere with a simple, + Docker-like command syntax. +

+ +
+ {modelRegistry.map((x, i) => { + return ( +
+ +
+
+

{x.name}

+ + {x.status} + +
+ + View models + +
+
+ ); + })} +
+ +
+

+ Your own repositories +

+ + View models + +
+
+
+ +
+
+
+
+
setTabActive("cortex")} + > +
+ + Built-in Models +
+
+
setTabActive("hgf")} + > +
+ + Hugging Face +
+
+
+
+ + Nvidia NGC + + coming soon + +
+
+
+
+
+ + {tabActive === "cortex" && ( +

+ cortex  + pull  + llama3 +

+ )} + {tabActive === "hgf" && ( +

+ cortex  + pull  + + bartowski/Codestral-22B-v0.1-GGUF + +

+ )} +
+
+
+
+
+
+
+
+
+ ); +}; + +export default OAIReplacement; diff --git a/docs/src/containers/Homepage/SimpleHeroSection/index.tsx b/docs/src/containers/Homepage/SimpleHeroSection/index.tsx new file mode 100644 index 000000000..de688de57 --- /dev/null +++ b/docs/src/containers/Homepage/SimpleHeroSection/index.tsx @@ -0,0 +1,77 @@ +import { Button } from "@site/src/components/Button"; + +import Link from "@docusaurus/Link"; + +import Announcement from "@site/src/components/Announcement"; + +import { FaGithub } from "react-icons/fa"; +import DropdownDownload from "@site/src/components/DropdownDownload"; +import { usePluginData } from "@docusaurus/useGlobalData"; + +const SimpleHeroSection = () => { + const latestRelease = usePluginData("latest-release"); + return ( +
+
+ +
+ +
+
+

+ Run and Customize Local LLMs +

+
+

+ Powers πŸ‘‹ Jan +

+ +
+ + + + +
+
+ +
+
+
+
+
+
+
+
+
+ +

# Run Local LLMs

+

+ cortex  + run  + llama3.1 +

+

+ cortex  + run  + llama3.1:tensorrt-llm +

+

+ cortex  + run  + llama3.1:onnx +

+
+
+
+
+
+
+ ); +}; +export default SimpleHeroSection; diff --git a/docs/src/hooks/useClickOutside.ts b/docs/src/hooks/useClickOutside.ts new file mode 100644 index 000000000..0f661acc1 --- /dev/null +++ b/docs/src/hooks/useClickOutside.ts @@ -0,0 +1,41 @@ +import { useEffect, useRef } from "react"; + +const DEFAULT_EVENTS = ["mousedown", "touchstart"]; + +export function useClickOutside( + handler: () => void, + events?: string[] | null, + nodes?: (HTMLElement | null)[] +) { + const ref = useRef(); + + useEffect(() => { + const listener = (event: any) => { + const { target } = event ?? {}; + if (Array.isArray(nodes)) { + const shouldIgnore = + target?.hasAttribute("data-ignore-outside-clicks") || + (!document.body.contains(target) && target.tagName !== "HTML"); + const shouldTrigger = nodes.every( + (node) => !!node && !event.composedPath().includes(node) + ); + shouldTrigger && !shouldIgnore && handler(); + } else if (ref.current && !ref.current.contains(target)) { + handler(); + } + }; + + (events || DEFAULT_EVENTS).forEach((fn) => + document.addEventListener(fn, listener) + ); + + return () => { + (events || DEFAULT_EVENTS).forEach((fn) => + document.removeEventListener(fn, listener) + ); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [ref, handler, nodes]); + + return ref; +} diff --git a/docs/src/hooks/useClipboard.ts b/docs/src/hooks/useClipboard.ts new file mode 100644 index 000000000..919fe9183 --- /dev/null +++ b/docs/src/hooks/useClipboard.ts @@ -0,0 +1,33 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { useState } from 'react' + +export function useClipboard({ timeout = 2000 } = {}) { + const [error, setError] = useState(null) + const [copied, setCopied] = useState(false) + const [copyTimeout, setCopyTimeout] = useState(null) + + const handleCopyResult = (value: boolean) => { + window.clearTimeout(copyTimeout!) + setCopyTimeout(window.setTimeout(() => setCopied(false), timeout)) + setCopied(value) + } + + const copy = (valueToCopy: any) => { + if ('clipboard' in navigator) { + navigator.clipboard + .writeText(valueToCopy) + .then(() => handleCopyResult(true)) + .catch((err) => setError(err)) + } else { + setError(new Error('useClipboard: navigator.clipboard is not supported')) + } + } + + const reset = () => { + setCopied(false) + setError(null) + window.clearTimeout(copyTimeout!) + } + + return { copy, reset, error, copied } +} diff --git a/docs/src/hooks/useDiscordWidget.ts b/docs/src/hooks/useDiscordWidget.ts new file mode 100644 index 000000000..ef6d74c7a --- /dev/null +++ b/docs/src/hooks/useDiscordWidget.ts @@ -0,0 +1,30 @@ +import React, { useEffect, useState } from "react"; + +import axios from "axios"; +import { isAxiosError } from "axios"; + +export const useDiscordWidget = () => { + const [data, setData] = useState<{ presence_count: number }>({ + presence_count: 0, + }); + + useEffect(() => { + const updateData = async () => { + try { + const { data } = await axios.get<{ presence_count: number }>( + "https://discord.com/api/guilds/1107178041848909847/widget.json" + ); + setData({ + ...data, + }); + } catch (error) { + if (isAxiosError(error)) { + console.error("Failed to get discord widget:", error); + } + } + }; + updateData(); + }, []); + + return { data }; +}; diff --git a/docs/src/hooks/useWindowSize.ts b/docs/src/hooks/useWindowSize.ts new file mode 100644 index 000000000..087025f23 --- /dev/null +++ b/docs/src/hooks/useWindowSize.ts @@ -0,0 +1,26 @@ +import { useState, useEffect } from "react"; + +function useWindowSize() { + const [windowSize, setWindowSize] = useState({ + width: undefined, + height: undefined, + }); + + useEffect(() => { + function handleResize() { + setWindowSize({ + width: window.innerWidth, + height: window.innerHeight, + }); + } + + window.addEventListener("resize", handleResize); + handleResize(); + + return () => window.removeEventListener("resize", handleResize); + }, []); + + return windowSize; +} + +export default useWindowSize; diff --git a/docs/src/pages/changelog.tsx b/docs/src/pages/changelog.tsx new file mode 100644 index 000000000..df8002444 --- /dev/null +++ b/docs/src/pages/changelog.tsx @@ -0,0 +1,88 @@ +import { usePluginData } from "@docusaurus/useGlobalData"; +import React from "react"; +import Layout from "@theme/Layout"; + +import { format } from "date-fns"; + +type Changelog = { + slug: string; + frontmatter: { + date: string; + title: string; + version: string; + description?: string; + ogImage: string; + slug: string; + }; + body: string; +}; + +const Changelog = () => { + const data = usePluginData("changelog-list") as any[]; + + return ( + +
+
+

Changelog

+

+ Latest release and updates from the Cortex team. +

+
+ +
+
+ ); +}; + +export default Changelog; diff --git a/docs/src/pages/index.tsx b/docs/src/pages/index.tsx new file mode 100644 index 000000000..b0a47fc75 --- /dev/null +++ b/docs/src/pages/index.tsx @@ -0,0 +1,40 @@ +import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; +import Layout from "@theme/Layout"; +import SimpleHeroSection from "@site/src/containers/Homepage/SimpleHeroSection"; +import HeroSection from "@site/src/containers/Homepage/HeroSection"; +import GettingStartedSection from "@site/src/containers/Homepage/GettingStartedSection"; +import OAIReplacement from "@site/src/containers/Homepage/OAIReplacement"; +import DownloadSection from "@site/src/containers/Homepage/Download"; +import About from "@site/src/containers/Homepage/About"; +import BrowserOnly from "@docusaurus/BrowserOnly"; + +const Home = () => { + const { siteConfig } = useDocusaurusContext(); + const simpleMode = true; + + return ( + + + {() => ( + <> + {simpleMode ? ( +
+ +
+ ) : ( +
+ + + + + +
+ )} + + )} +
+
+ ); +}; + +export default Home; diff --git a/docs/src/pages/models.tsx b/docs/src/pages/models.tsx new file mode 100644 index 000000000..c9937c8b0 --- /dev/null +++ b/docs/src/pages/models.tsx @@ -0,0 +1,216 @@ +import Layout from "@theme/Layout"; +import ThemedImage from "@theme/ThemedImage"; +import { usePluginData } from "@docusaurus/useGlobalData"; +import Link from "@docusaurus/Link"; + +import { useState } from "react"; +import { twMerge } from "tailwind-merge"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@site/src/components/Select"; + +import { ExternalLinkIcon } from "lucide-react"; +import CopyCommand from "@site/src/components/CopyCommand"; +import { yamlToJSON } from "@site/src/utils"; + +const ModelsPage = () => { + const listModels = usePluginData("list-models"); + const [searchValue, setSearchValue] = useState(""); + const [checkedItems, setCheckedItems] = useState([]); + const [tabActive, setTabActive] = useState("hgf"); + + const handleChange = (value: string) => { + setCheckedItems([value]); + }; + + const filterModelsByBranches = ( + models: any[], + search: string, + filters: string[] + ) => { + return models.filter((model) => { + if (!model.name.toLowerCase().includes(search.toLowerCase())) { + return false; + } + + if (filters.length > 0) { + return model.branches.some((branch: { name: string }) => + filters.some((filter) => + branch.name.toLowerCase().includes(filter.toLowerCase()) + ) + ); + } else { + return model; + } + }); + }; + + const filteredModels = filterModelsByBranches( + listModels as any[], + searchValue, + checkedItems + ); + + return ( + +
+
+

Models

+

+ Cortex supports pulling from popular model hubs: +

+
+ +
+
+
setTabActive("hgf")} + > +
+ + Hugging Face +
+
+
+
+ + Nvidia NGC + + coming soon + +
+
+
+
+
+ +

+ cortex  + pull  + + bartowski/Codestral-22B-v0.1-GGUF + +

+
+
+
+
+ +
+

Built-In Models

+

+ Cortex has a built-in model collection of popular models. +

+ + +
+ +
+
+ {(filteredModels as any[]).map((model, i) => { + const modelYaml = JSON.parse(yamlToJSON(model.modelContent)); + if ( + modelYaml.engine === "openai" || + modelYaml.engine === "anthropic" || + modelYaml.engine === "cohere" || + modelYaml.engine === "martian" || + modelYaml.engine === "groq" || + modelYaml.engine === "mistral" + ) { + return null; + } + + return ( +
+
+ +

+ {model.name.replace("cortexso/", "")} +

+ + +
+
+ +
+
+ + {checkedItems.length > 0 + ? `cortex run ${model.name.replace( + "cortexso/", + "" + )}:${checkedItems[0]}` + : `cortex run ${model.name.replace("cortexso/", "")}`} + +
+ +
+
+ ); + })} +
+
+
+
+ ); +}; + +export default ModelsPage; diff --git a/docs/src/plugins/scalar/index.ts b/docs/src/plugins/scalar/index.ts new file mode 100644 index 000000000..40419dbba --- /dev/null +++ b/docs/src/plugins/scalar/index.ts @@ -0,0 +1,62 @@ +import type { LoadContext, Plugin } from "@docusaurus/types"; +import type { ReferenceProps } from "@scalar/api-reference-react"; + +export type ScalarOptions = { + label: string; + route: string; + showNavLink?: boolean; +} & ReferenceProps; + +/** + * Used to set default options from the user-provided options + * This is also useful to ensure backwards compatibility with older configs that don't have the new options + */ +const createDefaultScalarOptions = (options: ScalarOptions): ScalarOptions => ({ + showNavLink: true, + ...options, +}); + +/** + * Scalar's Docusaurus plugin for Api References + */ +function ScalarDocusaurusCustomPlugin( + context: LoadContext, + options: ScalarOptions +): Plugin { + const defaultOptions = createDefaultScalarOptions(options); + + return { + name: "@scalar/docusaurus", + + async loadContent() { + return defaultOptions; + }, + + async contentLoaded({ content, actions }) { + const { addRoute } = actions; + + // If showNavLink is true, add a link to the navbar + if (defaultOptions.showNavLink) { + ( + context.siteConfig.themeConfig.navbar as { + items: Record[]; + } + ).items.push({ + to: defaultOptions.route ?? "/scalar", + label: defaultOptions.label ?? "Scalar", + position: "left", + }); + } + + addRoute({ + path: defaultOptions.route, + component: "@scalar/docusaurus/dist/ScalarDocusaurus", + // Provide the path to the loaded spec as a prop to your component + exact: true, + ...content, + }); + }, + }; +} + +export default ScalarDocusaurusCustomPlugin; \ No newline at end of file diff --git a/docs/src/styles/alert.scss b/docs/src/styles/alert.scss new file mode 100644 index 000000000..29dec92a2 --- /dev/null +++ b/docs/src/styles/alert.scss @@ -0,0 +1,3 @@ +.alert { + border-left: 0; +} diff --git a/docs/src/styles/apiReference.scss b/docs/src/styles/apiReference.scss new file mode 100644 index 000000000..506ada55d --- /dev/null +++ b/docs/src/styles/apiReference.scss @@ -0,0 +1,16 @@ +.sidebar-heading-link-title { + font-size: 0.875rem !important; + line-height: 1.25rem !important; + font-weight: 400 !important; +} + +// .sidebar-heading { +// --scalar-sidebar-indent-base: 0px !important; +// } + +.sidebar-group-title { + font-weight: 600 !important; + border-top: none !important; + font-size: 14px !important; + padding-left: 12px !important; +} \ No newline at end of file diff --git a/docs/src/styles/base.scss b/docs/src/styles/base.scss new file mode 100644 index 000000000..fadd7d4b1 --- /dev/null +++ b/docs/src/styles/base.scss @@ -0,0 +1,47 @@ +@import url("https://fonts.googleapis.com/css2?family=Inter:wght@100..900&family=Space+Grotesk:wght@300..700&display=swap"); + +:root { + --ifm-color-primary: #2563eb; + --ifm-color-primary-dark: #2159d4; + --ifm-color-primary-darker: #1e4fbc; + --ifm-color-primary-darkest: #1a45a5; + --ifm-color-primary-light: #3b73ed; + --ifm-color-primary-lighter: #5182ef; + --ifm-color-primary-lightest: #6692f1; + --ifm-code-font-size: 95%; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); + /* Custom */ + --ifm-navbar-background-color: #fff; + --ifm-background-color: #fff; + --ifm-toc-border-color: transparent; + --ifm-font-family-base: "Inter"; +} + +/* For readability concerns, you should choose a lighter palette in dark mode. */ +html[data-theme="dark"] { + --ifm-color-primary: #4377e9; + --ifm-color-primary-dark: #3c6bd2; + --ifm-color-primary-darker: #365fba; + --ifm-color-primary-darkest: #2f53a3; + --ifm-color-primary-light: #5685eb; + --ifm-color-primary-lighter: #6992ed; + --ifm-color-primary-lightest: #7ba0f0; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); + /* Custom */ + --ifm-navbar-background-color: #111; + --ifm-background-color: #111; + --ifm-toc-border-color: transparent; + --ifm-font-family-base: "Inter"; +} + +.openai-coverage { + p { + margin-bottom: 0; + } +} + +.plugin-docs { + main { + padding: 80px 0; + } +} diff --git a/docs/src/styles/cardContainer.scss b/docs/src/styles/cardContainer.scss new file mode 100644 index 000000000..eb310c55a --- /dev/null +++ b/docs/src/styles/cardContainer.scss @@ -0,0 +1,65 @@ +.cardContainer { + border: 1px; + border-style: solid; + @apply dark:border-neutral-700 border-neutral-800; + @apply dark:bg-[#111] bg-white; + padding: 32px; + border-radius: 16px; + position: relative; + width: 100%; + + &:before { + position: absolute; + content: ""; + right: -10px; + bottom: -10px; + z-index: -1; + width: 100%; + height: 100%; + border: 1px; + border-style: solid; + @apply dark:border-neutral-800 border-neutral-800; + @apply bg-[#111] dark:bg-neutral-800; + border-radius: inherit; + } + + &__small { + &:before { + right: -6px; + bottom: -6px; + } + } +} + +.cardCustom { + .card { + overflow: visible; + border: 1px; + border-style: solid; + @apply dark:border-neutral-500 border-neutral-800; + @apply dark:bg-neutral-900 bg-neutral-50; + padding: 32px; + border-radius: 16px; + position: relative; + width: 100%; + + &:hover { + @apply dark:border-neutral-500 border-neutral-800; + } + + &:before { + position: absolute; + content: ""; + right: -10px; + bottom: -10px; + z-index: -1; + width: 100%; + height: 100%; + border: 1px; + border-style: solid; + @apply dark:border-neutral-500 border-neutral-800; + + border-radius: inherit; + } + } +} diff --git a/docs/src/styles/codehike.scss b/docs/src/styles/codehike.scss new file mode 100644 index 000000000..f04048cf6 --- /dev/null +++ b/docs/src/styles/codehike.scss @@ -0,0 +1,13 @@ +.ch-codeblock { + box-shadow: none !important; + + .ch-code-button { + display: none; + } + + &:hover { + .ch-code-button { + display: block; + } + } +} diff --git a/docs/src/styles/footer.scss b/docs/src/styles/footer.scss new file mode 100644 index 000000000..193d6888f --- /dev/null +++ b/docs/src/styles/footer.scss @@ -0,0 +1,58 @@ +:root { + footer { + --ifm-footer-background-color: #fff; + } +} + +/* For readability concerns, you should choose a lighter palette in dark mode. */ +html[data-theme="dark"] { + footer { + --ifm-footer-background-color: #111; + } +} + +footer { + margin: 20px; + padding: var(--ifm-navbar-padding-vertical) + var(--ifm-navbar-padding-horizontal); +} + +[data-theme="light"] .DocSearch { + --docsearch-searchbox-background: white; +} + +.DocSearch-Footer { + margin: 0; +} + +.DocSearch-Button-Key, +.DocSearch-Commands-Key { + box-shadow: none !important; +} + +.DocSearch-Button { + border-radius: 8px !important; + padding: 0 10px !important; + border: 1px solid rgb(216, 216, 216) !important; +} + +.DocSearch-Search-Icon { + width: 14px !important; +} + +.DocSearch-Button-Key { + color: black !important; +} + +[data-theme="dark"] { + .DocSearch-Button { + border: 1px solid rgb(66, 66, 66) !important; + } + .DocSearch-Button-Key { + color: white !important; + } +} + +.DocSearch-Button-Keys { + min-width: unset !important; +} diff --git a/docs/src/styles/main.scss b/docs/src/styles/main.scss new file mode 100644 index 000000000..fd2840b56 --- /dev/null +++ b/docs/src/styles/main.scss @@ -0,0 +1,15 @@ +@import "tailwindcss/base"; +@import "tailwindcss/components"; +@import "tailwindcss/utilities"; + +@import "./base.scss"; +@import "./codehike.scss"; +@import "./footer.scss"; +@import "./navbar.scss"; +@import "./sidebar.scss"; +@import "./tabs.scss"; +@import "./alert.scss"; +@import "./pagination.scss"; +@import "./cardContainer.scss"; +@import "./models-detail.scss"; +@import "./apiReference.scss"; \ No newline at end of file diff --git a/docs/src/styles/models-detail.scss b/docs/src/styles/models-detail.scss new file mode 100644 index 000000000..115049188 --- /dev/null +++ b/docs/src/styles/models-detail.scss @@ -0,0 +1,13 @@ +.models-detail { + hr { + display: none; + } + + li { + margin-top: 8px; + } + + pre { + margin-top: 8px; + } +} diff --git a/docs/src/styles/navbar.scss b/docs/src/styles/navbar.scss new file mode 100644 index 000000000..3f406ac35 --- /dev/null +++ b/docs/src/styles/navbar.scss @@ -0,0 +1,27 @@ +.navbar { + box-shadow: none; + border-bottom: 1px solid; + @apply dark:border-neutral-800 border-neutral-200; +} + +.header-github-link::before { + content: ""; + width: 21px; + height: 21px; + display: flex; + background-color: var(--ifm-navbar-link-color); + mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E"); + transition: background-color var(--ifm-transition-fast) + var(--ifm-transition-timing-default); +} + +.header-discord-link::before { + content: ""; + width: 24px; + height: 24px; + display: flex; + background-color: var(--ifm-navbar-link-color); + mask-image: url("data:image/svg+xml,%3Csvg role='img' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle%3EDiscord%3C/title%3E%3Cpath d='M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z'%3E%3C/path%3E%3C/svg%3E"); + transition: background-color var(--ifm-transition-fast) + var(--ifm-transition-timing-default); +} diff --git a/docs/src/styles/pagination.scss b/docs/src/styles/pagination.scss new file mode 100644 index 000000000..43be17db2 --- /dev/null +++ b/docs/src/styles/pagination.scss @@ -0,0 +1,10 @@ +.pagination-nav { + padding-top: 24px; + border-top: 1px; + border-style: solid; + @apply dark:border-neutral-800 border-neutral-200; + + &__link { + border: none; + } +} diff --git a/docs/src/styles/sidebar.scss b/docs/src/styles/sidebar.scss new file mode 100644 index 000000000..b3fd7bf77 --- /dev/null +++ b/docs/src/styles/sidebar.scss @@ -0,0 +1,35 @@ +.sidebar-divider { + padding-left: 10px; + margin-top: 32px; + margin-bottom: 8px; + @apply text-gray-900 dark:text-neutral-100 uppercase font-semibold text-sm; +} + +.menu__caret:before { + background: var(--ifm-menu-link-sublist-icon) 50% / 1.4rem 2rem; +} + +.sidebar-search-shortcut .sidebar-search-key { + box-shadow: none !important; +} + +.menu__link { + @apply text-gray-700 dark:text-neutral-300 text-sm; + font-weight: 400; +} + +.menu__link--active { + color: var(--ifm-menu-color-active); + font-weight: 600; +} + +.menu__list-item { + margin-top: 0 !important; +} + +.plugin-id-changelog { + .menu, + .theme-doc-toc-desktop { + display: none; + } +} diff --git a/docs/src/styles/tabs.scss b/docs/src/styles/tabs.scss new file mode 100644 index 000000000..b00d191d7 --- /dev/null +++ b/docs/src/styles/tabs.scss @@ -0,0 +1,9 @@ +.tabs { + border-bottom: 1px; + border-style: solid; + @apply dark:border-neutral-800 border-neutral-200; +} +.tabs__item { + padding: 6px; + margin: 0 8px; +} diff --git a/docs/src/theme/DocCardList/index.tsx b/docs/src/theme/DocCardList/index.tsx new file mode 100644 index 000000000..d1a1183c5 --- /dev/null +++ b/docs/src/theme/DocCardList/index.tsx @@ -0,0 +1,34 @@ +import React from "react"; +import clsx from "clsx"; +import { + useCurrentSidebarCategory, + filterDocCardListItems, +} from "@docusaurus/theme-common"; +import DocCard from "@theme/DocCard"; +import type { Props } from "@theme/DocCardList"; + +function DocCardListForCurrentSidebarCategory({ className }: Props) { + const category = useCurrentSidebarCategory(); + return ; +} + +export default function DocCardList(props: Props): JSX.Element { + const { items, className } = props; + if (!items) { + return ; + } + const filteredItems = filterDocCardListItems(items); + return ( +
+ {filteredItems.map((item, index) => { + return ( +
+
+ +
+
+ ); + })} +
+ ); +} diff --git a/docs/src/theme/Footer/Copyright/index.tsx b/docs/src/theme/Footer/Copyright/index.tsx new file mode 100644 index 000000000..5fa2ee32a --- /dev/null +++ b/docs/src/theme/Footer/Copyright/index.tsx @@ -0,0 +1,13 @@ +import React from 'react'; +import type {Props} from '@theme/Footer/Copyright'; + +export default function FooterCopyright({copyright}: Props): JSX.Element { + return ( +
+ ); +} diff --git a/docs/src/theme/Footer/index.tsx b/docs/src/theme/Footer/index.tsx new file mode 100644 index 000000000..5cfdac113 --- /dev/null +++ b/docs/src/theme/Footer/index.tsx @@ -0,0 +1,154 @@ +import React, { useState } from "react"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import { useThemeConfig } from "@docusaurus/theme-common"; +import FooterCopyright from "@theme/Footer/Copyright"; +import CardContainer from "@site/src/components/CardContainer"; +import Link from "@docusaurus/Link"; +import ThemedImage from "@theme/ThemedImage"; +import { useForm } from "react-hook-form"; +import { twMerge } from "tailwind-merge"; + +function Footer(): JSX.Element | null { + const { footer } = useThemeConfig(); + + if (!footer) { + return null; + } + const { copyright, links, logo } = footer; + + const { register, handleSubmit, reset } = useForm({ + defaultValues: { + email: "", + }, + }); + + const [formMessage, setFormMessage] = useState(""); + + const onSubmit = (data: { email: string }) => { + const { email } = data; + const options = { + method: "POST", + + body: JSON.stringify({ + updateEnabled: false, + email, + listIds: [20], + }), + }; + + if (email) { + fetch("https://brevo.jan.ai/", options) + .then((response) => response.json()) + .then((response) => { + if (response.id) { + setFormMessage("You have successfully joined our newsletter"); + } else { + setFormMessage(response.message); + } + reset(); + setTimeout(() => { + setFormMessage(""); + }, 5000); + }) + .catch((err) => console.error(err)); + } + }; + + return ( +
+ +
+
+ +

+ The Soul of a New Machine +

+

+ Subscribe to our newsletter on LLM research and building Cortex. +

+
+
+ + +
+ {formMessage &&

{formMessage}

} +
+
+ {links.length > 0 && ( +
+ {links.map((fooLink: { title: string; items: [] }, i: number) => { + return ( +
+

+ {fooLink.title} +

+ {fooLink.items.map( + ( + x: { label: string; href: string; to: string }, + i: number + ) => { + return ( +
+ + {x.label} + +
+ ); + } + )} +
+ ); + })} +
+ )} +
+
+ + +
+
+
+ ); +} + +export default React.memo(Footer); diff --git a/docs/src/theme/NavbarItem/ComponentTypes.tsx b/docs/src/theme/NavbarItem/ComponentTypes.tsx new file mode 100644 index 000000000..4a3866a3c --- /dev/null +++ b/docs/src/theme/NavbarItem/ComponentTypes.tsx @@ -0,0 +1,9 @@ +import ComponentTypes from "@theme-original/NavbarItem/ComponentTypes"; +import SocialNavbar from "@site/src/components/SocialNavbar"; +import ProductsMenu from "@site/src/components/ProductsMenu"; + +export default { + ...ComponentTypes, + "custom-socialNavbar": SocialNavbar, + "custom-productMegaMenu": ProductsMenu, +}; diff --git a/docs/src/utils/index.ts b/docs/src/utils/index.ts new file mode 100644 index 000000000..8fca325a7 --- /dev/null +++ b/docs/src/utils/index.ts @@ -0,0 +1,92 @@ +export function getMonthName(dateString: string) { + const [month, day, year] = dateString + .split("-") + .map((part) => parseInt(part, 10)); + const date = new Date(year, month - 1, day); // Create a Date object + const monthNames = [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec", + ]; + return monthNames[date.getMonth()]; // Get the month name +} + +export function formatCompactNumber(count: number) { + const formatter = Intl.NumberFormat("en", { notation: "compact" }); + return formatter.format(count); +} + +export const toGibibytes = ( + input: number, + options?: { hideUnit?: boolean } +) => { + if (!input) return ""; + if (input > 1024 ** 3) { + return (input / 1024 ** 3).toFixed(2) + (options?.hideUnit ? "" : "GB"); + } else if (input > 1024 ** 2) { + return (input / 1024 ** 2).toFixed(2) + (options?.hideUnit ? "" : "MB"); + } else if (input > 1024) { + return (input / 1024).toFixed(2) + (options?.hideUnit ? "" : "KB"); + } else { + return input + (options?.hideUnit ? "" : "B"); + } +}; + +export function yamlToJSON(yamlString: string): string { + const lines = yamlString.split("\n"); + const jsonObject: any = {}; + let currentObject: any = jsonObject; + const stack: any[] = []; + + lines.forEach((line) => { + line = line.trim(); + if (line.startsWith("#") || line === "") return; // Skip comments and empty lines + + if (line.includes(":")) { + const [key, value] = line.split(/:(.+)/).map((str) => str.trim()); + if (value === undefined) { + const newObject: any = {}; + stack.push(currentObject); + currentObject[key] = newObject; + currentObject = newObject; + } else { + if (value === "" || value === "-") { + const newObject: any = {}; + stack.push(currentObject); + currentObject[key] = newObject; + currentObject = newObject; + } else { + currentObject[key] = isNaN(Number(value)) + ? value === "true" || value === "false" + ? value === "true" + : value + : parseFloat(value); + } + } + } else if (line === "-") { + if (!Array.isArray(currentObject)) { + const arrayKey = Object.keys(stack[stack.length - 1]).find( + (key) => stack[stack.length - 1][key] === currentObject + ); + currentObject = stack[stack.length - 1][arrayKey] = []; + } + const newObject: any = {}; + currentObject.push(newObject); + stack.push(currentObject); + currentObject = newObject; + } + }); + + while (stack.length) currentObject = stack.pop(); // Return to top level object + + return JSON.stringify(jsonObject, null, 2); +} diff --git a/docs/static/.nojekyll b/docs/static/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/docs/static/diagrams/Architecture.excalidraw b/docs/static/diagrams/Architecture.excalidraw new file mode 100644 index 000000000..0b69b22ba --- /dev/null +++ b/docs/static/diagrams/Architecture.excalidraw @@ -0,0 +1,1037 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 1414, + "versionNonce": 1366554014, + "index": "b0b", + "isDeleted": false, + "id": "15aEgI5gEseBuqvZT3RYq", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 242.9504671115319, + "y": 153.27830814919378, + "strokeColor": "#ced4da", + "backgroundColor": "#f8f9fa", + "width": 223.2405060998147, + "height": 440.01827165120403, + "seed": 1684839618, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "81V7OQs6AhX6Y4QY0cbKw", + "type": "arrow" + }, + { + "id": "LEhf2Zfw7HUjqT8O0xg1_", + "type": "arrow" + } + ], + "updated": 1723789262271, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 1192, + "versionNonce": 822978078, + "index": "b0c", + "isDeleted": false, + "id": "atnjvJfrMX8-9bCoa3z_G", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 645.6570517523978, + "y": 153.27830814919378, + "strokeColor": "#ced4da", + "backgroundColor": "#f8f9fa", + "width": 896.203111811024, + "height": 440.01827165120403, + "seed": 929472322, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "81V7OQs6AhX6Y4QY0cbKw", + "type": "arrow" + }, + { + "id": "LEhf2Zfw7HUjqT8O0xg1_", + "type": "arrow" + } + ], + "updated": 1723789262271, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 791, + "versionNonce": 365498946, + "index": "b0cG", + "isDeleted": false, + "id": "jemDA5DKEVKFnGJmGO7ni", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 287.07072016143957, + "y": 338.7153507414707, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 135, + "height": 68, + "seed": 732242178, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "yJmXxUNJl51sSdU23ijpa", + "type": "text" + } + ], + "updated": 1723789262082, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 766, + "versionNonce": 758217218, + "index": "b0e", + "isDeleted": false, + "id": "yJmXxUNJl51sSdU23ijpa", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 337.3507341995255, + "y": 360.2153507414707, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 34.439971923828125, + "height": 25, + "seed": 840806594, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723789262082, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "CLI", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "jemDA5DKEVKFnGJmGO7ni", + "originalText": "CLI", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 963, + "versionNonce": 1387719106, + "index": "b1Q8", + "isDeleted": false, + "id": "VakeDQdXXWMfy3HCR0yfr", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1323.1904812794169, + "y": 185.7025497362205, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 1226275650, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "Qfe5YWOsbXJmVByTtSXqu", + "type": "text" + } + ], + "updated": 1723789262082, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 958, + "versionNonce": 1299734914, + "index": "b1QG", + "isDeleted": false, + "id": "Qfe5YWOsbXJmVByTtSXqu", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1351.6080472142366, + "y": 202.56584927429958, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 126.11991882324219, + "height": 50, + "seed": 483050242, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723789262082, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Onnx runtime\nengine", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "VakeDQdXXWMfy3HCR0yfr", + "originalText": "Onnx runtime\nengine", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 530, + "versionNonce": 436990046, + "index": "b1RZ", + "isDeleted": false, + "id": "n0n6Z40Uu25_YDJDYZcT-", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 818.3199645836039, + "y": 518.9378095926158, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 214.57443867157235, + "height": 0, + "seed": 732385630, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "LVzdIIkfmSAa1z6Ir-2fw", + "type": "text" + } + ], + "updated": 1723789262271, + "link": null, + "locked": false, + "startBinding": { + "elementId": "I_Od4_VKgNWaoY4h3JJES", + "focus": -0.05567870318937449, + "gap": 4.0293827917498675, + "fixedPoint": null + }, + "endBinding": { + "elementId": "JoUTAPisSjbBMnrkevPxs", + "focus": -0.7859791474257433, + "gap": 6.903728423946632, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 214.57443867157235, + 0 + ] + ], + "elbowed": false + }, + { + "type": "text", + "version": 48, + "versionNonce": 1240147486, + "index": "b1Rt", + "isDeleted": false, + "id": "LVzdIIkfmSAa1z6Ir-2fw", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2963.6008254420876, + "y": 461.6205159106033, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 61.3199462890625, + "height": 40, + "seed": 1001485726, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723789205078, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Runtime\nLoading", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "n0n6Z40Uu25_YDJDYZcT-", + "originalText": "Runtime\nLoading", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1019, + "versionNonce": 801859842, + "index": "b1h", + "isDeleted": false, + "id": "Nv8IuWMMSx_D6XgiEvz3l", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1323.1904812794169, + "y": 330.5504208236148, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 1577517058, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "S0rnhDoiwCVV2rCtFcPb1", + "type": "text" + } + ], + "updated": 1723789262082, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1037, + "versionNonce": 1782249666, + "index": "b1i", + "isDeleted": false, + "id": "S0rnhDoiwCVV2rCtFcPb1", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1342.4180600316195, + "y": 347.41372036169383, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 144.49989318847656, + "height": 50, + "seed": 451653570, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723789262082, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "TensorRT-LLM\nengine", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Nv8IuWMMSx_D6XgiEvz3l", + "originalText": "TensorRT-LLM\nengine", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1057, + "versionNonce": 396529794, + "index": "b1j", + "isDeleted": false, + "id": "yMc2IldSW8sPtZKKZjsdw", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1323.1904812794169, + "y": 475.3982919110091, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 1944375710, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "1vV-R8riWK3RYETly_zT_", + "type": "text" + } + ], + "updated": 1723789262082, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1070, + "versionNonce": 734081090, + "index": "b1k", + "isDeleted": false, + "id": "1vV-R8riWK3RYETly_zT_", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1370.1680371434359, + "y": 492.26159144908814, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 88.99993896484375, + "height": 50, + "seed": 1187061570, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723789262082, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Ilama.cpp\nengine", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "yMc2IldSW8sPtZKKZjsdw", + "originalText": "Ilama.cpp\nengine", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1237, + "versionNonce": 740425630, + "index": "b1l", + "isDeleted": false, + "id": "JoUTAPisSjbBMnrkevPxs", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1039.798131679123, + "y": 185.26847469654314, + "strokeColor": "#ced4da", + "backgroundColor": "#e9ecef", + "width": 243.44130770173297, + "height": 373.65423373169136, + "seed": 599464926, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "n0n6Z40Uu25_YDJDYZcT-", + "type": "arrow" + } + ], + "updated": 1723789277119, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 1097, + "versionNonce": 1136625602, + "index": "b1m", + "isDeleted": false, + "id": "v-rZMhPVYo_M0hmA4pRh-", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1070.0412601835483, + "y": 330.5504208236148, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 824517058, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "nW3lwZiXQOgN75Gs7Ie_E", + "type": "text" + } + ], + "updated": 1723789262082, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1137, + "versionNonce": 264060802, + "index": "b1n", + "isDeleted": false, + "id": "nW3lwZiXQOgN75Gs7Ie_E", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1120.9888325270595, + "y": 347.41372036169383, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 81.05990600585938, + "height": 50, + "seed": 828348802, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723789262082, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Dynamic\nLibraries", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "v-rZMhPVYo_M0hmA4pRh-", + "originalText": "Dynamic\nLibraries", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 873, + "versionNonce": 1252917058, + "index": "b1o", + "isDeleted": false, + "id": "hJARijeu0Tdk-IMx7UrbL", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 847.0583293271216, + "y": 192.6084357372638, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 135, + "height": 68, + "seed": 778777182, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "Mbef7R8LCeG2-HLD7UqEZ", + "type": "text" + }, + { + "id": "rPXEWh1dHd-R5rsp4JkBp", + "type": "arrow" + } + ], + "updated": 1723789262082, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 853, + "versionNonce": 821085954, + "index": "b1p", + "isDeleted": false, + "id": "Mbef7R8LCeG2-HLD7UqEZ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 886.458353741184, + "y": 214.1084357372638, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 56.199951171875, + "height": 25, + "seed": 1565603486, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723789262083, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Kernel", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "hJARijeu0Tdk-IMx7UrbL", + "originalText": "Kernel", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 942, + "versionNonce": 476718110, + "index": "b1q", + "isDeleted": false, + "id": "I_Od4_VKgNWaoY4h3JJES", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 679.290581791854, + "y": 486.83088550105464, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 135, + "height": 68, + "seed": 382778562, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "L2I3zwdDJ0_buJb30EFXL", + "type": "text" + }, + { + "id": "rPXEWh1dHd-R5rsp4JkBp", + "type": "arrow" + }, + { + "id": "n0n6Z40Uu25_YDJDYZcT-", + "type": "arrow" + } + ], + "updated": 1723789262271, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 926, + "versionNonce": 1362841154, + "index": "b1r", + "isDeleted": false, + "id": "L2I3zwdDJ0_buJb30EFXL", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 715.460602848983, + "y": 508.33088550105464, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 62.65995788574219, + "height": 25, + "seed": 887084162, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723789262083, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Server", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "I_Od4_VKgNWaoY4h3JJES", + "originalText": "Server", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "rPXEWh1dHd-R5rsp4JkBp", + "type": "arrow", + "x": 842.0583293271216, + "y": 226.5084357372638, + "width": 95.36774753526743, + "height": 255.32244976379084, + "angle": 0, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1s", + "roundness": null, + "seed": 1537798238, + "version": 218, + "versionNonce": 981476638, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "dmrMSl0P3Mvxexa6gAJ1x" + } + ], + "updated": 1723789262271, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -95.36774753526743, + 0 + ], + [ + -95.36774753526743, + 255.32244976379084 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "hJARijeu0Tdk-IMx7UrbL", + "focus": 0.002941176470588068, + "gap": 5, + "fixedPoint": [ + -0.037037037037037035, + 0.49852941176470594 + ] + }, + "endBinding": { + "elementId": "I_Od4_VKgNWaoY4h3JJES", + "focus": -0.0014814814814801342, + "gap": 4.999999999999972, + "fixedPoint": [ + 0.49925925925925996, + -0.07352941176470588 + ] + }, + "startArrowhead": null, + "endArrowhead": "triangle", + "elbowed": true + }, + { + "id": "dmrMSl0P3Mvxexa6gAJ1x", + "type": "text", + "x": 2804.0840664266125, + "y": 206.5084357372638, + "width": 122.58390808105469, + "height": 40, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1t", + "roundness": null, + "seed": 1875271006, + "version": 33, + "versionNonce": 2086116866, + "isDeleted": false, + "boundElements": null, + "updated": 1723789138610, + "link": null, + "locked": false, + "text": "Recommend\nhardware config", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "rPXEWh1dHd-R5rsp4JkBp", + "originalText": "Recommend\nhardware config", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 685, + "versionNonce": 14651870, + "index": "b1w", + "isDeleted": false, + "id": "LEhf2Zfw7HUjqT8O0xg1_", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 472.20587819633874, + "y": 227.18505262863687, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 171.35293470758916, + "height": 0, + "seed": 713478430, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "Ioh_8UJOGuzFDhZUHlwX6", + "type": "text" + } + ], + "updated": 1723789262271, + "link": null, + "locked": false, + "startBinding": { + "elementId": "15aEgI5gEseBuqvZT3RYq", + "focus": -0.6640742021820952, + "gap": 6.014904984992171, + "fixedPoint": null + }, + "endBinding": { + "elementId": "atnjvJfrMX8-9bCoa3z_G", + "focus": 0.6640742021820956, + "gap": 2.0982388484699186, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": "triangle", + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 171.35293470758916, + 0 + ] + ], + "elbowed": false + }, + { + "type": "text", + "version": 59, + "versionNonce": 2044050910, + "index": "b1x", + "isDeleted": false, + "id": "Ioh_8UJOGuzFDhZUHlwX6", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2639.8918122405557, + "y": 217.18505262863687, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 73.35194396972656, + "height": 20, + "seed": 2047540574, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723789221027, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Response", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "LEhf2Zfw7HUjqT8O0xg1_", + "originalText": "Response", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 981, + "versionNonce": 290797214, + "index": "b1y", + "isDeleted": false, + "id": "81V7OQs6AhX6Y4QY0cbKw", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 472.20587819633874, + "y": 522.540862913001, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 171.35293470758916, + "height": 0, + "seed": 1082629982, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "_7iVHO16Bye3XUvVNSLWm", + "type": "text" + } + ], + "updated": 1723789262271, + "link": null, + "locked": false, + "startBinding": { + "elementId": "15aEgI5gEseBuqvZT3RYq", + "focus": 0.6783964601202568, + "gap": 6.014904984992171, + "fixedPoint": null + }, + "endBinding": { + "elementId": "atnjvJfrMX8-9bCoa3z_G", + "focus": -0.6783964601202568, + "gap": 2.0982388484699186, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 171.35293470758916, + 0 + ] + ], + "elbowed": false + }, + { + "type": "text", + "version": 67, + "versionNonce": 1468337502, + "index": "b1z", + "isDeleted": false, + "id": "_7iVHO16Bye3XUvVNSLWm", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2644.547810470536, + "y": 512.540862913001, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 64.03994750976562, + "height": 20, + "seed": 727188382, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723789227393, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Request", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "81V7OQs6AhX6Y4QY0cbKw", + "originalText": "Request", + "autoResize": true, + "lineHeight": 1.25 + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/docs/static/diagrams/ONNX.excalidraw b/docs/static/diagrams/ONNX.excalidraw new file mode 100644 index 000000000..fe69dc74a --- /dev/null +++ b/docs/static/diagrams/ONNX.excalidraw @@ -0,0 +1,754 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 2395, + "versionNonce": 418658718, + "index": "b0Z", + "isDeleted": false, + "id": "15aEgI5gEseBuqvZT3RYq", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -697.3102163709642, + "y": -408.18953829928716, + "strokeColor": "#ced4da", + "backgroundColor": "#f8f9fa", + "width": 1030.2730422225284, + "height": 484.8674928890096, + "seed": 1684839618, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1723790736591, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 2150, + "versionNonce": 145034078, + "index": "b0a", + "isDeleted": false, + "id": "AzlliO_THd-9-yLKxkTfC", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -233.60513959238722, + "y": -377.9917164122016, + "strokeColor": "#ced4da", + "backgroundColor": "#f8f9fa", + "width": 536.962167658899, + "height": 425.018271651204, + "seed": 2144983362, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "lx6DHzG1QbcwSrIBXcqNy", + "type": "arrow" + }, + { + "id": "_H9H7lLoCmxfxP-IUlGPC", + "type": "arrow" + } + ], + "updated": 1723790696871, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 1276, + "versionNonce": 2119830146, + "index": "b0cG", + "isDeleted": false, + "id": "Og32EQcHDFKCFOQbiMPpv", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -455.71202803508936, + "y": -206.37680062197109, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 135, + "height": 68, + "seed": 1414834690, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "pkkz2sABDwyIkxNf1Mgpp", + "type": "text" + }, + { + "id": "_H9H7lLoCmxfxP-IUlGPC", + "type": "arrow" + }, + { + "id": "lx6DHzG1QbcwSrIBXcqNy", + "type": "arrow" + } + ], + "updated": 1723790731131, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1258, + "versionNonce": 1895583902, + "index": "b0e", + "isDeleted": false, + "id": "pkkz2sABDwyIkxNf1Mgpp", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -446.1119914139956, + "y": -184.87680062197109, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 115.7999267578125, + "height": 25, + "seed": 234101186, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723790728599, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Cortex-CPP", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Og32EQcHDFKCFOQbiMPpv", + "originalText": "Cortex-CPP", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 925, + "versionNonce": 1294981762, + "index": "b22", + "isDeleted": false, + "id": "F5f4ZS9iQ9K9Dj31JLjfQ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -234.68096328049586, + "y": -379.25617151284473, + "strokeColor": "transparent", + "backgroundColor": "#ced4da", + "width": 238.92431935268445, + "height": 60, + "seed": 668182722, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "RHP1cHjPBWKxalwSUHXgg" + } + ], + "updated": 1723790601393, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 856, + "versionNonce": 353712706, + "index": "b23", + "isDeleted": false, + "id": "RHP1cHjPBWKxalwSUHXgg", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -207.2887422638216, + "y": -361.75617151284473, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 184.13987731933594, + "height": 25, + "seed": 2124759170, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790601393, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Cortex.onnx engine", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "F5f4ZS9iQ9K9Dj31JLjfQ", + "originalText": "Cortex.onnx engine", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1416, + "versionNonce": 2005585566, + "index": "b25", + "isDeleted": false, + "id": "Aw2ZlTU6l5BMCcmY4FiJv", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -207.12496239852956, + "y": -293.5929738219832, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 807414722, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "Z-MpYo1W46a40f5AiVTNF", + "type": "text" + }, + { + "id": "LEhf2Zfw7HUjqT8O0xg1_", + "type": "arrow" + } + ], + "updated": 1723790638312, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1437, + "versionNonce": 503779970, + "index": "b26", + "isDeleted": false, + "id": "Z-MpYo1W46a40f5AiVTNF", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -149.0974111121474, + "y": -264.22967428390416, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 66.89994812011719, + "height": 25, + "seed": 1885954946, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723790638312, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Enginei", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Aw2ZlTU6l5BMCcmY4FiJv", + "originalText": "Enginei", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 1762, + "versionNonce": 14711326, + "index": "b2B", + "isDeleted": false, + "id": "4_vGQ87flHdrX9uilm9tO", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -19.62772197998072, + "y": -27.626420462385365, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 65.20158546880532, + "height": 0.36902957543875203, + "seed": 145886082, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723790675352, + "link": null, + "locked": false, + "startBinding": { + "elementId": "yMc2IldSW8sPtZKKZjsdw", + "focus": 0.08201248361134593, + "gap": 4.542189725667299, + "fixedPoint": null + }, + "endBinding": { + "elementId": "eWG-d2M-MQoKxO_xuDBtm", + "focus": -0.08201248361134594, + "gap": 3.702388195776905, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": "triangle", + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 65.20158546880532, + -0.36902957543875203 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 1856, + "versionNonce": 910520898, + "index": "b2L", + "isDeleted": false, + "id": "LEhf2Zfw7HUjqT8O0xg1_", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -116.57154075998962, + "y": -202.53906850069347, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 0, + "height": 126.48125630154584, + "seed": 713478430, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790638312, + "link": null, + "locked": false, + "startBinding": { + "elementId": "Aw2ZlTU6l5BMCcmY4FiJv", + "focus": -0.002567980092606306, + "gap": 7.327306245131595, + "fixedPoint": null + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": "triangle", + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 126.48125630154584 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 1345, + "versionNonce": 841362846, + "index": "b2M", + "isDeleted": false, + "id": "jemDA5DKEVKFnGJmGO7ni", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -667.8689477759472, + "y": -207.45995081265966, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 135, + "height": 68, + "seed": 732242178, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "yJmXxUNJl51sSdU23ijpa", + "type": "text" + }, + { + "id": "lx6DHzG1QbcwSrIBXcqNy", + "type": "arrow" + } + ], + "updated": 1723790732445, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1330, + "versionNonce": 2123024862, + "index": "b2N", + "isDeleted": false, + "id": "yJmXxUNJl51sSdU23ijpa", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -650.1889169531933, + "y": -185.95995081265966, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 99.63993835449219, + "height": 25, + "seed": 840806594, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790732445, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Cortex-JS", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "jemDA5DKEVKFnGJmGO7ni", + "originalText": "Cortex-JS", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 1991, + "versionNonce": 1752908062, + "index": "b2O", + "isDeleted": false, + "id": "_H9H7lLoCmxfxP-IUlGPC", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -311.2523460945337, + "y": -170.99774847362377, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 72.75280870144383, + "height": 0.43392368819388594, + "seed": 1282852638, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723790728707, + "link": null, + "locked": false, + "startBinding": { + "elementId": "Og32EQcHDFKCFOQbiMPpv", + "focus": 0.05342815500742342, + "gap": 9.45968194055564, + "fixedPoint": null + }, + "endBinding": { + "elementId": "AzlliO_THd-9-yLKxkTfC", + "focus": 0.0337163672713068, + "gap": 4.894397800702677, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": "bar", + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 72.75280870144383, + -0.43392368819388594 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 2104, + "versionNonce": 1150410270, + "index": "b2P", + "isDeleted": false, + "id": "lx6DHzG1QbcwSrIBXcqNy", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -529.8283027546842, + "y": -171.68613760944663, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 64.60384967290759, + "height": 0.5088184387976469, + "seed": 681453662, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723790732445, + "link": null, + "locked": false, + "startBinding": { + "elementId": "jemDA5DKEVKFnGJmGO7ni", + "focus": 0.03527886621535588, + "gap": 3.0406450212630034, + "fixedPoint": null + }, + "endBinding": { + "elementId": "Og32EQcHDFKCFOQbiMPpv", + "focus": -0.03527886621535588, + "gap": 9.512425046687213, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": "triangle", + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 64.60384967290759, + 0.5088184387976469 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 1686, + "versionNonce": 845544414, + "index": "b2R", + "isDeleted": false, + "id": "yMc2IldSW8sPtZKKZjsdw", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -207.12496239852956, + "y": -72.923033167748, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 1944375710, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "1vV-R8riWK3RYETly_zT_", + "type": "text" + }, + { + "id": "81V7OQs6AhX6Y4QY0cbKw", + "type": "arrow" + }, + { + "id": "4_vGQ87flHdrX9uilm9tO", + "type": "arrow" + } + ], + "updated": 1723790649861, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1737, + "versionNonce": 632061954, + "index": "b2S", + "isDeleted": false, + "id": "1vV-R8riWK3RYETly_zT_", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -178.19738669808487, + "y": -43.55973362966894, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 125.09989929199219, + "height": 25, + "seed": 1187061570, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790671079, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Onnx_enginei", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "yMc2IldSW8sPtZKKZjsdw", + "originalText": "Onnx_enginei", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1756, + "versionNonce": 1982581150, + "index": "b2T", + "isDeleted": false, + "id": "eWG-d2M-MQoKxO_xuDBtm", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 49.276251684601505, + "y": -74.00436909340394, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 225.7842294336452, + "height": 83.72659907615812, + "seed": 1105039426, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "5DEpcmpMZISR4AJBjpdhS", + "type": "text" + }, + { + "id": "4_vGQ87flHdrX9uilm9tO", + "type": "arrow" + } + ], + "updated": 1723790675351, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1800, + "versionNonce": 1804442114, + "index": "b2U", + "isDeleted": false, + "id": "5DEpcmpMZISR4AJBjpdhS", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 72.09843537115067, + "y": -44.641069555324876, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 180.13986206054688, + "height": 25, + "seed": 503724034, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790688348, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Onnxruntime_genai", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "eWG-d2M-MQoKxO_xuDBtm", + "originalText": "Onnxruntime_genai", + "autoResize": true, + "lineHeight": 1.25 + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/docs/static/diagrams/Telemetry.excalidraw b/docs/static/diagrams/Telemetry.excalidraw new file mode 100644 index 000000000..cdc0c5847 --- /dev/null +++ b/docs/static/diagrams/Telemetry.excalidraw @@ -0,0 +1,1219 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 656, + "versionNonce": 796964546, + "index": "b0c", + "isDeleted": false, + "id": "JoUTAPisSjbBMnrkevPxs", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 178.39735199885854, + "y": 194.38848808510681, + "strokeColor": "#ced4da", + "backgroundColor": "#f8f9fa", + "width": 1673.441307701733, + "height": 392.7707505918649, + "seed": 599464926, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1723781315430, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 543, + "versionNonce": 1186236190, + "index": "b0cG", + "isDeleted": false, + "id": "I_Od4_VKgNWaoY4h3JJES", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 226.79916778736043, + "y": 355.1847045813875, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 135, + "height": 68, + "seed": 382778562, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "L2I3zwdDJ0_buJb30EFXL", + "type": "text" + } + ], + "updated": 1723781348849, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 516, + "versionNonce": 303137218, + "index": "b0e", + "isDeleted": false, + "id": "L2I3zwdDJ0_buJb30EFXL", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 260.68918243579793, + "y": 376.6847045813875, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 67.219970703125, + "height": 25, + "seed": 887084162, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723781348849, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Cortex", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "I_Od4_VKgNWaoY4h3JJES", + "originalText": "Cortex", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 747, + "versionNonce": 1655383838, + "index": "b1Q8", + "isDeleted": false, + "id": "v-rZMhPVYo_M0hmA4pRh-", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 613.6581678319266, + "y": 243.2025497362205, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 824517058, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "nW3lwZiXQOgN75Gs7Ie_E", + "type": "text" + } + ], + "updated": 1723781182773, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 723, + "versionNonce": 1162959618, + "index": "b1QG", + "isDeleted": false, + "id": "nW3lwZiXQOgN75Gs7Ie_E", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 636.0157362081525, + "y": 260.0658492742996, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 138.2399139404297, + "height": 50, + "seed": 828348802, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723781119284, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Jan Telemetry\nServer", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "v-rZMhPVYo_M0hmA4pRh-", + "originalText": "Jan Telemetry\nServer", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1171, + "versionNonce": 1990451458, + "index": "b1QO", + "isDeleted": false, + "id": "aCa2oM7rbjYvQbilbO0fi", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 981.1196156215594, + "y": 243.2025497362205, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 2062883138, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "MKcdLUjj6tJyvCd-toeMd", + "type": "text" + }, + { + "id": "7YX46AvUGPVNQrZX_MH6j", + "type": "arrow" + } + ], + "updated": 1723781210477, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1177, + "versionNonce": 1492488862, + "index": "b1QV", + "isDeleted": false, + "id": "MKcdLUjj6tJyvCd-toeMd", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1035.6271550060862, + "y": 260.0658492742996, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 73.93997192382812, + "height": 50, + "seed": 1027907842, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723781175283, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Google \nLogging", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "aCa2oM7rbjYvQbilbO0fi", + "originalText": "Google \nLogging", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1389, + "versionNonce": 1779185694, + "index": "b1Qd", + "isDeleted": false, + "id": "UiergwV_Lxf3evScZ-Mic", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1319.6416390525164, + "y": 243.2025497362205, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 678609630, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "ACYk1f0m56oMn78Yim7-N", + "type": "text" + }, + { + "id": "qCeS0hlK50Xd_sc8nB1Og", + "type": "arrow" + } + ], + "updated": 1723781214215, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1415, + "versionNonce": 306938974, + "index": "b1Ql", + "isDeleted": false, + "id": "ACYk1f0m56oMn78Yim7-N", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1366.86920254593, + "y": 260.0658492742996, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 88.49992370605469, + "height": 50, + "seed": 1091745566, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723781214215, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Google\nBigQuery", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "UiergwV_Lxf3evScZ-Mic", + "originalText": "Google\nBigQuery", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1536, + "versionNonce": 1930556254, + "index": "b1Qt", + "isDeleted": false, + "id": "nsngbeMJBOBgA1KxJ2DPw", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1622.8937390463386, + "y": 243.2025497362205, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 1701972034, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "iCXr3a552uNR3rs7MyoJu", + "type": "text" + }, + { + "id": "qCeS0hlK50Xd_sc8nB1Og", + "type": "arrow" + } + ], + "updated": 1723781348849, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1557, + "versionNonce": 1975515522, + "index": "b1R", + "isDeleted": false, + "id": "iCXr3a552uNR3rs7MyoJu", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1667.8112973517639, + "y": 272.5658492742996, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 93.11993408203125, + "height": 25, + "seed": 1212919810, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723781348849, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Metabase", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "nsngbeMJBOBgA1KxJ2DPw", + "originalText": "Metabase", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 818, + "versionNonce": 1573680002, + "index": "b1R8", + "isDeleted": false, + "id": "yuWbTTGYPXR_Ju-oDPPHa", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 613.6581678319266, + "y": 450.1668594265546, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 552390402, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "FM0bMOF2W5B-e6NmB96mr", + "type": "text" + }, + { + "id": "HBVVKXXhGFClw9P-yIdUQ", + "type": "arrow" + } + ], + "updated": 1723781152103, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 811, + "versionNonce": 989646558, + "index": "b1RG", + "isDeleted": false, + "id": "FM0bMOF2W5B-e6NmB96mr", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 656.7257200338361, + "y": 467.0301589646337, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 96.8199462890625, + "height": 50, + "seed": 1044356802, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723781115309, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Telemetry\nCollector", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "yuWbTTGYPXR_Ju-oDPPHa", + "originalText": "Telemetry\nCollector", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1280, + "versionNonce": 1888224030, + "index": "b1RO", + "isDeleted": false, + "id": "JEZUuriDD6-KQKoVP0CLj", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 981.1196156215594, + "y": 450.1668594265546, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 228.64337213082752, + "height": 85, + "seed": 1921314946, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "FbopgETP66nQpYkXc-RQj", + "type": "text" + }, + { + "id": "HBVVKXXhGFClw9P-yIdUQ", + "type": "arrow" + } + ], + "updated": 1723781175283, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1323, + "versionNonce": 1822027614, + "index": "b1RV", + "isDeleted": false, + "id": "FbopgETP66nQpYkXc-RQj", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 996.6213706566998, + "y": 467.6668594265546, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 197.63986206054688, + "height": 50, + "seed": 995594306, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723781175283, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Other Observability \nTool", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "JEZUuriDD6-KQKoVP0CLj", + "originalText": "Other Observability Tool", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 233, + "versionNonce": 1197867102, + "index": "b1RZ", + "isDeleted": false, + "id": "81V7OQs6AhX6Y4QY0cbKw", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 416.61658892546603, + "y": 288.4102228551756, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 190.20387347053094, + "height": 0, + "seed": 1082629982, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "_7iVHO16Bye3XUvVNSLWm", + "type": "text" + } + ], + "updated": 1723781161841, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "v-rZMhPVYo_M0hmA4pRh-", + "focus": -0.07988795956787831, + "gap": 6.837705435929593, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 190.20387347053094, + 0 + ] + ], + "elbowed": false + }, + { + "type": "text", + "version": 28, + "versionNonce": 1875260446, + "index": "b1Rt", + "isDeleted": false, + "id": "_7iVHO16Bye3XUvVNSLWm", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 435.2268159951635, + "y": 278.4102228551756, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 135.39988708496094, + "height": 20, + "seed": 727188382, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723781161841, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Ingest Telemetry", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "81V7OQs6AhX6Y4QY0cbKw", + "originalText": "Ingest Telemetry", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 286, + "versionNonce": 1270972894, + "index": "b1T", + "isDeleted": false, + "id": "9I7gXxiVcWeTrL4npzWrw", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 416.61658892546603, + "y": 491.15501106002733, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 190.20387347053094, + "height": 0, + "seed": 768598238, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "ozVaAWE5o3_iJt13OBqdM", + "type": "text" + } + ], + "updated": 1723781148115, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "v-rZMhPVYo_M0hmA4pRh-", + "focus": -4.922907751173986, + "gap": 164.2258622476487, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 190.20387347053094, + 0 + ] + ], + "elbowed": false + }, + { + "type": "text", + "version": 37, + "versionNonce": 1305732510, + "index": "b1U", + "isDeleted": false, + "id": "ozVaAWE5o3_iJt13OBqdM", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 442.6505782730362, + "y": 481.15501106002733, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 138.13589477539062, + "height": 20, + "seed": 421270814, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723781148115, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Export Telemetry", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "9I7gXxiVcWeTrL4npzWrw", + "originalText": "Export Telemetry", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 414, + "versionNonce": 1084248990, + "index": "b1V", + "isDeleted": false, + "id": "HBVVKXXhGFClw9P-yIdUQ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 800.8388056982845, + "y": 490.2506540488187, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 177.25397419688602, + "height": 0, + "seed": 1049212482, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "Yw5VY5pmgyNQS0daKcMvJ" + } + ], + "updated": 1723781175283, + "link": null, + "locked": false, + "startBinding": { + "elementId": "yuWbTTGYPXR_Ju-oDPPHa", + "focus": -0.042507516976684534, + "gap": 4.22558717347647, + "fixedPoint": null + }, + "endBinding": { + "elementId": "JEZUuriDD6-KQKoVP0CLj", + "focus": 0.056851891240842854, + "gap": 3.0268357263888674, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 177.25397419688602, + 0 + ] + ], + "elbowed": false + }, + { + "type": "text", + "version": 40, + "versionNonce": 1730250434, + "index": "b1W", + "isDeleted": false, + "id": "Yw5VY5pmgyNQS0daKcMvJ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 844.7670260022211, + "y": 480.2506540488187, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 55.03196716308594, + "height": 20, + "seed": 1965201154, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723781156371, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Export", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "HBVVKXXhGFClw9P-yIdUQ", + "originalText": "Export", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 408, + "versionNonce": 1973406658, + "index": "b1X", + "isDeleted": false, + "id": "slWprtqBKLedKUN-90K1w", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 800.8388056982847, + "y": 288.4102228551756, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 179.06268821930303, + "height": 0, + "seed": 291323074, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "HRk6Ve2EONJRabsHhvfYO", + "type": "text" + } + ], + "updated": 1723781182320, + "link": null, + "locked": false, + "startBinding": { + "elementId": "v-rZMhPVYo_M0hmA4pRh-", + "focus": 0.0798879595678783, + "gap": 4.225587173476583, + "fixedPoint": null + }, + "endBinding": { + "elementId": "aCa2oM7rbjYvQbilbO0fi", + "focus": -0.07988795956787828, + "gap": 1.2181217039717467, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 179.06268821930303, + 0 + ] + ], + "elbowed": false + }, + { + "type": "text", + "version": 35, + "versionNonce": 604937218, + "index": "b1Y", + "isDeleted": false, + "id": "HRk6Ve2EONJRabsHhvfYO", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 821.0554009577656, + "y": 278.4102228551756, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 104.26393127441406, + "height": 20, + "seed": 702305410, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723781182320, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Ingest Event", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "slWprtqBKLedKUN-90K1w", + "originalText": "Ingest Event", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 592, + "versionNonce": 1060919618, + "index": "b1Z", + "isDeleted": false, + "id": "7YX46AvUGPVNQrZX_MH6j", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1167.1033952377682, + "y": 288.4102228551756, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 149.218906849419, + "height": 0, + "seed": 589593602, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "pBqIysq35Q5Fpdfik-5or", + "type": "text" + } + ], + "updated": 1723781210477, + "link": null, + "locked": false, + "startBinding": { + "elementId": "aCa2oM7rbjYvQbilbO0fi", + "focus": 0.07988795956787828, + "gap": 3.0287289233273214, + "fixedPoint": null + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 149.218906849419, + 0 + ] + ], + "elbowed": false + }, + { + "type": "text", + "version": 47, + "versionNonce": 1262000450, + "index": "b1a", + "isDeleted": false, + "id": "pBqIysq35Q5Fpdfik-5or", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1225.0117714398868, + "y": 278.4102228551756, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 88.56793212890625, + "height": 20, + "seed": 1459203010, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723781202303, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Export Log", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "7YX46AvUGPVNQrZX_MH6j", + "originalText": "Export Log", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 863, + "versionNonce": 598848862, + "index": "b1b", + "isDeleted": false, + "id": "qCeS0hlK50Xd_sc8nB1Og", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1509.8547024858276, + "y": 288.4102228551756, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 111.23591237865776, + "height": 0, + "seed": 661170498, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "Kr5rNiRPKpUeLbJfumnw5", + "type": "text" + } + ], + "updated": 1723781222735, + "link": null, + "locked": false, + "startBinding": { + "elementId": "UiergwV_Lxf3evScZ-Mic", + "focus": 0.0798879595678783, + "gap": 7.258012740429535, + "fixedPoint": null + }, + "endBinding": { + "elementId": "nsngbeMJBOBgA1KxJ2DPw", + "focus": -0.0798879595678783, + "gap": 1.8031241818531498, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 111.23591237865776, + 0 + ] + ], + "elbowed": false + }, + { + "type": "text", + "version": 43, + "versionNonce": 1999522462, + "index": "b1c", + "isDeleted": false, + "id": "Kr5rNiRPKpUeLbJfumnw5", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1624.2448021961377, + "y": 278.4102228551756, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 45.23997497558594, + "height": 20, + "seed": 885403906, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723781218408, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Query", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "qCeS0hlK50Xd_sc8nB1Og", + "originalText": "Query", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "line", + "version": 79, + "versionNonce": 1143812738, + "index": "b1e", + "isDeleted": false, + "id": "es8UQ2DYkEVPMcduX4Z4u", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 416.07173711196566, + "y": 288.46902442671086, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 0, + "height": 202.5003800169469, + "seed": 1669744990, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1723781287490, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 202.5003800169469 + ] + ] + }, + { + "type": "line", + "version": 36, + "versionNonce": 867418974, + "index": "b1f", + "isDeleted": false, + "id": "0gi9NVNvNiTNqAKq3WxwS", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 361.27219398899473, + "y": 387.9745117083865, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 54.92248363954485, + "height": 0, + "seed": 476928734, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1723781297836, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 54.92248363954485, + 0 + ] + ] + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/docs/static/diagrams/TensorRT-LLM.excalidraw b/docs/static/diagrams/TensorRT-LLM.excalidraw new file mode 100644 index 000000000..0f1cd3a5b --- /dev/null +++ b/docs/static/diagrams/TensorRT-LLM.excalidraw @@ -0,0 +1,902 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 2327, + "versionNonce": 2127335902, + "index": "b0Z", + "isDeleted": false, + "id": "15aEgI5gEseBuqvZT3RYq", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -757.9666270495253, + "y": -407.1063881085986, + "strokeColor": "#ced4da", + "backgroundColor": "#f8f9fa", + "width": 1124.107240957476, + "height": 484.8674928890096, + "seed": 1684839618, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1723790540639, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 2087, + "versionNonce": 544172546, + "index": "b0a", + "isDeleted": false, + "id": "AzlliO_THd-9-yLKxkTfC", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -276.54110060653454, + "y": -377.1817774896958, + "strokeColor": "#ced4da", + "backgroundColor": "#f8f9fa", + "width": 613.075916729433, + "height": 425.018271651204, + "seed": 2144983362, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "lx6DHzG1QbcwSrIBXcqNy", + "type": "arrow" + }, + { + "id": "_H9H7lLoCmxfxP-IUlGPC", + "type": "arrow" + } + ], + "updated": 1723790540943, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 1249, + "versionNonce": 1652073090, + "index": "b0cG", + "isDeleted": false, + "id": "Og32EQcHDFKCFOQbiMPpv", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -499.038035662633, + "y": -206.37680062197109, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 135, + "height": 68, + "seed": 1414834690, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "pkkz2sABDwyIkxNf1Mgpp", + "type": "text" + }, + { + "id": "_H9H7lLoCmxfxP-IUlGPC", + "type": "arrow" + } + ], + "updated": 1723790540943, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1232, + "versionNonce": 1516385950, + "index": "b0e", + "isDeleted": false, + "id": "pkkz2sABDwyIkxNf1Mgpp", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -489.43799904153923, + "y": -184.87680062197109, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 115.7999267578125, + "height": 25, + "seed": 234101186, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723790540639, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Cortex-CPP", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Og32EQcHDFKCFOQbiMPpv", + "originalText": "Cortex-CPP", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 897, + "versionNonce": 878555870, + "index": "b22", + "isDeleted": false, + "id": "F5f4ZS9iQ9K9Dj31JLjfQ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -276.4779083282994, + "y": -377.90788296291566, + "strokeColor": "transparent", + "backgroundColor": "#ced4da", + "width": 280.721264400488, + "height": 60, + "seed": 668182722, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "RHP1cHjPBWKxalwSUHXgg" + } + ], + "updated": 1723790540639, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 823, + "versionNonce": 1914677022, + "index": "b23", + "isDeleted": false, + "id": "RHP1cHjPBWKxalwSUHXgg", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -262.6571931202429, + "y": -360.40788296291566, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 253.079833984375, + "height": 25, + "seed": 2124759170, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790540639, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Cortex.tensorrt-llm engine", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "F5f4ZS9iQ9K9Dj31JLjfQ", + "originalText": "Cortex.tensorrt-llm engine", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1413, + "versionNonce": 1142494046, + "index": "b25", + "isDeleted": false, + "id": "Aw2ZlTU6l5BMCcmY4FiJv", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -204.78564067937106, + "y": -293.5929738219832, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 807414722, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "Z-MpYo1W46a40f5AiVTNF", + "type": "text" + }, + { + "id": "LEhf2Zfw7HUjqT8O0xg1_", + "type": "arrow" + } + ], + "updated": 1723790540639, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1434, + "versionNonce": 614135710, + "index": "b26", + "isDeleted": false, + "id": "Z-MpYo1W46a40f5AiVTNF", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -146.7580893929889, + "y": -264.22967428390416, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 66.89994812011719, + "height": 25, + "seed": 1885954946, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723790540639, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Enginei", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Aw2ZlTU6l5BMCcmY4FiJv", + "originalText": "Enginei", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 1682, + "versionNonce": 276751426, + "index": "b2B", + "isDeleted": false, + "id": "4_vGQ87flHdrX9uilm9tO", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -19.62772197998072, + "y": -9.807764167256575, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 97.05417162174615, + "height": 0, + "seed": 145886082, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723790540943, + "link": null, + "locked": false, + "startBinding": { + "elementId": "VakeDQdXXWMfy3HCR0yfr", + "focus": 0.47614878283378975, + "gap": 2.20286800650878, + "fixedPoint": null + }, + "endBinding": { + "elementId": "yMc2IldSW8sPtZKKZjsdw", + "focus": -0.5226520655022306, + "gap": 2.991304475313086, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": "triangle", + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 97.05417162174615, + 0 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 1562, + "versionNonce": 895290370, + "index": "b2E", + "isDeleted": false, + "id": "yMc2IldSW8sPtZKKZjsdw", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 80.41775411707852, + "y": -73.55100367765124, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 1944375710, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "1vV-R8riWK3RYETly_zT_", + "type": "text" + }, + { + "id": "81V7OQs6AhX6Y4QY0cbKw", + "type": "arrow" + }, + { + "id": "4_vGQ87flHdrX9uilm9tO", + "type": "arrow" + } + ], + "updated": 1723790540943, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1601, + "versionNonce": 1072380062, + "index": "b2F", + "isDeleted": false, + "id": "1vV-R8riWK3RYETly_zT_", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 123.73531394838257, + "y": -44.187704139572176, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 96.31993103027344, + "height": 25, + "seed": 1187061570, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790540639, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Tokenizer", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "yMc2IldSW8sPtZKKZjsdw", + "originalText": "Tokenizer", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1682, + "versionNonce": 1165391070, + "index": "b2G", + "isDeleted": false, + "id": "aY6uwi_eAgdAEEgC_5aK6", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 80.41775411707852, + "y": -294.56636424790963, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 225.7842294336452, + "height": 83.72659907615812, + "seed": 1186112706, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "NF9eosH2wx4gCO_pN5UHU", + "type": "text" + }, + { + "id": "VaODIFu3UfbZRvnItRfVk", + "type": "arrow" + } + ], + "updated": 1723790540639, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1708, + "versionNonce": 651176222, + "index": "b2H", + "isDeleted": false, + "id": "NF9eosH2wx4gCO_pN5UHU", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 101.44992925870582, + "y": -265.2030647098306, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 183.71987915039062, + "height": 25, + "seed": 1615117442, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723790540639, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Nvidia_tensorrt-llm", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "aY6uwi_eAgdAEEgC_5aK6", + "originalText": "Nvidia_tensorrt-llm", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1740, + "versionNonce": 252101762, + "index": "b2I", + "isDeleted": false, + "id": "VakeDQdXXWMfy3HCR0yfr", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -247.61481942013472, + "y": -71.60422282579833, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 225.7842294336452, + "height": 83.72659907615812, + "seed": 1226275650, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "Qfe5YWOsbXJmVByTtSXqu", + "type": "text" + }, + { + "id": "VaODIFu3UfbZRvnItRfVk", + "type": "arrow" + }, + { + "id": "LEhf2Zfw7HUjqT8O0xg1_", + "type": "arrow" + }, + { + "id": "4_vGQ87flHdrX9uilm9tO", + "type": "arrow" + } + ], + "updated": 1723790540943, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1784, + "versionNonce": 561911262, + "index": "b2J", + "isDeleted": false, + "id": "Qfe5YWOsbXJmVByTtSXqu", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -230.44263725946445, + "y": -42.24092328771927, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 191.4398651123047, + "height": 25, + "seed": 483050242, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790540639, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Tensorrt-llm_engine", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "VakeDQdXXWMfy3HCR0yfr", + "originalText": "Tensorrt-llm_engine", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "VaODIFu3UfbZRvnItRfVk", + "type": "arrow", + "x": 75.41775411707852, + "y": -252.80306470983058, + "width": 92.24834410356794, + "height": 211.78730784403515, + "angle": 0, + "strokeColor": "#868e96", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2K", + "roundness": null, + "seed": 1409030366, + "version": 94, + "versionNonce": 694645634, + "isDeleted": false, + "boundElements": null, + "updated": 1723790540943, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -36.124172051784015, + 0 + ], + [ + -36.124172051784015, + 211.78730784403515 + ], + [ + -92.24834410356794, + 211.78730784403515 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "aY6uwi_eAgdAEEgC_5aK6", + "focus": 0.002388727145337262, + "gap": 5, + "fixedPoint": [ + -0.02214503649144143, + 0.4988056364273312 + ] + }, + "endBinding": { + "elementId": "VakeDQdXXWMfy3HCR0yfr", + "focus": -0.26932501027112093, + "gap": 5.000000000000071, + "fixedPoint": [ + 1.0221450364914415, + 0.36533749486443956 + ] + }, + "startArrowhead": null, + "endArrowhead": "triangle", + "elbowed": true + }, + { + "type": "arrow", + "version": 1851, + "versionNonce": 1688075010, + "index": "b2L", + "isDeleted": false, + "id": "LEhf2Zfw7HUjqT8O0xg1_", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -113.07320286891974, + "y": -202.5390685006935, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 0, + "height": 126.48125630154587, + "seed": 713478430, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790540943, + "link": null, + "locked": false, + "startBinding": { + "elementId": "Aw2ZlTU6l5BMCcmY4FiJv", + "focus": -0.002567980092606306, + "gap": 7.327306245131595, + "fixedPoint": null + }, + "endBinding": { + "elementId": "VakeDQdXXWMfy3HCR0yfr", + "focus": 0.19177160325765666, + "gap": 4.453589373349303, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": "triangle", + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 126.48125630154587 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 1315, + "versionNonce": 2963166, + "index": "b2M", + "isDeleted": false, + "id": "jemDA5DKEVKFnGJmGO7ni", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -725.2759078824425, + "y": -206.37680062197109, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 135, + "height": 68, + "seed": 732242178, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "yJmXxUNJl51sSdU23ijpa", + "type": "text" + }, + { + "id": "lx6DHzG1QbcwSrIBXcqNy", + "type": "arrow" + } + ], + "updated": 1723790540640, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1300, + "versionNonce": 559852318, + "index": "b2N", + "isDeleted": false, + "id": "yJmXxUNJl51sSdU23ijpa", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -707.5958770596886, + "y": -184.87680062197109, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 99.63993835449219, + "height": 25, + "seed": 840806594, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790540640, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Cortex-JS", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "jemDA5DKEVKFnGJmGO7ni", + "originalText": "Cortex-JS", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 1873, + "versionNonce": 369427010, + "index": "b2O", + "isDeleted": false, + "id": "_H9H7lLoCmxfxP-IUlGPC", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -359.8914146519804, + "y": -171.17731917064899, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 78.45591624474321, + "height": 0, + "seed": 1282852638, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723790540943, + "link": null, + "locked": false, + "startBinding": { + "elementId": "Og32EQcHDFKCFOQbiMPpv", + "focus": 0.035278866215355885, + "gap": 4.146621010652552, + "fixedPoint": null + }, + "endBinding": { + "elementId": "AzlliO_THd-9-yLKxkTfC", + "focus": 0.03060893114681588, + "gap": 4.894397800702677, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": "triangle", + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 78.45591624474321, + 0 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 2052, + "versionNonce": 146201026, + "index": "b2P", + "isDeleted": false, + "id": "lx6DHzG1QbcwSrIBXcqNy", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -587.2352628611795, + "y": -171.17731917064899, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 82.91363875864909, + "height": 2.842170943040401e-14, + "seed": 681453662, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723790540943, + "link": null, + "locked": false, + "startBinding": { + "elementId": "jemDA5DKEVKFnGJmGO7ni", + "focus": 0.03527886621535657, + "gap": 3.0406450212630034, + "fixedPoint": null + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": "triangle", + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 82.91363875864909, + -2.842170943040401e-14 + ] + ], + "elbowed": false + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/docs/static/diagrams/benchmarking.excalidraw b/docs/static/diagrams/benchmarking.excalidraw new file mode 100644 index 000000000..c379dac33 --- /dev/null +++ b/docs/static/diagrams/benchmarking.excalidraw @@ -0,0 +1,1277 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "Xgw31mj045JzSvbPzNxcv", + "type": "rectangle", + "x": 789.6438600540419, + "y": 170.72251083414614, + "width": 569.7050111844687, + "height": 520.3799019910081, + "angle": 0, + "strokeColor": "#ced4da", + "backgroundColor": "#f8f9fa", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "Zx", + "roundness": { + "type": 3 + }, + "seed": 612313118, + "version": 200, + "versionNonce": 1419572510, + "isDeleted": false, + "boundElements": [], + "updated": 1723780082988, + "link": null, + "locked": false + }, + { + "id": "zl3DmKvV4WGhejgBiLI1w", + "type": "rectangle", + "x": 507, + "y": 382.5, + "width": 161, + "height": 68, + "angle": 0, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0V", + "roundness": { + "type": 3 + }, + "seed": 1454906526, + "version": 210, + "versionNonce": 525700382, + "isDeleted": false, + "boundElements": [ + { + "id": "XaxeFuoi4m7E5aV43wUPq", + "type": "text" + }, + { + "id": "VbrBtDRvEW2hBpksHfRsY", + "type": "arrow" + }, + { + "id": "FC8G8sAnR6GbfS-zP99Qu", + "type": "arrow" + } + ], + "updated": 1723779651974, + "link": null, + "locked": false + }, + { + "id": "XaxeFuoi4m7E5aV43wUPq", + "type": "text", + "x": 546.5400238037109, + "y": 404, + "width": 81.91995239257812, + "height": 25, + "angle": 0, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0X", + "roundness": null, + "seed": 956750046, + "version": 167, + "versionNonce": 307794818, + "isDeleted": false, + "boundElements": null, + "updated": 1723779440595, + "link": null, + "locked": false, + "text": "Desktop", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "zl3DmKvV4WGhejgBiLI1w", + "originalText": "Desktop", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "RrBf499NO_zr3V_3ejb1f", + "type": "rectangle", + "x": 507, + "y": 252, + "width": 161, + "height": 68, + "angle": 0, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0Z", + "roundness": { + "type": 3 + }, + "seed": 1144904386, + "version": 236, + "versionNonce": 2122979870, + "isDeleted": false, + "boundElements": [ + { + "id": "aNz48iiaEaR5kaCETmdMi", + "type": "text" + }, + { + "id": "Pmv--bT7Rk8Qe7WAOOpKn", + "type": "arrow" + }, + { + "id": "9n2Pv4LB3XN13sCcQT7uX", + "type": "arrow" + } + ], + "updated": 1723779685488, + "link": null, + "locked": false + }, + { + "id": "aNz48iiaEaR5kaCETmdMi", + "type": "text", + "x": 528.5400466918945, + "y": 273.5, + "width": 117.91990661621094, + "height": 25, + "angle": 0, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0a", + "roundness": null, + "seed": 855192194, + "version": 212, + "versionNonce": 329050718, + "isDeleted": false, + "boundElements": null, + "updated": 1723779585415, + "link": null, + "locked": false, + "text": "Workstation", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "RrBf499NO_zr3V_3ejb1f", + "originalText": "Workstation", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "L-ifncPmPKOKoJ-8xWmOf", + "type": "rectangle", + "x": 507, + "y": 513, + "width": 161, + "height": 68, + "angle": 0, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0b", + "roundness": { + "type": 3 + }, + "seed": 2135247042, + "version": 290, + "versionNonce": 1497672350, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "F6ZCk1b7g_rGAUHuChLH2" + }, + { + "id": "-usoXtg2uN5NMPCmtNw2r", + "type": "arrow" + }, + { + "id": "9n2Pv4LB3XN13sCcQT7uX", + "type": "arrow" + } + ], + "updated": 1723779685488, + "link": null, + "locked": false + }, + { + "id": "F6ZCk1b7g_rGAUHuChLH2", + "type": "text", + "x": 556.1700210571289, + "y": 534.5, + "width": 62.65995788574219, + "height": 25, + "angle": 0, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0c", + "roundness": null, + "seed": 263398494, + "version": 247, + "versionNonce": 736639170, + "isDeleted": false, + "boundElements": null, + "updated": 1723779587193, + "link": null, + "locked": false, + "text": "Server", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "L-ifncPmPKOKoJ-8xWmOf", + "originalText": "Server", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "I_Od4_VKgNWaoY4h3JJES", + "type": "rectangle", + "x": 294.12881005640327, + "y": 382.5, + "width": 135, + "height": 68, + "angle": 0, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0d", + "roundness": { + "type": 3 + }, + "seed": 382778562, + "version": 235, + "versionNonce": 357400670, + "isDeleted": false, + "boundElements": [ + { + "id": "L2I3zwdDJ0_buJb30EFXL", + "type": "text" + }, + { + "id": "zgn1uzVN_qQAmiMw_Bqd_", + "type": "arrow" + }, + { + "id": "VbrBtDRvEW2hBpksHfRsY", + "type": "arrow" + } + ], + "updated": 1723779700100, + "link": null, + "locked": false + }, + { + "id": "L2I3zwdDJ0_buJb30EFXL", + "type": "text", + "x": 339.02882684107124, + "y": 404, + "width": 45.19996643066406, + "height": 25, + "angle": 0, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0e", + "roundness": null, + "seed": 887084162, + "version": 205, + "versionNonce": 247055518, + "isDeleted": false, + "boundElements": null, + "updated": 1723779700100, + "link": null, + "locked": false, + "text": "User", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "I_Od4_VKgNWaoY4h3JJES", + "originalText": "User", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "nsngbeMJBOBgA1KxJ2DPw", + "type": "rectangle", + "x": 846.5, + "y": 252, + "width": 161, + "height": 113.00000000000003, + "angle": 0, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0fV", + "roundness": { + "type": 3 + }, + "seed": 1701972034, + "version": 456, + "versionNonce": 286032158, + "isDeleted": false, + "boundElements": [ + { + "id": "iCXr3a552uNR3rs7MyoJu", + "type": "text" + }, + { + "id": "EFRqp_cwGttEDcSWap9Ze", + "type": "arrow" + }, + { + "id": "SuZXInrJZw7R-hynLgeQx", + "type": "arrow" + }, + { + "id": "-usoXtg2uN5NMPCmtNw2r", + "type": "arrow" + }, + { + "id": "Pmv--bT7Rk8Qe7WAOOpKn", + "type": "arrow" + }, + { + "id": "4zkILxVnpmhsQaFHR_JZ2", + "type": "arrow" + } + ], + "updated": 1723779638507, + "link": null, + "locked": false + }, + { + "id": "iCXr3a552uNR3rs7MyoJu", + "type": "text", + "x": 881.4300384521484, + "y": 283.5, + "width": 91.13992309570312, + "height": 50, + "angle": 0, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0gV", + "roundness": null, + "seed": 1212919810, + "version": 444, + "versionNonce": 2080403486, + "isDeleted": false, + "boundElements": null, + "updated": 1723779631107, + "link": null, + "locked": false, + "text": "Supabase\nBackend", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "nsngbeMJBOBgA1KxJ2DPw", + "originalText": "Supabase\nBackend", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "KHKCe-Qi85nc7n-eucLeO", + "type": "rectangle", + "x": 1093, + "y": 251, + "width": 161, + "height": 68, + "angle": 0, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0h", + "roundness": { + "type": 3 + }, + "seed": 1863095618, + "version": 406, + "versionNonce": 522421314, + "isDeleted": false, + "boundElements": [ + { + "id": "_g5FEHR1r5pz503AXodO1", + "type": "text" + }, + { + "id": "EFRqp_cwGttEDcSWap9Ze", + "type": "arrow" + } + ], + "updated": 1723779519786, + "link": null, + "locked": false + }, + { + "id": "_g5FEHR1r5pz503AXodO1", + "type": "text", + "x": 1129.0200271606445, + "y": 272.5, + "width": 88.95994567871094, + "height": 25, + "angle": 0, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0i", + "roundness": null, + "seed": 957127938, + "version": 392, + "versionNonce": 21163586, + "isDeleted": false, + "boundElements": null, + "updated": 1723779493650, + "link": null, + "locked": false, + "text": "Postgres", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "KHKCe-Qi85nc7n-eucLeO", + "originalText": "Postgres", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "MjC7YTIL30gjDIlLPpg4w", + "type": "rectangle", + "x": 846.5, + "y": 440.5, + "width": 161, + "height": 68, + "angle": 0, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0j", + "roundness": { + "type": 3 + }, + "seed": 1792554078, + "version": 292, + "versionNonce": 1175828894, + "isDeleted": false, + "boundElements": [ + { + "id": "bDMNAfR2pkdBe82sKhZ_L", + "type": "text" + }, + { + "id": "SuZXInrJZw7R-hynLgeQx", + "type": "arrow" + } + ], + "updated": 1723779729204, + "link": null, + "locked": false + }, + { + "id": "bDMNAfR2pkdBe82sKhZ_L", + "type": "text", + "x": 914.2800064086914, + "y": 462, + "width": 25.439987182617188, + "height": 25, + "angle": 0, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0k", + "roundness": null, + "seed": 1221458078, + "version": 251, + "versionNonce": 517095362, + "isDeleted": false, + "boundElements": null, + "updated": 1723779729204, + "link": null, + "locked": false, + "text": "S3", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "MjC7YTIL30gjDIlLPpg4w", + "originalText": "S3", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "mBs4RnKS-FUcqH16bvBao", + "type": "rectangle", + "x": 730.6288100564032, + "y": 622.3711899435967, + "width": 107, + "height": 68, + "angle": 0, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0l", + "roundness": { + "type": 3 + }, + "seed": 804671518, + "version": 455, + "versionNonce": 567939778, + "isDeleted": false, + "boundElements": [ + { + "id": "2l1_xOEbOnbK1KIguaD0l", + "type": "text" + }, + { + "id": "zgn1uzVN_qQAmiMw_Bqd_", + "type": "arrow" + } + ], + "updated": 1723779716415, + "link": null, + "locked": false + }, + { + "id": "2l1_xOEbOnbK1KIguaD0l", + "type": "text", + "x": 765.6488295876532, + "y": 643.8711899435967, + "width": 36.9599609375, + "height": 25, + "angle": 0, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0m", + "roundness": null, + "seed": 1127390302, + "version": 392, + "versionNonce": 5139074, + "isDeleted": false, + "boundElements": null, + "updated": 1723779716415, + "link": null, + "locked": false, + "text": "Web", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "mBs4RnKS-FUcqH16bvBao", + "originalText": "Web", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "EFRqp_cwGttEDcSWap9Ze", + "type": "arrow", + "x": 1011.5, + "y": 287.53442485306465, + "width": 75.5, + "height": 0.5344248530646496, + "angle": 0, + "strokeColor": "#868e96", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0n", + "roundness": null, + "seed": 1678503042, + "version": 127, + "versionNonce": 378841282, + "isDeleted": false, + "boundElements": null, + "updated": 1723779631107, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 75.5, + -0.5344248530646496 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "nsngbeMJBOBgA1KxJ2DPw", + "focus": -0.3568864420719145, + "gap": 4, + "fixedPoint": null + }, + "endBinding": { + "elementId": "KHKCe-Qi85nc7n-eucLeO", + "focus": -0.04014229853111693, + "gap": 6, + "fixedPoint": null + }, + "startArrowhead": null, + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "SuZXInrJZw7R-hynLgeQx", + "type": "arrow", + "x": 925, + "y": 366, + "width": 1.6556467636894467, + "height": 74.2331277298365, + "angle": 0, + "strokeColor": "#868e96", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0o", + "roundness": null, + "seed": 943888990, + "version": 160, + "versionNonce": 507778398, + "isDeleted": false, + "boundElements": null, + "updated": 1723779729204, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.6556467636894467, + 74.2331277298365 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "nsngbeMJBOBgA1KxJ2DPw", + "focus": 0.024844720496894408, + "gap": 1, + "fixedPoint": null + }, + "endBinding": { + "elementId": "MjC7YTIL30gjDIlLPpg4w", + "focus": -0.024844720496894408, + "gap": 1.5, + "fixedPoint": null + }, + "startArrowhead": null, + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "zgn1uzVN_qQAmiMw_Bqd_", + "type": "arrow", + "x": 361.52881005640324, + "y": 455.5, + "width": 364.0999999999999, + "height": 200.7711899435967, + "angle": 0, + "strokeColor": "#868e96", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0p", + "roundness": null, + "seed": 667723934, + "version": 176, + "versionNonce": 98683458, + "isDeleted": false, + "boundElements": null, + "updated": 1723779716415, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 200.7711899435967 + ], + [ + 364.0999999999999, + 200.7711899435967 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "I_Od4_VKgNWaoY4h3JJES", + "focus": 0.0014814814814818184, + "gap": 5, + "fixedPoint": [ + 0.49925925925925907, + 1.0735294117647058 + ] + }, + "endBinding": { + "elementId": "mBs4RnKS-FUcqH16bvBao", + "focus": 0.0029411764705889044, + "gap": 5, + "fixedPoint": [ + -0.04672897196261682, + 0.49852941176470555 + ] + }, + "startArrowhead": null, + "endArrowhead": "triangle", + "elbowed": true + }, + { + "id": "VbrBtDRvEW2hBpksHfRsY", + "type": "arrow", + "x": 432.12881005640327, + "y": 414, + "width": 70.87118994359673, + "height": 0, + "angle": 0, + "strokeColor": "#868e96", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0q", + "roundness": null, + "seed": 676736542, + "version": 89, + "versionNonce": 611038494, + "isDeleted": false, + "boundElements": null, + "updated": 1723779700100, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 70.87118994359673, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "I_Od4_VKgNWaoY4h3JJES", + "focus": -0.07352941176470591, + "gap": 3, + "fixedPoint": null + }, + "endBinding": { + "elementId": "zl3DmKvV4WGhejgBiLI1w", + "focus": 0.07352941176470588, + "gap": 4, + "fixedPoint": null + }, + "startArrowhead": null, + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "-usoXtg2uN5NMPCmtNw2r", + "type": "arrow", + "x": 673, + "y": 546.9, + "width": 168.5, + "height": 203.89999999999998, + "angle": 0, + "strokeColor": "#868e96", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0t", + "roundness": null, + "seed": 930462174, + "version": 40, + "versionNonce": 1903091778, + "isDeleted": false, + "boundElements": null, + "updated": 1723779631108, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 74.25, + 0 + ], + [ + 74.25, + -203.89999999999998 + ], + [ + 168.5, + -203.89999999999998 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "L-ifncPmPKOKoJ-8xWmOf", + "focus": -0.002941176470588904, + "gap": 5, + "fixedPoint": [ + 1.031055900621118, + 0.49852941176470555 + ] + }, + "endBinding": { + "elementId": "nsngbeMJBOBgA1KxJ2DPw", + "focus": -0.6106194690265485, + "gap": 5, + "fixedPoint": [ + -0.031055900621118012, + 0.8053097345132741 + ] + }, + "startArrowhead": null, + "endArrowhead": "triangle", + "elbowed": true + }, + { + "id": "Pmv--bT7Rk8Qe7WAOOpKn", + "type": "arrow", + "x": 671, + "y": 277, + "width": 170, + "height": 0, + "angle": 0, + "strokeColor": "#868e96", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0u", + "roundness": null, + "seed": 1686788126, + "version": 43, + "versionNonce": 1861060610, + "isDeleted": false, + "boundElements": null, + "updated": 1723779631108, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 170, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "RrBf499NO_zr3V_3ejb1f", + "focus": -0.2647058823529412, + "gap": 3, + "fixedPoint": null + }, + "endBinding": { + "elementId": "nsngbeMJBOBgA1KxJ2DPw", + "focus": 0.5575221238938052, + "gap": 5.5, + "fixedPoint": null + }, + "startArrowhead": null, + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "4zkILxVnpmhsQaFHR_JZ2", + "type": "arrow", + "x": 720, + "y": 309, + "width": 120, + "height": 0, + "angle": 0, + "strokeColor": "#868e96", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0w", + "roundness": null, + "seed": 1138793822, + "version": 64, + "versionNonce": 375246046, + "isDeleted": false, + "boundElements": null, + "updated": 1723779638507, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 120, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": { + "elementId": "nsngbeMJBOBgA1KxJ2DPw", + "focus": -0.008849557522123892, + "gap": 6.5, + "fixedPoint": null + }, + "startArrowhead": null, + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "FC8G8sAnR6GbfS-zP99Qu", + "type": "arrow", + "x": 673, + "y": 416.4, + "width": 46.98572975859838, + "height": 106.39999999999998, + "angle": 0, + "strokeColor": "#868e96", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0x", + "roundness": null, + "seed": 1033458078, + "version": 56, + "versionNonce": 152996034, + "isDeleted": false, + "boundElements": null, + "updated": 1723779665327, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 46.98572975859838, + 0 + ], + [ + 46.98572975859838, + -106.39999999999998 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "zl3DmKvV4WGhejgBiLI1w", + "focus": -0.0029411764705889044, + "gap": 5, + "fixedPoint": [ + 1.031055900621118, + 0.49852941176470555 + ] + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "elbowed": true + }, + { + "id": "9n2Pv4LB3XN13sCcQT7uX", + "type": "arrow", + "x": 502, + "y": 285.9, + "width": 35, + "height": 261, + "angle": 0, + "strokeColor": "#868e96", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0y", + "roundness": null, + "seed": 396206238, + "version": 44, + "versionNonce": 475581378, + "isDeleted": false, + "boundElements": [], + "updated": 1723779694582, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -35, + 0 + ], + [ + -35, + 261 + ], + [ + 0, + 261 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "RrBf499NO_zr3V_3ejb1f", + "focus": 0.002941176470588904, + "gap": 5, + "fixedPoint": [ + -0.031055900621118012, + 0.49852941176470555 + ] + }, + "endBinding": { + "elementId": "L-ifncPmPKOKoJ-8xWmOf", + "focus": 0.002941176470588904, + "gap": 5, + "fixedPoint": [ + -0.031055900621118012, + 0.49852941176470555 + ] + }, + "startArrowhead": "triangle", + "endArrowhead": "triangle", + "elbowed": true + }, + { + "id": "PbgwVbSBSzUMOE2-1uA1V", + "type": "rectangle", + "x": 788.052442437627, + "y": 171.27272985205602, + "width": 124.11412154334516, + "height": 42.746467408772624, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "#ced4da", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b16", + "roundness": { + "type": 3 + }, + "seed": 19444510, + "version": 304, + "versionNonce": 369982366, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "uwkduaCPSI34zdgL71Cu5" + } + ], + "updated": 1723780195576, + "link": null, + "locked": false + }, + { + "id": "uwkduaCPSI34zdgL71Cu5", + "type": "text", + "x": 804.1295303699441, + "y": 180.14596355644233, + "width": 91.95994567871094, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b17", + "roundness": null, + "seed": 382691486, + "version": 171, + "versionNonce": 1146640350, + "isDeleted": false, + "boundElements": null, + "updated": 1723780195576, + "link": null, + "locked": false, + "text": "Jan cloud", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "PbgwVbSBSzUMOE2-1uA1V", + "originalText": "Jan cloud", + "autoResize": true, + "lineHeight": 1.25 + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/docs/static/diagrams/llamacpp1.excalidraw b/docs/static/diagrams/llamacpp1.excalidraw new file mode 100644 index 000000000..9db9a75ec --- /dev/null +++ b/docs/static/diagrams/llamacpp1.excalidraw @@ -0,0 +1,886 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 2074, + "versionNonce": 100074178, + "index": "b0Z", + "isDeleted": false, + "id": "15aEgI5gEseBuqvZT3RYq", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 27.135593636485737, + "y": -375.7216918508061, + "strokeColor": "#ced4da", + "backgroundColor": "#f8f9fa", + "width": 221.99050609981487, + "height": 425.018271651204, + "seed": 1684839618, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "81V7OQs6AhX6Y4QY0cbKw", + "type": "arrow" + } + ], + "updated": 1723790061055, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 1974, + "versionNonce": 1535294018, + "index": "b0a", + "isDeleted": false, + "id": "AzlliO_THd-9-yLKxkTfC", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 334.4504671115319, + "y": -375.7216918508061, + "strokeColor": "#ced4da", + "backgroundColor": "#f8f9fa", + "width": 634.4905060998149, + "height": 425.018271651204, + "seed": 2144983362, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "81V7OQs6AhX6Y4QY0cbKw", + "type": "arrow" + } + ], + "updated": 1723790061055, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 1082, + "versionNonce": 1568023042, + "index": "b0cG", + "isDeleted": false, + "id": "jemDA5DKEVKFnGJmGO7ni", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 70.63084668639317, + "y": -205.28464925852933, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 135, + "height": 68, + "seed": 732242178, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "yJmXxUNJl51sSdU23ijpa", + "type": "text" + } + ], + "updated": 1723790061055, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1067, + "versionNonce": 1680249282, + "index": "b0e", + "isDeleted": false, + "id": "yJmXxUNJl51sSdU23ijpa", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 85.96087903502598, + "y": -183.78464925852933, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 104.33993530273438, + "height": 25, + "seed": 840806594, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790061055, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Cortex.cpp", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "jemDA5DKEVKFnGJmGO7ni", + "originalText": "Cortex.cpp", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1111, + "versionNonce": 2123353502, + "index": "b1Q8", + "isDeleted": false, + "id": "7JjoPn2r6z19MHfiPCycO", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 747.1904812794169, + "y": -286.2974502637795, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 649902914, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "206KBtr0MwBLqkj04q0vD", + "type": "text" + }, + { + "id": "5PfTTRLUnHygabygbyOyj", + "type": "arrow" + }, + { + "id": "4O8gsja4iCRgWlgb9Gfmp", + "type": "arrow" + } + ], + "updated": 1723790061173, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1121, + "versionNonce": 274368834, + "index": "b1QG", + "isDeleted": false, + "id": "206KBtr0MwBLqkj04q0vD", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 774.8280560643343, + "y": -269.4341507257004, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 127.67990112304688, + "height": 50, + "seed": 331875074, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790061055, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "LLama Server\nContext", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "7JjoPn2r6z19MHfiPCycO", + "originalText": "LLama Server\nContext", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 1205, + "versionNonce": 770837662, + "index": "b1RZ", + "isDeleted": false, + "id": "5PfTTRLUnHygabygbyOyj", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 833.8944032551763, + "y": -76.07830005218017, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 0, + "height": 116.98389035520404, + "seed": 395596482, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "iPZIlzMPXNFlbqj0_GSNI", + "type": "text" + } + ], + "updated": 1723790061173, + "link": null, + "locked": false, + "startBinding": { + "elementId": "h8JWAOGZnFRfKKFbN7IXw", + "focus": -0.052183346156369374, + "gap": 6.476591963189264, + "fixedPoint": null + }, + "endBinding": { + "elementId": "7JjoPn2r6z19MHfiPCycO", + "focus": 0.052183346156369374, + "gap": 9.508660780237207, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 0, + -116.98389035520404 + ] + ], + "elbowed": false + }, + { + "type": "text", + "version": 79, + "versionNonce": 194301150, + "index": "b1Rt", + "isDeleted": false, + "id": "iPZIlzMPXNFlbqj0_GSNI", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1364.1824205281255, + "y": 399.4297547702178, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 91.42396545410156, + "height": 20, + "seed": 1153477250, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790054497, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Dependency", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "5PfTTRLUnHygabygbyOyj", + "originalText": "Dependency", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1129, + "versionNonce": 105461890, + "index": "b1j", + "isDeleted": false, + "id": "h8JWAOGZnFRfKKFbN7IXw", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 747.1904812794169, + "y": -69.6017080889909, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 1691793054, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "j8SCNxso-IEXhmMRY-oOd", + "type": "text" + }, + { + "id": "5PfTTRLUnHygabygbyOyj", + "type": "arrow" + }, + { + "id": "LEhf2Zfw7HUjqT8O0xg1_", + "type": "arrow" + } + ], + "updated": 1723790061055, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1158, + "versionNonce": 287905986, + "index": "b1k", + "isDeleted": false, + "id": "j8SCNxso-IEXhmMRY-oOd", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 807.5880276829865, + "y": -52.73840855091184, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 62.15995788574219, + "height": 50, + "seed": 2084713182, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790065609, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "LLama\nEngine", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "h8JWAOGZnFRfKKFbN7IXw", + "originalText": "LLama\nEngine", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 1174, + "versionNonce": 1097902430, + "index": "b1w", + "isDeleted": false, + "id": "4O8gsja4iCRgWlgb9Gfmp", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 559.3802439709634, + "y": -245.87274668155578, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 184, + "height": 0, + "seed": 1174753538, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "ORYiH4ASUK-WVWHcB5Yw4", + "type": "text" + } + ], + "updated": 1723790061173, + "link": null, + "locked": false, + "startBinding": { + "elementId": "VakeDQdXXWMfy3HCR0yfr", + "focus": -0.01047686065586771, + "gap": 6.234711998665034, + "fixedPoint": null + }, + "endBinding": { + "elementId": "7JjoPn2r6z19MHfiPCycO", + "focus": 0.03436413210924169, + "gap": 3.810237308453452, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": "triangle", + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 184, + 0 + ] + ], + "elbowed": false + }, + { + "type": "text", + "version": 68, + "versionNonce": 936488286, + "index": "b1x", + "isDeleted": false, + "id": "ORYiH4ASUK-WVWHcB5Yw4", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1190.7575457103949, + "y": 289.1272533184442, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 91.42396545410156, + "height": 20, + "seed": 1895293122, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790054497, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Dependency", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "4O8gsja4iCRgWlgb9Gfmp", + "originalText": "Dependency", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 1829, + "versionNonce": 2064875038, + "index": "b1y", + "isDeleted": false, + "id": "81V7OQs6AhX6Y4QY0cbKw", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 252.8802439709633, + "y": -28.079412461570882, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 132.1785689329646, + "height": 0, + "seed": 1082629982, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790061173, + "link": null, + "locked": false, + "startBinding": { + "elementId": "15aEgI5gEseBuqvZT3RYq", + "focus": 0.6358933371906033, + "gap": 3.7541442346627036, + "fixedPoint": null + }, + "endBinding": { + "elementId": "yMc2IldSW8sPtZKKZjsdw", + "focus": 0.008145652980574587, + "gap": 3.131668375488971, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 132.1785689329646, + 0 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 741, + "versionNonce": 746155778, + "index": "b22", + "isDeleted": false, + "id": "F5f4ZS9iQ9K9Dj31JLjfQ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 334.5136593897671, + "y": -377.90788296291566, + "strokeColor": "transparent", + "backgroundColor": "#ced4da", + "width": 177.8641215433451, + "height": 60, + "seed": 668182722, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "RHP1cHjPBWKxalwSUHXgg" + } + ], + "updated": 1723790061055, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 637, + "versionNonce": 1865957058, + "index": "b23", + "isDeleted": false, + "id": "RHP1cHjPBWKxalwSUHXgg", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 348.62576624298254, + "y": -360.40788296291566, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 149.63990783691406, + "height": 25, + "seed": 2124759170, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790061055, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Cortex.llamacpp", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "F5f4ZS9iQ9K9Dj31JLjfQ", + "originalText": "Cortex.llamacpp", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1319, + "versionNonce": 2016541982, + "index": "b25", + "isDeleted": false, + "id": "VakeDQdXXWMfy3HCR0yfr", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 370.1904812794169, + "y": -287.2974502637795, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 1226275650, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "Qfe5YWOsbXJmVByTtSXqu", + "type": "text" + }, + { + "id": "4O8gsja4iCRgWlgb9Gfmp", + "type": "arrow" + } + ], + "updated": 1723790061173, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1342, + "versionNonce": 447018562, + "index": "b26", + "isDeleted": false, + "id": "Qfe5YWOsbXJmVByTtSXqu", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 414.00804874011544, + "y": -257.9341507257005, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 95.31991577148438, + "height": 25, + "seed": 483050242, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790061055, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "LLama.cpp", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "VakeDQdXXWMfy3HCR0yfr", + "originalText": "LLama.cpp", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1318, + "versionNonce": 1961942530, + "index": "b29", + "isDeleted": false, + "id": "yMc2IldSW8sPtZKKZjsdw", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 388.1904812794169, + "y": -69.6017080889909, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 1944375710, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "1vV-R8riWK3RYETly_zT_", + "type": "text" + }, + { + "id": "LEhf2Zfw7HUjqT8O0xg1_", + "type": "arrow" + }, + { + "id": "81V7OQs6AhX6Y4QY0cbKw", + "type": "arrow" + } + ], + "updated": 1723790061055, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1349, + "versionNonce": 887737794, + "index": "b2A", + "isDeleted": false, + "id": "1vV-R8riWK3RYETly_zT_", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 446.21803256579904, + "y": -40.238408550911856, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 66.89994812011719, + "height": 25, + "seed": 1187061570, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790061055, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Enginei", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "yMc2IldSW8sPtZKKZjsdw", + "originalText": "Enginei", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 1345, + "versionNonce": 1170542238, + "index": "b2B", + "isDeleted": false, + "id": "LEhf2Zfw7HUjqT8O0xg1_", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 572.3802439709634, + "y": -25.872746681555782, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 172, + "height": 0, + "seed": 713478430, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "Ioh_8UJOGuzFDhZUHlwX6", + "type": "text" + } + ], + "updated": 1723790061173, + "link": null, + "locked": false, + "startBinding": { + "elementId": "yMc2IldSW8sPtZKKZjsdw", + "focus": 0.04456557151351734, + "gap": 1.2347119986650341, + "fixedPoint": null + }, + "endBinding": { + "elementId": "h8JWAOGZnFRfKKFbN7IXw", + "focus": -0.04456557151351735, + "gap": 2.810237308453452, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": "triangle", + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 172, + 0 + ] + ], + "elbowed": false + }, + { + "type": "text", + "version": 78, + "versionNonce": 1282150018, + "index": "b2C", + "isDeleted": false, + "id": "Ioh_8UJOGuzFDhZUHlwX6", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1189.8002726574869, + "y": 508.1272533184442, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 89.15994262695312, + "height": 20, + "seed": 2047540574, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723790054497, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Inheritance", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "LEhf2Zfw7HUjqT8O0xg1_", + "originalText": "Inheritance", + "autoResize": true, + "lineHeight": 1.25 + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/docs/static/diagrams/llamacpp2.excalidraw b/docs/static/diagrams/llamacpp2.excalidraw new file mode 100644 index 000000000..caf93da9d --- /dev/null +++ b/docs/static/diagrams/llamacpp2.excalidraw @@ -0,0 +1,1009 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 2012, + "versionNonce": 2128902302, + "index": "b0Z", + "isDeleted": false, + "id": "15aEgI5gEseBuqvZT3RYq", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 619.7775296211296, + "y": 168.2783081491939, + "strokeColor": "#ced4da", + "backgroundColor": "#f8f9fa", + "width": 221.99050609981487, + "height": 425.018271651204, + "seed": 1684839618, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "81V7OQs6AhX6Y4QY0cbKw", + "type": "arrow" + } + ], + "updated": 1723789978814, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 1912, + "versionNonce": 206570654, + "index": "b0a", + "isDeleted": false, + "id": "AzlliO_THd-9-yLKxkTfC", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 998.8350351659496, + "y": 166.14517266131668, + "strokeColor": "#ced4da", + "backgroundColor": "#f8f9fa", + "width": 556.1059380453972, + "height": 440.95708278488695, + "seed": 2144983362, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "81V7OQs6AhX6Y4QY0cbKw", + "type": "arrow" + } + ], + "updated": 1723789965657, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 1964, + "versionNonce": 1491109122, + "index": "b0a2", + "isDeleted": false, + "id": "2k5QDihYrW1sEPAnI9k7S", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1026.6128497016978, + "y": 453.7935165031703, + "strokeColor": "#ced4da", + "backgroundColor": "#e9ecef", + "width": 498.6316949382202, + "height": 123.76827165120403, + "seed": 775844418, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "81V7OQs6AhX6Y4QY0cbKw", + "type": "arrow" + } + ], + "updated": 1723789954388, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 1020, + "versionNonce": 1752787230, + "index": "b0cG", + "isDeleted": false, + "id": "jemDA5DKEVKFnGJmGO7ni", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 663.272782671037, + "y": 337.7153507414707, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 135, + "height": 68, + "seed": 732242178, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "yJmXxUNJl51sSdU23ijpa", + "type": "text" + } + ], + "updated": 1723789978814, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1005, + "versionNonce": 233477470, + "index": "b0e", + "isDeleted": false, + "id": "yJmXxUNJl51sSdU23ijpa", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 678.6028150196698, + "y": 359.2153507414707, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 104.33993530273438, + "height": 25, + "seed": 840806594, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723789978814, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Cortex.cpp", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "jemDA5DKEVKFnGJmGO7ni", + "originalText": "Cortex.cpp", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1048, + "versionNonce": 1633831070, + "index": "b1Q8", + "isDeleted": false, + "id": "7JjoPn2r6z19MHfiPCycO", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1323.1904812794169, + "y": 257.7025497362205, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 649902914, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "206KBtr0MwBLqkj04q0vD", + "type": "text" + }, + { + "id": "5PfTTRLUnHygabygbyOyj", + "type": "arrow" + }, + { + "id": "4O8gsja4iCRgWlgb9Gfmp", + "type": "arrow" + } + ], + "updated": 1723789789931, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1060, + "versionNonce": 993222914, + "index": "b1QG", + "isDeleted": false, + "id": "206KBtr0MwBLqkj04q0vD", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1350.8280560643343, + "y": 274.5658492742996, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 127.67990112304688, + "height": 50, + "seed": 331875074, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723789526473, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "LLama Server\nContext", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "7JjoPn2r6z19MHfiPCycO", + "originalText": "LLama Server\nContext", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 945, + "versionNonce": 439493278, + "index": "b1RZ", + "isDeleted": false, + "id": "N_RQL_i8qodAkqCXVO6BS", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1461.4493902737916, + "y": 467.92169994781983, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 0, + "height": 116.98389035520404, + "seed": 1361502622, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "etNLplPGSFShzYwnIzCFs", + "type": "text" + } + ], + "updated": 1723789893213, + "link": null, + "locked": false, + "startBinding": { + "elementId": "h8JWAOGZnFRfKKFbN7IXw", + "focus": 0.5113975642734633, + "gap": 6.476591963189321, + "fixedPoint": null + }, + "endBinding": { + "elementId": "7JjoPn2r6z19MHfiPCycO", + "focus": -0.5113975642734633, + "gap": 9.508660780237221, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 0, + -116.98389035520404 + ] + ], + "elbowed": false + }, + { + "type": "text", + "version": 71, + "versionNonce": 1341759070, + "index": "b1Rt", + "isDeleted": false, + "id": "etNLplPGSFShzYwnIzCFs", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1377.9624269368169, + "y": 399.4297547702178, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 63.86395263671875, + "height": 20, + "seed": 1666514398, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723789893213, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Call API", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "N_RQL_i8qodAkqCXVO6BS", + "originalText": "Call API", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1067, + "versionNonce": 840647106, + "index": "b1j", + "isDeleted": false, + "id": "h8JWAOGZnFRfKKFbN7IXw", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1323.1904812794169, + "y": 474.3982919110091, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 1691793054, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "j8SCNxso-IEXhmMRY-oOd", + "type": "text" + }, + { + "id": "5PfTTRLUnHygabygbyOyj", + "type": "arrow" + } + ], + "updated": 1723789810529, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1092, + "versionNonce": 2104794370, + "index": "b1k", + "isDeleted": false, + "id": "j8SCNxso-IEXhmMRY-oOd", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1383.5880276829866, + "y": 491.26159144908814, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 62.15995788574219, + "height": 50, + "seed": 2084713182, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723789925053, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "LLama\nEngine", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "h8JWAOGZnFRfKKFbN7IXw", + "originalText": "LLama\nEngine", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 1110, + "versionNonce": 2025432578, + "index": "b1w", + "isDeleted": false, + "id": "4O8gsja4iCRgWlgb9Gfmp", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1236.2412389464089, + "y": 296.56177476568394, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 83.13900502455454, + "height": 0.5654785527602826, + "seed": 1174753538, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723789945000, + "link": null, + "locked": false, + "startBinding": { + "elementId": "VakeDQdXXWMfy3HCR0yfr", + "focus": -0.03436413210924169, + "gap": 6.23471199866492, + "fixedPoint": null + }, + "endBinding": { + "elementId": "7JjoPn2r6z19MHfiPCycO", + "focus": 0.058251403562615676, + "gap": 3.8102373084535657, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": "triangle", + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 83.13900502455454, + 0.5654785527602826 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 1612, + "versionNonce": 1054395778, + "index": "b1y", + "isDeleted": false, + "id": "wmKoAQPpJtMT1Wc7u9bdS", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 845.5221799556072, + "y": 551.0477876626207, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 173.1148657373567, + "height": 0, + "seed": 1937055362, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "B6EERUjcXuqh-lJN5G9qp", + "type": "text" + } + ], + "updated": 1723789983390, + "link": null, + "locked": false, + "startBinding": { + "elementId": "15aEgI5gEseBuqvZT3RYq", + "focus": 0.801190701879052, + "gap": 3.7541442346627036, + "fixedPoint": null + }, + "endBinding": { + "elementId": "2k5QDihYrW1sEPAnI9k7S", + "focus": -0.5715541610458348, + "gap": 7.9758040087340305, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 173.1148657373567, + 0 + ] + ], + "elbowed": false + }, + { + "id": "B6EERUjcXuqh-lJN5G9qp", + "type": "text", + "x": 862.9495546825628, + "y": 505.9205875384291, + "width": 64.03994750976562, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1yV", + "roundness": null, + "seed": 1242693186, + "version": 10, + "versionNonce": 582276546, + "isDeleted": false, + "boundElements": null, + "updated": 1723789983390, + "link": null, + "locked": false, + "text": "Request", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "wmKoAQPpJtMT1Wc7u9bdS", + "originalText": "Request", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 679, + "versionNonce": 2099096130, + "index": "b22", + "isDeleted": false, + "id": "F5f4ZS9iQ9K9Dj31JLjfQ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1001.1644984199389, + "y": 164.95898154920718, + "strokeColor": "transparent", + "backgroundColor": "#ced4da", + "width": 177.8641215433451, + "height": 60, + "seed": 668182722, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "RHP1cHjPBWKxalwSUHXgg" + } + ], + "updated": 1723789969045, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 575, + "versionNonce": 1848840706, + "index": "b23", + "isDeleted": false, + "id": "RHP1cHjPBWKxalwSUHXgg", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1015.2766052731545, + "y": 182.45898154920718, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 149.63990783691406, + "height": 25, + "seed": 2124759170, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723789969045, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Cortex.llamacpp", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "F5f4ZS9iQ9K9Dj31JLjfQ", + "originalText": "Cortex.llamacpp", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1256, + "versionNonce": 249683586, + "index": "b25", + "isDeleted": false, + "id": "VakeDQdXXWMfy3HCR0yfr", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1047.0514762548623, + "y": 255.49385243391202, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 1226275650, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "Qfe5YWOsbXJmVByTtSXqu", + "type": "text" + }, + { + "id": "4O8gsja4iCRgWlgb9Gfmp", + "type": "arrow" + } + ], + "updated": 1723789945000, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1280, + "versionNonce": 1508294210, + "index": "b26", + "isDeleted": false, + "id": "Qfe5YWOsbXJmVByTtSXqu", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1090.869043715561, + "y": 284.8571519719911, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 95.31991577148438, + "height": 25, + "seed": 483050242, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723789945000, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "LLama.cpp", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "VakeDQdXXWMfy3HCR0yfr", + "originalText": "LLama.cpp", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1256, + "versionNonce": 1415157186, + "index": "b29", + "isDeleted": false, + "id": "yMc2IldSW8sPtZKKZjsdw", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1047.0514762548623, + "y": 474.3982919110091, + "strokeColor": "#228be6", + "backgroundColor": "#e7f5ff", + "width": 182.95505069288154, + "height": 83.72659907615812, + "seed": 1944375710, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "1vV-R8riWK3RYETly_zT_", + "type": "text" + }, + { + "id": "81V7OQs6AhX6Y4QY0cbKw", + "type": "arrow" + } + ], + "updated": 1723789945000, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1287, + "versionNonce": 1575325058, + "index": "b2A", + "isDeleted": false, + "id": "1vV-R8riWK3RYETly_zT_", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1105.0790275412446, + "y": 503.76159144908814, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 66.89994812011719, + "height": 25, + "seed": 1187061570, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1723789945000, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 5, + "text": "Enginei", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "yMc2IldSW8sPtZKKZjsdw", + "originalText": "Enginei", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 1019, + "versionNonce": 269790722, + "index": "b2F", + "isDeleted": false, + "id": "5PfTTRLUnHygabygbyOyj", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1368.811522974717, + "y": 467.92169994781983, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 0, + "height": 116.98389035520404, + "seed": 395596482, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "iPZIlzMPXNFlbqj0_GSNI", + "type": "text" + } + ], + "updated": 1723789917883, + "link": null, + "locked": false, + "startBinding": { + "elementId": "h8JWAOGZnFRfKKFbN7IXw", + "focus": -0.5012868841551463, + "gap": 6.476591963189321, + "fixedPoint": null + }, + "endBinding": { + "elementId": "7JjoPn2r6z19MHfiPCycO", + "focus": 0.5012868841551462, + "gap": 9.508660780237221, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": "triangle", + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -116.98389035520404 + ] + ], + "elbowed": false + }, + { + "type": "text", + "version": 78, + "versionNonce": 1211053214, + "index": "b2G", + "isDeleted": false, + "id": "iPZIlzMPXNFlbqj0_GSNI", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1359.7104813203782, + "y": 399.4297547702178, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ced4da", + "width": 50.4239501953125, + "height": 20, + "seed": 1153477250, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": null, + "updated": 1723789912084, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 5, + "text": "Result", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "5PfTTRLUnHygabygbyOyj", + "originalText": "Result", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 1643, + "versionNonce": 898301726, + "index": "b2H", + "isDeleted": false, + "id": "81V7OQs6AhX6Y4QY0cbKw", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 845.5221799556072, + "y": 493.25787778088613, + "strokeColor": "#868e96", + "backgroundColor": "#ced4da", + "width": 173.1148657373567, + "height": 0, + "seed": 1082629982, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "rWtiFKEIHuFtX4F0KRMCw" + } + ], + "updated": 1723789994650, + "link": null, + "locked": false, + "startBinding": { + "elementId": "15aEgI5gEseBuqvZT3RYq", + "focus": 0.5292498761012814, + "gap": 3.7541442346627036, + "fixedPoint": null + }, + "endBinding": { + "elementId": "2k5QDihYrW1sEPAnI9k7S", + "focus": 0.3622862992070885, + "gap": 7.9758040087340305, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": "triangle", + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 173.1148657373567, + 0 + ] + ], + "elbowed": false + }, + { + "id": "rWtiFKEIHuFtX4F0KRMCw", + "type": "text", + "x": 895.4036408394222, + "y": 483.25787778088613, + "width": 73.35194396972656, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2I", + "roundness": null, + "seed": 284783582, + "version": 19, + "versionNonce": 408160990, + "isDeleted": false, + "boundElements": null, + "updated": 1723789992900, + "link": null, + "locked": false, + "text": "Response", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "81V7OQs6AhX6Y4QY0cbKw", + "originalText": "Response", + "autoResize": true, + "lineHeight": 1.25 + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/docs/static/huggingface/hub.json b/docs/static/huggingface/hub.json new file mode 100644 index 000000000..20eea4a0a --- /dev/null +++ b/docs/static/huggingface/hub.json @@ -0,0 +1,73 @@ + +{ + "quickstart_models": [ + { + "url": "https://huggingface.co/cortexso/gemma2/blob/2b-gguf/model.gguf", + "author": "Google", + "logo": "https://cdn-avatars.huggingface.co/v1/production/uploads/5dd96eb166059660ed1ee413/WtA3YYitedOr9n02eHfJe.png", + "model_name": "Gemma2 2B Instruct Q4_K_M GGUF", + "note": "Small + Smart" + }, + { + "url": "https://huggingface.co/bartowski/Mistral-7B-Instruct-v0.3-GGUF/blob/main/Mistral-7B-Instruct-v0.3-Q4_K_M.gguf", + "author": "Mistral AI", + "logo": "https://raw.githubusercontent.com/janhq/cortex-web/main/static/img/logos/mistral.svg", + "model_name": "Mistral 7B Instruct v0.3 Q4_K_M GGUF", + "note": "Small + Chat" + }, + { + "url": "https://huggingface.co/legraphista/llm-compiler-7b-ftd-IMat-GGUF/blob/main/llm-compiler-7b-ftd.Q4_K_S.gguf", + "author": "Meta", + "logo": "https://cdn-avatars.huggingface.co/v1/production/uploads/646cf8084eefb026fb8fd8bc/oCTqufkdTkjyGodsx1vo1.png", + "model_name": "LLM Compiler 7B FTD IMat Q4_K_S GGUF", + "note": "Small + Code" + }, + { + "url": "https://huggingface.co/QuantFactory/Qwen2-7B-Instruct-GGUF/blob/main/Qwen2-7B-Instruct.Q4_K_M.gguf", + "author": "Qwen", + "logo": "https://cdn-avatars.huggingface.co/v1/production/uploads/62088594a5943c8a8fc94560/y5SEKiE8TkjBKs9xfjCx5.png", + "model_name": "Qwen2 7B Instruct Q4_K_M GGUF", + "note": "Small + Chat (Chinese)" + }, + { + "url": "https://huggingface.co/QuantFactory/Phi-3-mini-4k-instruct-GGUF-v3/blob/main/Phi-3-mini-4k-instruct.Q4_K_M.gguf", + "author": "Microsoft", + "logo": "https://cdn-avatars.huggingface.co/v1/production/uploads/1583646260758-5e64858c87403103f9f1055d.png", + "model_name": "Phi 3 Mini 4k Instruct Q4 GGUF", + "note": "Tiny + Chat" + }, + { + "url": "https://huggingface.co/TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF/blob/main/tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf", + "author": "Tinyβ€ŒLlama", + "logo": "https://cdn-avatars.huggingface.co/v1/production/uploads/63565cc56d7fcf1bedb7d347/DRv8Ln7nvK22iXkLmAGb_.png", + "model_name": "TinyLlama v1.1B Chat Q4_K_M GGUF", + "note": "Super Tiny + Chat" + } + ], + "popular_models": [ + { + "note": "Large + Smart (use with hardware warning)", + "url": "https://huggingface.co/bartowski/Meta-Llama-3-70B-Instruct-GGUF" + }, + { + "note": "Super Large + Code (use with hardware warning)", + "url": "https://huggingface.co/LoneStriker/DeepSeek-Coder-V2-Lite-Instruct-GGUF" + }, + { + "note": "Small + Chat", + "url": "https://huggingface.co/bartowski/Mistral-7B-Instruct-v0.3-GGUF" + }, + { + "note": "Small + Code", + "url": "https://huggingface.co/legraphista/llm-compiler-7b-ftd-IMat-GGUF" + }, + { + "note": "Small + Chat (Chinese)", + "url": "https://huggingface.co/QuantFactory/Qwen2-7B-Instruct-GGUF" + }, + { + "note": "Tiny + Chat", + "url": "https://huggingface.co/QuantFactory/Phi-3-mini-4k-instruct-GGUF-v3" + } + ] +} diff --git a/docs/static/img/changelog/social-card.jpg b/docs/static/img/changelog/social-card.jpg new file mode 100644 index 000000000..cad56cc6f Binary files /dev/null and b/docs/static/img/changelog/social-card.jpg differ diff --git a/docs/static/img/docs/500.png b/docs/static/img/docs/500.png new file mode 100644 index 000000000..6196f83d6 Binary files /dev/null and b/docs/static/img/docs/500.png differ diff --git a/docs/static/img/docs/architecture.png b/docs/static/img/docs/architecture.png new file mode 100644 index 000000000..828772e66 Binary files /dev/null and b/docs/static/img/docs/architecture.png differ diff --git a/docs/static/img/docs/benchmark-architecture.png b/docs/static/img/docs/benchmark-architecture.png new file mode 100644 index 000000000..c03ce87d2 Binary files /dev/null and b/docs/static/img/docs/benchmark-architecture.png differ diff --git a/docs/static/img/docs/benchmark-flow.png b/docs/static/img/docs/benchmark-flow.png new file mode 100644 index 000000000..106d1455c Binary files /dev/null and b/docs/static/img/docs/benchmark-flow.png differ diff --git a/docs/static/img/docs/catch-crash.png b/docs/static/img/docs/catch-crash.png new file mode 100644 index 000000000..6166f5e11 Binary files /dev/null and b/docs/static/img/docs/catch-crash.png differ diff --git a/docs/static/img/docs/cortex-cover.png b/docs/static/img/docs/cortex-cover.png new file mode 100644 index 000000000..9ef3816f8 Binary files /dev/null and b/docs/static/img/docs/cortex-cover.png differ diff --git a/docs/static/img/docs/cortex-llamacpp-act.png b/docs/static/img/docs/cortex-llamacpp-act.png new file mode 100644 index 000000000..5cc93b2a2 Binary files /dev/null and b/docs/static/img/docs/cortex-llamacpp-act.png differ diff --git a/docs/static/img/docs/cortex-llamacpp-arch.png b/docs/static/img/docs/cortex-llamacpp-arch.png new file mode 100644 index 000000000..6118d9126 Binary files /dev/null and b/docs/static/img/docs/cortex-llamacpp-arch.png differ diff --git a/docs/static/img/docs/cortex-runtime.png b/docs/static/img/docs/cortex-runtime.png new file mode 100644 index 000000000..6fcff7f45 Binary files /dev/null and b/docs/static/img/docs/cortex-runtime.png differ diff --git a/docs/static/img/docs/gguf.png b/docs/static/img/docs/gguf.png new file mode 100644 index 000000000..ce54824d0 Binary files /dev/null and b/docs/static/img/docs/gguf.png differ diff --git a/docs/static/img/docs/llama-cpp1.png b/docs/static/img/docs/llama-cpp1.png new file mode 100644 index 000000000..7d18d5449 Binary files /dev/null and b/docs/static/img/docs/llama-cpp1.png differ diff --git a/docs/static/img/docs/llama-cpp2.png b/docs/static/img/docs/llama-cpp2.png new file mode 100644 index 000000000..af5c1df2f Binary files /dev/null and b/docs/static/img/docs/llama-cpp2.png differ diff --git a/docs/static/img/docs/no-response.png b/docs/static/img/docs/no-response.png new file mode 100644 index 000000000..2d45b6d7c Binary files /dev/null and b/docs/static/img/docs/no-response.png differ diff --git a/docs/static/img/docs/onnx-1.png b/docs/static/img/docs/onnx-1.png new file mode 100644 index 000000000..390dcebee Binary files /dev/null and b/docs/static/img/docs/onnx-1.png differ diff --git a/docs/static/img/docs/onnx-2.png b/docs/static/img/docs/onnx-2.png new file mode 100644 index 000000000..fa00d567d Binary files /dev/null and b/docs/static/img/docs/onnx-2.png differ diff --git a/docs/static/img/docs/onnx-3.png b/docs/static/img/docs/onnx-3.png new file mode 100644 index 000000000..af8fbc34e Binary files /dev/null and b/docs/static/img/docs/onnx-3.png differ diff --git a/docs/static/img/docs/onnx-4.png b/docs/static/img/docs/onnx-4.png new file mode 100644 index 000000000..3ea77adc4 Binary files /dev/null and b/docs/static/img/docs/onnx-4.png differ diff --git a/docs/static/img/docs/onnx.png b/docs/static/img/docs/onnx.png new file mode 100644 index 000000000..0b3dda8e2 Binary files /dev/null and b/docs/static/img/docs/onnx.png differ diff --git a/docs/static/img/docs/repo.png b/docs/static/img/docs/repo.png new file mode 100644 index 000000000..4a188aec5 Binary files /dev/null and b/docs/static/img/docs/repo.png differ diff --git a/docs/static/img/docs/telemetry-architecture.png b/docs/static/img/docs/telemetry-architecture.png new file mode 100644 index 000000000..d3416fcb5 Binary files /dev/null and b/docs/static/img/docs/telemetry-architecture.png differ diff --git a/docs/static/img/docs/telemetry1.png b/docs/static/img/docs/telemetry1.png new file mode 100644 index 000000000..b8ea628c8 Binary files /dev/null and b/docs/static/img/docs/telemetry1.png differ diff --git a/docs/static/img/docs/telemetry2.png b/docs/static/img/docs/telemetry2.png new file mode 100644 index 000000000..0968d064f Binary files /dev/null and b/docs/static/img/docs/telemetry2.png differ diff --git a/docs/static/img/docs/trt-2.png b/docs/static/img/docs/trt-2.png new file mode 100644 index 000000000..026d60328 Binary files /dev/null and b/docs/static/img/docs/trt-2.png differ diff --git a/docs/static/img/docs/trt-3.png b/docs/static/img/docs/trt-3.png new file mode 100644 index 000000000..e016a9465 Binary files /dev/null and b/docs/static/img/docs/trt-3.png differ diff --git a/docs/static/img/docs/trt1.png b/docs/static/img/docs/trt1.png new file mode 100644 index 000000000..62d836664 Binary files /dev/null and b/docs/static/img/docs/trt1.png differ diff --git a/docs/static/img/favicons/android-chrome-192x192.png b/docs/static/img/favicons/android-chrome-192x192.png new file mode 100644 index 000000000..79d82d3af Binary files /dev/null and b/docs/static/img/favicons/android-chrome-192x192.png differ diff --git a/docs/static/img/favicons/android-chrome-512x512.png b/docs/static/img/favicons/android-chrome-512x512.png new file mode 100644 index 000000000..15d4df459 Binary files /dev/null and b/docs/static/img/favicons/android-chrome-512x512.png differ diff --git a/docs/static/img/favicons/apple-touch-icon.png b/docs/static/img/favicons/apple-touch-icon.png new file mode 100644 index 000000000..320459fd7 Binary files /dev/null and b/docs/static/img/favicons/apple-touch-icon.png differ diff --git a/docs/static/img/favicons/browserconfig.xml b/docs/static/img/favicons/browserconfig.xml new file mode 100644 index 000000000..5aecc916b --- /dev/null +++ b/docs/static/img/favicons/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #00aba9 + + + diff --git a/docs/static/img/favicons/favicon-16x16.png b/docs/static/img/favicons/favicon-16x16.png new file mode 100644 index 000000000..56085ab82 Binary files /dev/null and b/docs/static/img/favicons/favicon-16x16.png differ diff --git a/docs/static/img/favicons/favicon-32x32.png b/docs/static/img/favicons/favicon-32x32.png new file mode 100644 index 000000000..68f042d48 Binary files /dev/null and b/docs/static/img/favicons/favicon-32x32.png differ diff --git a/docs/static/img/favicons/favicon.ico b/docs/static/img/favicons/favicon.ico new file mode 100644 index 000000000..d9498120a Binary files /dev/null and b/docs/static/img/favicons/favicon.ico differ diff --git a/docs/static/img/favicons/mstile-144x144.png b/docs/static/img/favicons/mstile-144x144.png new file mode 100644 index 000000000..6c1218799 Binary files /dev/null and b/docs/static/img/favicons/mstile-144x144.png differ diff --git a/docs/static/img/favicons/mstile-150x150.png b/docs/static/img/favicons/mstile-150x150.png new file mode 100644 index 000000000..13dcc9b48 Binary files /dev/null and b/docs/static/img/favicons/mstile-150x150.png differ diff --git a/docs/static/img/favicons/mstile-310x150.png b/docs/static/img/favicons/mstile-310x150.png new file mode 100644 index 000000000..f71fe7dd7 Binary files /dev/null and b/docs/static/img/favicons/mstile-310x150.png differ diff --git a/docs/static/img/favicons/mstile-310x310.png b/docs/static/img/favicons/mstile-310x310.png new file mode 100644 index 000000000..293561270 Binary files /dev/null and b/docs/static/img/favicons/mstile-310x310.png differ diff --git a/docs/static/img/favicons/mstile-70x70.png b/docs/static/img/favicons/mstile-70x70.png new file mode 100644 index 000000000..f22f56591 Binary files /dev/null and b/docs/static/img/favicons/mstile-70x70.png differ diff --git a/docs/static/img/favicons/safari-pinned-tab.svg b/docs/static/img/favicons/safari-pinned-tab.svg new file mode 100644 index 000000000..84e3ff425 --- /dev/null +++ b/docs/static/img/favicons/safari-pinned-tab.svg @@ -0,0 +1,24 @@ + + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + + diff --git a/docs/static/img/favicons/site.webmanifest b/docs/static/img/favicons/site.webmanifest new file mode 100644 index 000000000..49c7cf9c3 --- /dev/null +++ b/docs/static/img/favicons/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "Cortex", + "short_name": "Cortex", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/docs/static/img/homepage/about.png b/docs/static/img/homepage/about.png new file mode 100644 index 000000000..3d1cfedde Binary files /dev/null and b/docs/static/img/homepage/about.png differ diff --git a/docs/static/img/homepage/arrow-icon-dark.svg b/docs/static/img/homepage/arrow-icon-dark.svg new file mode 100644 index 000000000..499932040 --- /dev/null +++ b/docs/static/img/homepage/arrow-icon-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/static/img/homepage/arrow-icon.svg b/docs/static/img/homepage/arrow-icon.svg new file mode 100644 index 000000000..51942908e --- /dev/null +++ b/docs/static/img/homepage/arrow-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/static/img/homepage/box-dark.png b/docs/static/img/homepage/box-dark.png new file mode 100644 index 000000000..acce360eb Binary files /dev/null and b/docs/static/img/homepage/box-dark.png differ diff --git a/docs/static/img/homepage/box.png b/docs/static/img/homepage/box.png new file mode 100644 index 000000000..1ffb06111 Binary files /dev/null and b/docs/static/img/homepage/box.png differ diff --git a/docs/static/img/homepage/categories1-dark.svg b/docs/static/img/homepage/categories1-dark.svg new file mode 100644 index 000000000..6b597fc40 --- /dev/null +++ b/docs/static/img/homepage/categories1-dark.svg @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/homepage/categories1.svg b/docs/static/img/homepage/categories1.svg new file mode 100644 index 000000000..9b56bf3cd --- /dev/null +++ b/docs/static/img/homepage/categories1.svg @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/homepage/categories2-dark.svg b/docs/static/img/homepage/categories2-dark.svg new file mode 100644 index 000000000..436519874 --- /dev/null +++ b/docs/static/img/homepage/categories2-dark.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/homepage/categories2.svg b/docs/static/img/homepage/categories2.svg new file mode 100644 index 000000000..96c402820 --- /dev/null +++ b/docs/static/img/homepage/categories2.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/homepage/cloud-tree-dark.png b/docs/static/img/homepage/cloud-tree-dark.png new file mode 100644 index 000000000..11268798c Binary files /dev/null and b/docs/static/img/homepage/cloud-tree-dark.png differ diff --git a/docs/static/img/homepage/cloud-tree.png b/docs/static/img/homepage/cloud-tree.png new file mode 100644 index 000000000..4fb6cb916 Binary files /dev/null and b/docs/static/img/homepage/cloud-tree.png differ diff --git a/docs/static/img/homepage/cpus_npus.png b/docs/static/img/homepage/cpus_npus.png new file mode 100644 index 000000000..a104fefda Binary files /dev/null and b/docs/static/img/homepage/cpus_npus.png differ diff --git a/docs/static/img/homepage/desktops.png b/docs/static/img/homepage/desktops.png new file mode 100644 index 000000000..6aa76207f Binary files /dev/null and b/docs/static/img/homepage/desktops.png differ diff --git a/docs/static/img/homepage/industrial_pcs.png b/docs/static/img/homepage/industrial_pcs.png new file mode 100644 index 000000000..81e10899a Binary files /dev/null and b/docs/static/img/homepage/industrial_pcs.png differ diff --git a/docs/static/img/homepage/iot_sbcs.png b/docs/static/img/homepage/iot_sbcs.png new file mode 100644 index 000000000..b7b6d6475 Binary files /dev/null and b/docs/static/img/homepage/iot_sbcs.png differ diff --git a/docs/static/img/homepage/model-registry-dark.png b/docs/static/img/homepage/model-registry-dark.png new file mode 100644 index 000000000..cb80967d0 Binary files /dev/null and b/docs/static/img/homepage/model-registry-dark.png differ diff --git a/docs/static/img/homepage/model-registry.png b/docs/static/img/homepage/model-registry.png new file mode 100644 index 000000000..47b83468c Binary files /dev/null and b/docs/static/img/homepage/model-registry.png differ diff --git a/docs/static/img/homepage/multi-device.svg b/docs/static/img/homepage/multi-device.svg new file mode 100644 index 000000000..56962dfb2 --- /dev/null +++ b/docs/static/img/homepage/multi-device.svg @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/homepage/multi-model.svg b/docs/static/img/homepage/multi-model.svg new file mode 100644 index 000000000..77c7901bc --- /dev/null +++ b/docs/static/img/homepage/multi-model.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/homepage/phones.png b/docs/static/img/homepage/phones.png new file mode 100644 index 000000000..6e43467b1 Binary files /dev/null and b/docs/static/img/homepage/phones.png differ diff --git a/docs/static/img/homepage/robots.png b/docs/static/img/homepage/robots.png new file mode 100644 index 000000000..1937c3ff6 Binary files /dev/null and b/docs/static/img/homepage/robots.png differ diff --git a/docs/static/img/homepage/server.png b/docs/static/img/homepage/server.png new file mode 100644 index 000000000..d9edc9efd Binary files /dev/null and b/docs/static/img/homepage/server.png differ diff --git a/docs/static/img/homepage/terminal-element-dark.svg b/docs/static/img/homepage/terminal-element-dark.svg new file mode 100644 index 000000000..124eb55d9 --- /dev/null +++ b/docs/static/img/homepage/terminal-element-dark.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/docs/static/img/homepage/terminal-element.svg b/docs/static/img/homepage/terminal-element.svg new file mode 100644 index 000000000..f5317d31e --- /dev/null +++ b/docs/static/img/homepage/terminal-element.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/docs/static/img/homepage/terminal-stars-dark.svg b/docs/static/img/homepage/terminal-stars-dark.svg new file mode 100644 index 000000000..580ab00d5 --- /dev/null +++ b/docs/static/img/homepage/terminal-stars-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/static/img/homepage/terminal-stars.svg b/docs/static/img/homepage/terminal-stars.svg new file mode 100644 index 000000000..06e9413d0 --- /dev/null +++ b/docs/static/img/homepage/terminal-stars.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/static/img/homepage/wearables.png b/docs/static/img/homepage/wearables.png new file mode 100644 index 000000000..8cced465e Binary files /dev/null and b/docs/static/img/homepage/wearables.png differ diff --git a/docs/static/img/logos/anthropic.svg b/docs/static/img/logos/anthropic.svg new file mode 100644 index 000000000..1f3f18dcf --- /dev/null +++ b/docs/static/img/logos/anthropic.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/static/img/logos/cohere.svg b/docs/static/img/logos/cohere.svg new file mode 100644 index 000000000..0ff4f0029 --- /dev/null +++ b/docs/static/img/logos/cohere.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/static/img/logos/cortex-logo-dark.svg b/docs/static/img/logos/cortex-logo-dark.svg new file mode 100644 index 000000000..7854e8d83 --- /dev/null +++ b/docs/static/img/logos/cortex-logo-dark.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/logos/cortex-logo-mark.svg b/docs/static/img/logos/cortex-logo-mark.svg new file mode 100644 index 000000000..53a77b44d --- /dev/null +++ b/docs/static/img/logos/cortex-logo-mark.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/logos/cortex-logo.svg b/docs/static/img/logos/cortex-logo.svg new file mode 100644 index 000000000..b000b2ca9 --- /dev/null +++ b/docs/static/img/logos/cortex-logo.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/logos/cortex.svg b/docs/static/img/logos/cortex.svg new file mode 100644 index 000000000..c0ebd58bf --- /dev/null +++ b/docs/static/img/logos/cortex.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/docs/static/img/logos/dot.svg b/docs/static/img/logos/dot.svg new file mode 100644 index 000000000..f667c20b1 --- /dev/null +++ b/docs/static/img/logos/dot.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/static/img/logos/groq.svg b/docs/static/img/logos/groq.svg new file mode 100644 index 000000000..9c2e0a34a --- /dev/null +++ b/docs/static/img/logos/groq.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/static/img/logos/hf.svg b/docs/static/img/logos/hf.svg new file mode 100644 index 000000000..c1660d8b8 --- /dev/null +++ b/docs/static/img/logos/hf.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/static/img/logos/homebrew-dark.svg b/docs/static/img/logos/homebrew-dark.svg new file mode 100644 index 000000000..39a598f30 --- /dev/null +++ b/docs/static/img/logos/homebrew-dark.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/docs/static/img/logos/homebrew-white.svg b/docs/static/img/logos/homebrew-white.svg new file mode 100644 index 000000000..6145752b3 --- /dev/null +++ b/docs/static/img/logos/homebrew-white.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/docs/static/img/logos/martian.svg b/docs/static/img/logos/martian.svg new file mode 100644 index 000000000..b5ceacdf8 --- /dev/null +++ b/docs/static/img/logos/martian.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/docs/static/img/logos/meta.svg b/docs/static/img/logos/meta.svg new file mode 100644 index 000000000..91bdf9783 --- /dev/null +++ b/docs/static/img/logos/meta.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/logos/mistral.svg b/docs/static/img/logos/mistral.svg new file mode 100644 index 000000000..22233c55c --- /dev/null +++ b/docs/static/img/logos/mistral.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/logos/nvidia.svg b/docs/static/img/logos/nvidia.svg new file mode 100644 index 000000000..09c2194ec --- /dev/null +++ b/docs/static/img/logos/nvidia.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/docs/static/img/logos/openai-logo-dark.svg b/docs/static/img/logos/openai-logo-dark.svg new file mode 100644 index 000000000..58eb64910 --- /dev/null +++ b/docs/static/img/logos/openai-logo-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/static/img/logos/openai-logo.svg b/docs/static/img/logos/openai-logo.svg new file mode 100644 index 000000000..3dc72f873 --- /dev/null +++ b/docs/static/img/logos/openai-logo.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/static/img/logos/openai.svg b/docs/static/img/logos/openai.svg new file mode 100644 index 000000000..8f0785415 --- /dev/null +++ b/docs/static/img/logos/openai.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/static/img/logos/openrouter.svg b/docs/static/img/logos/openrouter.svg new file mode 100644 index 000000000..8cff3dfcd --- /dev/null +++ b/docs/static/img/logos/openrouter.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/logos/send.svg b/docs/static/img/logos/send.svg new file mode 100644 index 000000000..28d30299f --- /dev/null +++ b/docs/static/img/logos/send.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/static/img/social-card.jpg b/docs/static/img/social-card.jpg new file mode 100644 index 000000000..cad56cc6f Binary files /dev/null and b/docs/static/img/social-card.jpg differ diff --git a/docs/static/js/gtag.js b/docs/static/js/gtag.js new file mode 100644 index 000000000..0398e831c --- /dev/null +++ b/docs/static/js/gtag.js @@ -0,0 +1,7 @@ +window.dataLayer = window.dataLayer || []; +function gtag() { + dataLayer.push(arguments); +} +gtag("js", new Date()); + +gtag("config", process.env.GTM_ID); diff --git a/docs/static/openapi/jan.json b/docs/static/openapi/jan.json new file mode 100644 index 000000000..352c8a5b2 --- /dev/null +++ b/docs/static/openapi/jan.json @@ -0,0 +1,2338 @@ +{ + "openapi": "3.0.0", + "paths": { + "/v1/assistants": { + "post": { + "operationId": "AssistantsController_create", + "summary": "Create assistant", + "description": "Creates a new assistant.", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateAssistantDto" + } + } + } + }, + "responses": { + "201": { + "description": "The assistant has been successfully created." + } + }, + "tags": ["Assistants"] + }, + "get": { + "operationId": "AssistantsController_findAll", + "summary": "List assistants", + "description": "Returns a list of assistants.", + "parameters": [ + { + "name": "limit", + "required": false, + "in": "query", + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", + "schema": { + "type": "number" + } + }, + { + "name": "order", + "required": false, + "in": "query", + "description": "Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.", + "schema": { + "type": "string" + } + }, + { + "name": "after", + "required": false, + "in": "query", + "description": "A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.", + "schema": { + "type": "string" + } + }, + { + "name": "before", + "required": false, + "in": "query", + "description": "A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssistantEntity" + } + } + } + } + } + }, + "tags": ["Assistants"] + } + }, + "/v1/assistants/{id}": { + "get": { + "operationId": "AssistantsController_findOne", + "summary": "Get assistant", + "description": "Retrieves a specific assistant defined by an assistant's `id`.", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "description": "The unique identifier of the assistant.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssistantEntity" + } + } + } + } + }, + "tags": ["Assistants"] + }, + "delete": { + "operationId": "AssistantsController_remove", + "summary": "Delete assistant", + "description": "Deletes a specific assistant defined by an assistant's `id`.", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "description": "The unique identifier of the assistant.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The assistant has been successfully deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteAssistantResponseDto" + } + } + } + } + }, + "tags": ["Assistants"] + } + }, + "/v1/chat/completions": { + "post": { + "operationId": "ChatController_create", + "summary": "Create chat completion", + "description": "Creates a model response for the given conversation. The following parameters are not working for the `TensorRT-LLM` engine:\n- `frequency_penalty`\n- `presence_penalty`\n- `top_p`", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateChatCompletionDto" + } + } + } + }, + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChatCompletionResponseDto" + } + } + } + } + }, + "tags": ["Inference"] + } + }, + "/v1/models/pull": { + "post": { + "operationId": "ModelsController_pullModel", + "summary": "Pull a model", + "description": "Pull a model from a remote source.", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PullModelRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PullModelResponse" + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SimpleErrorResponse" + } + } + } + } + }, + "tags": ["Models"] + } + }, + "/v1/models": { + "get": { + "operationId": "ModelsController_findAll", + "summary": "List models", + "description": "Lists the currently available models, and provides basic information about each one such as the owner and availability. [Equivalent to OpenAI's list model](https://platform.openai.com/docs/api-reference/models/list).", + "parameters": [], + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListModelsResponseDto" + } + } + } + } + }, + "tags": ["Models"] + } + }, + "/v1/models/start": { + "post": { + "operationId": "ModelsController_startModel", + "summary": "Start model", + "description": "Load a model into memory.", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelStartDto" + }, + "example": { + "model": "llama3:8b-gguf-q6-k" + } + } + } + }, + "responses": { + "200": { + "description": "The model has been successfully started.", + "content": { + "application/json": { + "example": { + "message": "Started successfully!" + } + } + } + } + }, + "tags": ["Models"] + } + }, + "/v1/models/stop": { + "post": { + "operationId": "ModelsController_stopModel", + "summary": "Stop model", + "description": "Unload model from memory", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelStartDto" + }, + "example": { + "model": "llama3:8b-gguf-q6-k" + } + } + } + }, + "responses": { + "200": { + "description": "The model has been successfully started.", + "content": { + "application/json": { + "example": { + "message": "Stopped successfully!" + } + } + } + } + }, + "tags": ["Models"] + } + }, + "/v1/models/{id}": { + "get": { + "operationId": "ModelsController_findOne", + "summary": "Get model", + "description": "Retrieves a model instance, providing basic information about the model such as the owner and permissions. [Equivalent to OpenAI's list model](https://platform.openai.com/docs/api-reference/models/retrieve).", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "description": "The unique identifier of the model.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelDto" + } + } + } + } + }, + "tags": ["Models"] + }, + "delete": { + "operationId": "ModelsController_remove", + "summary": "Delete model", + "description": "Deletes a model. [Equivalent to OpenAI's delete model](https://platform.openai.com/docs/api-reference/models/delete).", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "description": "The unique identifier of the model.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The model has been successfully deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteModelResponseDto" + } + } + } + } + }, + "tags": ["Models"] + } + }, + "/v1/models/{model}": { + "patch": { + "operationId": "ModelsController_update", + "summary": "Update model", + "description": "Updates a model instance defined by a model's `id`.", + "parameters": [ + { + "name": "model", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateModelDto" + } + } + } + }, + "responses": { + "200": { + "description": "The model has been successfully updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateModelDto" + } + } + } + } + }, + "tags": ["Models"] + } + }, + "/v1/threads": { + "post": { + "operationId": "ThreadsController_create", + "summary": "Create thread", + "tags": ["Threads"], + "description": "Creates a new thread.", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateThreadDto" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + } + }, + "get": { + "operationId": "ThreadsController_findAll", + "summary": "List threads", + "tags": ["Threads"], + "description": "Lists all the available threads along with its configurations.", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + }, + "/v1/threads/{thread_id}/messages/{message_id}": { + "get": { + "operationId": "ThreadsController_retrieveMessage", + "summary": "Retrieve message", + "tags": ["Messages"], + "description": "Retrieves a message.", + "parameters": [ + { + "name": "thread_id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "message_id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The message object matching the specified ID.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetMessageResponseDto" + } + } + } + } + } + }, + "post": { + "operationId": "ThreadsController_updateMessage", + "summary": "Modify message", + "tags": ["Messages"], + "description": "Modifies a message.", + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "parameters": [ + { + "name": "thread_id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "message_id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateMessageDto" + } + } + } + } + }, + "delete": { + "operationId": "ThreadsController_deleteMessage", + "summary": "Delete message", + "description": "Deletes a message.", + "tags": ["Messages"], + "parameters": [ + { + "name": "thread_id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "message_id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Deletion status.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteMessageDto" + } + } + } + } + } + } + }, + "/v1/threads/{thread_id}/messages": { + "get": { + "operationId": "ThreadsController_getMessagesOfThread", + "summary": "List messages", + "tags": ["Messages"], + "description": "Returns a list of messages for a given thread.", + "parameters": [ + { + "name": "thread_id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "required": true, + "in": "query", + "schema": { + "type": "number" + } + }, + { + "name": "order", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "after", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "before", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "run_id", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "A list of message objects.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListMessagesResponseDto" + } + } + } + } + } + }, + "post": { + "operationId": "ThreadsController_createMessageInThread", + "summary": "Create message", + "tags": ["Messages"], + "description": "Create a message.", + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "parameters": [ + { + "name": "thread_id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateMessageDto" + } + } + } + } + } + }, + "/v1/threads/{thread_id}/clean": { + "post": { + "operationId": "ThreadsController_cleanThread", + "summary": "Clean thread", + "description": "Deletes all messages in a thread.", + "tags": ["Threads"], + "parameters": [ + { + "name": "thread_id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "201": { + "description": "" + } + } + } + }, + "/v1/threads/{thread_id}": { + "get": { + "operationId": "ThreadsController_retrieveThread", + "summary": "Retrieve thread", + "tags": ["Threads"], + "description": "Retrieves a thread.", + "parameters": [ + { + "name": "thread_id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieves a thread.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetThreadResponseDto" + } + } + } + } + } + }, + "post": { + "operationId": "ThreadsController_modifyThread", + "summary": "Modify thread", + "tags": ["Threads"], + "description": "Modifies a thread.", + "parameters": [ + { + "name": "thread_id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateThreadDto" + } + } + } + }, + "responses": { + "200": { + "description": "The thread has been successfully updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateThreadDto" + } + } + } + }, + "201": { + "description": "" + } + } + }, + "delete": { + "operationId": "ThreadsController_remove", + "summary": "Delete thread", + "tags": ["Threads"], + "description": "Deletes a specific thread defined by a thread `id` .", + "parameters": [ + { + "name": "thread_id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The thread has been successfully deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteThreadResponseDto" + } + } + } + } + } + } + }, + "/v1/system": { + "delete": { + "operationId": "SystemController_delete", + "summary": "Stop api server", + "description": "Stops the Cortex API endpoint server for the detached mode.", + "parameters": [], + "responses": { + "200": { + "description": "" + } + }, + "tags": ["System"] + }, + "get": { + "operationId": "SystemController_get", + "summary": "Get health status", + "description": "Retrieves the health status of your Cortex's system.", + "parameters": [], + "responses": { + "200": { + "description": "Ok" + } + }, + "tags": ["System"] + } + }, + "/v1/system/events/download": { + "get": { + "operationId": "SystemController_downloadEvent", + "summary": "Get download status", + "description": "Retrieves the model's download status.", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": ["System"] + } + }, + "/v1/system/events/model": { + "get": { + "operationId": "SystemController_modelEvent", + "summary": "Get model status", + "description": "Retrieves all the available model statuses within Cortex.", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": ["System"] + } + }, + "/v1/system/events/resources": { + "get": { + "operationId": "SystemController_resourcesEvent", + "summary": "Get resources status", + "description": "Retrieves the resources status of the system.", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": ["System"] + } + }, + "/v1/engines": { + "get": { + "operationId": "EnginesController_findAll", + "summary": "List available engines", + "description": "Lists the currently available local engines.", + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EngineList" + } + } + } + } + }, + "tags": ["Engines"] + } + }, + "/v1/engines/{name}": { + "get": { + "operationId": "EnginesController_findOne", + "summary": "Get an engine", + "description": "Retrieves an engine instance, providing basic information about the engine.", + "parameters": [ + { + "name": "name", + "required": true, + "in": "path", + "description": "The unique identifier of the engine.", + "schema": { + "type": "string", + "enum": ["onnxruntime", "llama-cpp", "tensorrt-llm"] + } + } + ], + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Engine" + } + } + } + } + }, + "tags": ["Engines"] + } + }, + "/v1/engines/install/{name}": { + "post": { + "operationId": "EnginesController_initialize", + "summary": "Install an engine", + "description": "Install an engine with the given name. It will download the engine if it is not available locally.", + "parameters": [ + { + "name": "name", + "required": true, + "in": "path", + "description": "The unique identifier of the engine.", + "schema": { + "type": "string", + "enum": ["onnxruntime", "llama-cpp", "tensorrt-llm"] + } + } + ], + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EngineInstallationResponseDto" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SimpleErrorResponse" + } + } + } + } + }, + "tags": ["Engines"] + }, + "delete": { + "operationId": "EnginesController_deleteEngine", + "summary": "Uninstall an engine", + "description": "Uninstall an installed engine with the given name.", + "parameters": [ + { + "name": "name", + "required": true, + "in": "path", + "description": "The unique identifier of the engine.", + "schema": { + "type": "string", + "enum": ["onnxruntime", "llama-cpp", "tensorrt-llm"] + } + } + ], + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EngineUninstallationResponseDto" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SimpleErrorResponse" + } + } + } + } + }, + "tags": ["Engines"] + } + } + }, + "info": { + "title": "Cortex API", + "description": "Cortex API enables API commands for seamless interaction with LLMs.", + "version": "1.0", + "contact": {} + }, + "tags": [ + { + "name": "Inference", + "description": "This endpoint initiates interaction with a Large Language Models (LLM)." + }, + { + "name": "Assistants", + "description": "These endpoints manage the lifecycle of an Assistant within a conversation thread." + }, + { + "name": "Models", + "description": "These endpoints provide a list and descriptions of all available models within the Cortex framework." + }, + { + "name": "Messages", + "description": "These endpoints manage the retrieval and storage of conversation content, including responses from LLMs and other metadata related to chat interactions." + }, + { + "name": "Threads", + "description": "These endpoints handle the creation, retrieval, updating, and deletion of conversation threads." + }, + { + "name": "Engines", + "description": "Endpoints for managing the available engines within Cortex." + }, + { + "name": "System", + "description": "Endpoints for stopping the Cortex API server, checking its status, and fetching system events." + } + ], + "x-tagGroups": [ + { + "name": "CORTEX", + "tags": [ + "Inference", + "Engines", + "Events", + "Models", + "Processes", + "Status" + ] + } + ], + "servers": [ + { + "url": "http://127.0.0.1:39281" + } + ], + "components": { + "schemas": { + "CreateAssistantDto": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the assistant.", + "example": "jan", + "default": "jan" + }, + "avatar": { + "type": "string", + "description": "The avatar of the assistant.", + "example": "", + "default": "" + }, + "name": { + "type": "string", + "description": "The name of the assistant.", + "example": "Jan", + "default": "Jan" + }, + "description": { + "type": "string", + "description": "The description of the assistant.", + "example": "A default assistant that can use all downloaded models", + "default": "A default assistant that can use all downloaded models" + }, + "model": { + "type": "string", + "description": "The model of the assistant." + }, + "instructions": { + "type": "string", + "description": "The instructions for the assistant.", + "example": "", + "default": "" + }, + "tools": { + "description": "The tools associated with the assistant.", + "example": [], + "default": [], + "type": "array", + "items": { + "type": "object" + } + }, + "metadata": { + "type": "object", + "nullable": true, + "description": "The metadata of the assistant." + }, + "top_p": { + "type": "number", + "description": "Top p.", + "example": "0.7", + "default": "0.7" + }, + "temperature": { + "type": "number", + "description": "Temperature.", + "example": "0.7", + "default": "0.7" + } + }, + "required": [ + "id", + "name", + "description", + "model", + "instructions", + "tools", + "metadata" + ] + }, + "AssistantEntity": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "avatar": { + "type": "string" + }, + "object": { + "type": "string" + }, + "created_at": { + "type": "number" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "model": { + "type": "string" + }, + "instructions": { + "type": "string", + "nullable": true + }, + "tools": { + "type": "object" + }, + "metadata": { + "type": "object", + "nullable": true + }, + "top_p": { + "type": "number", + "nullable": true + }, + "temperature": { + "type": "number", + "nullable": true + }, + "response_format": { + "type": "object", + "nullable": true + }, + "tool_resources": { + "type": "object", + "nullable": true + } + }, + "required": [ + "id", + "object", + "created_at", + "name", + "description", + "model", + "instructions", + "tools", + "metadata", + "top_p", + "temperature", + "response_format", + "tool_resources" + ] + }, + "DeleteAssistantResponseDto": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "assistant_123", + "description": "The identifier of the assistant that was deleted." + }, + "object": { + "type": "string", + "example": "assistant", + "description": "Type of the object, indicating it's a assistant.", + "default": "assistant" + }, + "deleted": { + "type": "boolean", + "example": true, + "description": "Indicates whether the assistant was successfully deleted." + } + }, + "required": ["id", "object", "deleted"] + }, + "ChatCompletionMessage": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "The Content of the chat message." + }, + "role": { + "type": "object", + "description": "The role of the entity in the chat completion.", + "example": "user" + } + }, + "required": ["content", "role"] + }, + "CreateChatCompletionDto": { + "type": "object", + "properties": { + "messages": { + "description": "Array of chat messages to be used for generating the chat completion.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ChatCompletionMessage" + } + }, + "model": { + "type": "string", + "description": "The unique identifier of the model.", + "example": "mistral" + }, + "stream": { + "type": "boolean", + "description": "Determines the format for output generation. If set to `true`, the output is generated continuously, allowing for real-time streaming of responses. If set to `false`, the output is delivered in a single JSON file.", + "example": true + }, + "max_tokens": { + "type": "number", + "description": "Sets the upper limit on the number of tokens the model can generate in a single output.", + "example": 4096 + }, + "stop": { + "description": "Defines specific tokens or phrases that signal the model to stop producing further output.", + "example": ["End"], + "type": "array", + "items": { + "type": "string" + } + }, + "frequency_penalty": { + "type": "number", + "description": "Modifies the likelihood of the model repeating the same words or phrases within a single output.", + "example": 0.2 + }, + "presence_penalty": { + "type": "number", + "description": "Reduces the likelihood of repeating tokens, promoting novelty in the output.", + "example": 0.6 + }, + "temperature": { + "type": "number", + "description": "Influences the randomness of the model's output.", + "example": 0.8 + }, + "top_p": { + "type": "number", + "description": "Sets probability threshold for more relevant outputs.", + "example": 0.95 + } + }, + "required": ["messages", "model"] + }, + "MessageDto": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "The textual content of the chat message or completion generated by the model." + }, + "role": { + "type": "string", + "description": "The role of the participant in the chat, such as 'user' or 'system', indicating who is the sender of the message." + } + }, + "required": ["content", "role"] + }, + "ChoiceDto": { + "type": "object", + "properties": { + "finish_reason": { + "type": "string", + "description": "The reason the chat completion ended, typically indicating whether the model completed the text naturally or was cut off." + }, + "index": { + "type": "number", + "description": "The index of the completion relative to other generated completions, useful for identifying its order in a batch request." + }, + "message": { + "description": "An object representing the message details involved in the chat completion, encapsulated within a MessageDto.", + "allOf": [ + { + "$ref": "#/components/schemas/MessageDto" + } + ] + } + }, + "required": ["finish_reason", "index", "message"] + }, + "UsageDto": { + "type": "object", + "properties": { + "completion_tokens": { + "type": "number", + "description": "The number of tokens used in the completion part of the response generated by the model." + }, + "prompt_tokens": { + "type": "number", + "description": "The number of tokens used in the prompt part of the chat input, which is provided to the model." + }, + "total_tokens": { + "type": "number", + "description": "The total number of tokens used in both the prompt and the completion, summarizing the entire token count of the chat operation." + } + }, + "required": ["completion_tokens", "prompt_tokens", "total_tokens"] + }, + "ChatCompletionResponseDto": { + "type": "object", + "properties": { + "choices": { + "description": "A list of choices generated by the chat model.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ChoiceDto" + } + }, + "created": { + "type": "number", + "description": "The timestamp of when the chat completion was created, expressed as a Unix timestamp." + }, + "id": { + "type": "string", + "description": "The unique identifier for the chat completion." + }, + "model": { + "type": "string", + "description": "The identifier of the model used to generate the chat completion." + }, + "object": { + "type": "string", + "description": "The type of object, typically set to 'chat_completion' to denote the nature of the API response." + }, + "system_fingerprint": { + "type": "string", + "description": "A unique fingerprint that identifies the system configuration used during the chat completion." + }, + "usage": { + "description": "An object representing the usage statistics of the model for the current completion.", + "allOf": [ + { + "$ref": "#/components/schemas/UsageDto" + } + ] + } + }, + "required": [ + "choices", + "created", + "id", + "model", + "object", + "system_fingerprint", + "usage" + ] + }, + "CreateEmbeddingsDto": { + "type": "object", + "properties": { + "model": { + "type": "string", + "example": "mistral", + "description": "The name of the embedding model to be used." + }, + "input": { + "example": ["Hello World"], + "description": "The text or token array(s) to be embedded. This can be a single string, an array of strings, or an array of token arrays to embed multiple inputs in one request.", + "type": "array", + "items": { + "type": "string" + } + }, + "encoding_format": { + "type": "string", + "example": "float", + "description": "Specifies the format for the embeddings. Supported formats include `float` and `int`. This field is optional." + }, + "dimensions": { + "type": "number", + "example": 3, + "description": "Defines the number of dimensions for the output embeddings. This feature is supported by certain models only. This field is optional." + } + }, + "required": ["model", "input"] + }, + "EmbeddingsResponseDto": { + "type": "object", + "properties": { + "object": { + "type": "string", + "description": "Type of the result object." + }, + "model": { + "type": "string", + "description": "Identifier of the model utilized for generating embeddings." + }, + "embedding": { + "description": "The embedding vector represented as an array of floating-point numbers. ", + "type": "array", + "items": { + "type": "number" + } + }, + "usage": { + "description": "Details of token usage, including prompt_tokens and total_tokens.", + "allOf": [ + { + "$ref": "#/components/schemas/UsageDto" + } + ] + } + }, + "required": ["object", "model", "embedding", "usage"] + }, + "PullModelRequest": { + "type": "object", + "required": ["model"], + "properties": { + "model": { + "type": "string", + "description": "The identifier or URL of the model to use. It can be a model ID on Cortexso (https://huggingface.co/cortexso) or a HuggingFace URL pointing to the model file. For example: 'gpt2' or 'https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.1-GGUF/blob/main/mistral-7b-instruct-v0.1.Q2_K.gguf'", + "examples": [ + { + "value": "tinyllama:gguf" + }, + { + "value": "https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.1-GGUF/blob/main/mistral-7b-instruct-v0.1.Q2_K.gguf" + } + ] + } + } + }, + "PullModelResponse": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Model start downloading!" + } + } + }, + "CreateModelDto": { + "type": "object", + "properties": { + "model": { + "type": "string", + "description": "The unique identifier of the model.", + "example": "mistral" + }, + "name": { + "type": "string", + "description": "The name of the model.", + "example": "mistral" + }, + "files": { + "description": "The URL sources from which the model downloaded or accessed.", + "example": ["https://huggingface.co/cortexso/mistral/tree/gguf"], + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "#/components/schemas/ModelArtifactDto" + } + ] + }, + "prompt_template": { + "type": "string", + "description": "A predefined text or framework that guides the AI model's response generation.", + "example": "\n You are an expert in {subject}. Provide a detailed and thorough explanation on the topic of {topic}." + }, + "stop": { + "description": "Defines specific tokens or phrases that signal the model to stop producing further output.", + "example": ["End"], + "type": "array", + "items": { + "type": "string" + } + }, + "max_tokens": { + "type": "number", + "description": "Sets the upper limit on the number of tokens the model can generate in a single output.", + "example": 4096 + }, + "top_p": { + "type": "number", + "description": "Sets probability threshold for more relevant outputs.", + "example": 0.9 + }, + "temperature": { + "type": "number", + "description": "Influences the randomness of the model's output.", + "example": 0.7 + }, + "frequency_penalty": { + "type": "number", + "description": "Modifies the likelihood of the model repeating the same words or phrases within a single output.", + "example": 0.5 + }, + "presence_penalty": { + "type": "number", + "description": "Reduces the likelihood of repeating tokens, promoting novelty in the output.", + "example": 0.6 + }, + "stream": { + "type": "boolean", + "description": "Determines the format for output generation. If set to `true`, the output is generated continuously, allowing for real-time streaming of responses. If set to `false`, the output is delivered in a single JSON file.", + "example": true + }, + "ctx_len": { + "type": "number", + "description": "Sets the maximum input the model can use to generate a response, it varies with the model used.", + "example": 4096 + }, + "ngl": { + "type": "number", + "description": "Determines GPU layer usage.", + "example": 32 + }, + "n_parallel": { + "type": "number", + "minimum": 1, + "description": "Number of parallel processing units to use.", + "example": 1 + }, + "cpu_threads": { + "type": "number", + "minimum": 1, + "description": "Determines CPU inference threads, limited by hardware and OS. ", + "example": 10 + }, + "engine": { + "type": "string", + "description": "The engine used to run the model.", + "example": "llamacpp" + }, + "owned_by": { + "type": "string", + "description": "The owner of the model.", + "example": "", + "default": "" + } + }, + "required": ["model", "files"] + }, + "StartModelSuccessDto": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The success or error message displayed when a model is successfully loaded or fails to load." + }, + "modelId": { + "type": "string", + "description": "The unique identifier of the model." + } + }, + "required": ["message", "modelId"] + }, + "ModelStartDto": { + "type": "object", + "properties": { + "model": { + "type": "string", + "example": "llama3:8b-gguf-q6-k", + "description": "A downloaded model name." + } + } + }, + "CommonResponseDto": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The response success or error message." + } + }, + "required": ["message"] + }, + "EngineUninstallationResponseDto": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Engine my_engine uninstalled successfully!", + "enum": [ + "Engine onnxruntime uninstalled successfully!", + "Engine llama-cpp uninstalled successfully!", + "Engine tensorrt-llm uninstalled successfully!" + ] + } + } + }, + "SimpleErrorResponse": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + } + }, + "EngineInstallationResponseDto": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Engine my_engine installed successfully!", + "enum": [ + "Engine onnxruntime installed successfully!", + "Engine llama-cpp installed successfully!", + "Engine tensorrt-llm installed successfully!" + ] + } + } + }, + "EngineList": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Engine" + } + }, + "object": { + "type": "string", + "example": "list" + }, + "result": { + "type": "string", + "example": "OK" + } + }, + "required": ["data", "object", "result"] + }, + "Engine": { + "type": "object", + "properties": { + "description": { + "type": "string", + "example": "This extension enables chat completion API calls using the Onnx engine" + }, + "name": { + "type": "string", + "example": "onnxruntime" + }, + "productName": { + "type": "string", + "example": "onnxruntime" + }, + "status": { + "type": "string", + "example": "Incompatible" + }, + "variant": { + "type": "string", + "example": "mac-arm64" + }, + "version": { + "type": "string", + "example": "0.1.34" + } + }, + "required": ["description", "name", "productName", "status"] + }, + "ModelDto": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "mistral", + "description": "The model identifier, which can be referenced in the API endpoints." + }, + "prompt_template": { + "type": "string", + "example": "You are an expert in {subject}. Provide a detailed and thorough explanation on the topic of {topic}.", + "description": "A predefined text or framework that guides the AI model's response generation." + }, + "stop": { + "example": ["End"], + "description": "Defines specific tokens or phrases that signal the model to stop producing further output.", + "type": "array", + "items": { + "type": "string" + } + }, + "max_tokens": { + "type": "number", + "example": 4096, + "description": "Sets the upper limit on the number of tokens the model can generate in a single output." + }, + "temperature": { + "type": "number", + "example": 0.7, + "description": "Influences the randomness of the model's output." + }, + "top_p": { + "type": "number", + "example": 0.95, + "description": "Sets probability threshold for more relevant outputs" + }, + "stream": { + "type": "boolean", + "example": true, + "description": "Determines the format for output generation. If set to `true`, the output is generated continuously, allowing for real-time streaming of responses. If set to `false`, the output is delivered in a single JSON file." + }, + "frequency_penalty": { + "type": "number", + "example": 0, + "description": "Modifies the likelihood of the model repeating the same words or phrases within a single output." + }, + "presence_penalty": { + "type": "number", + "example": 0, + "description": "Reduces the likelihood of repeating tokens, promoting novelty in the output." + }, + "ngl": { + "type": "number", + "description": "Determines GPU layer usage.", + "example": 32 + }, + "ctx_len": { + "type": "number", + "description": "The context length for model operations varies; the maximum depends on the specific model used.", + "example": 4096 + }, + "cpu_threads": { + "type": "number", + "description": "Determines CPU inference threads, limited by hardware and OS.", + "example": 10 + }, + "pre_prompt": { + "type": "string", + "description": "The prompt to use for internal configuration", + "example": "You are an assistant with expert knowledge in {subject}. Please provide a detailed and accurate response to the following query: {query}. Ensure that your response is clear, concise, and informative." + }, + "n_batch": { + "type": "number", + "description": "The batch size for prompt eval step", + "example": 512 + }, + "caching_enabled": { + "type": "boolean", + "description": "To enable prompt caching or not", + "example": true + }, + "grp_attn_n": { + "type": "number", + "description": "Group attention factor in self-extend", + "example": 1 + }, + "grp_attn_w": { + "type": "number", + "description": "Group attention width in self-extend", + "example": 512 + }, + "mlock": { + "type": "boolean", + "description": "Prevent system swapping of the model to disk in macOS", + "example": false + }, + "grammar_file": { + "type": "string", + "description": "You can constrain the sampling using GBNF grammars by providing path to a grammar file" + }, + "flash_attn": { + "type": "boolean", + "description": "To enable Flash Attention, default is true", + "example": true + }, + "cache_type": { + "type": "string", + "description": "KV cache type: f16, q8_0, q4_0, default is f16", + "example": "f16" + }, + "use_mmap": { + "type": "boolean", + "description": "To enable mmap, default is true", + "example": true + }, + "engine": { + "type": "string", + "description": "The engine to use.", + "example": "llamacpp" + } + }, + "required": ["id"] + }, + "ListModelsResponseDto": { + "type": "object", + "properties": { + "object": { + "type": "string", + "example": "list", + "enum": ["list"] + }, + "data": { + "description": "List of models", + "type": "array", + "items": { + "$ref": "#/components/schemas/ModelDto" + } + } + }, + "required": ["object", "data"] + }, + "UpdateModelDto": { + "type": "object", + "properties": {} + }, + "DeleteModelResponseDto": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "mistral-ins-7b-q4", + "description": "The identifier of the model that was deleted." + }, + "object": { + "type": "string", + "example": "model", + "description": "Type of the object, indicating it's a model.", + "default": "model" + }, + "deleted": { + "type": "boolean", + "example": true, + "description": "Indicates whether the model was successfully deleted." + } + }, + "required": ["id", "object", "deleted"] + }, + "CreateThreadAssistantDto": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "thread_123", + "description": "The unique identifier of the assistant." + }, + "avatar": { + "type": "string", + "example": "https://example.com/avatar.png", + "description": "URL of the assistant's avatar image." + }, + "name": { + "type": "string", + "example": "Virtual Helper", + "description": "The name of the assistant." + }, + "model": { + "type": "string", + "example": "mistral", + "description": "The model's unique identifier and settings." + }, + "instructions": { + "type": "string", + "example": "Assist with customer queries and provide information based on the company database.", + "description": "The assistant's specific instructions." + }, + "tools": { + "type": "array", + "example": [ + { + "name": "Knowledge Retrieval", + "settings": { + "source": "internal", + "endpoint": "https://api.example.com/knowledge" + } + } + ], + "description": "The thread's tool(Knowledge Retrieval) configurations." + }, + "description": { + "type": "string", + "nullable": true, + "example": "This assistant helps with customer support by retrieving relevant information.", + "description": "The description of the assistant." + }, + "metadata": { + "type": "object", + "nullable": true, + "example": { + "department": "support", + "version": "1.0" + }, + "description": "Additional metadata for the assistant." + }, + "object": { + "type": "string", + "example": "assistant", + "description": "The object type, always \"assistant\"." + }, + "temperature": { + "type": "number", + "nullable": true, + "example": 0.7, + "description": "Sampling temperature for the assistant." + }, + "top_p": { + "type": "number", + "nullable": true, + "example": 0.9, + "description": "Top-p sampling value for the assistant." + }, + "created_at": { + "type": "number", + "example": 1622470423, + "description": "Timestamp of when the assistant was created." + }, + "response_format": { + "type": "object", + "example": { + "format": "json" + }, + "description": "The response format option for the assistant." + }, + "tool_resources": { + "type": "object", + "example": { + "resources": ["database1", "database2"] + }, + "description": "Tool resources for the assistant." + } + }, + "required": [ + "id", + "name", + "model", + "instructions", + "tools", + "description", + "metadata", + "object", + "created_at" + ] + }, + "CreateThreadDto": { + "type": "object", + "properties": { + "assistants": { + "description": "The details of the thread's settings.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CreateThreadAssistantDto" + } + } + }, + "required": ["assistants"] + }, + "ContentDto": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "text", + "description": "Type of content, e.g., \"text\"." + }, + "text": { + "type": "object", + "example": { + "value": "How does AI work? Explain it in simple terms.", + "annotations": [] + }, + "description": "Text content of the message along with any annotations." + } + }, + "required": ["type", "text"] + }, + "GetMessageResponseDto": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "msg_abc123", + "description": "The identifier of the message." + }, + "object": { + "type": "string", + "example": "thread.message", + "description": "Type of the object, indicating it's a thread message.", + "default": "thread.message" + }, + "created_at": { + "type": "integer", + "example": 1699017614, + "description": "Unix timestamp representing the creation time of the message." + }, + "thread_id": { + "type": "string", + "example": "thread_abc123", + "description": "Identifier of the thread to which this message belongs." + }, + "role": { + "type": "string", + "example": "user", + "description": "Role of the sender, either 'user' or 'assistant'." + }, + "content": { + "description": "Array of content objects detailing the message content.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ContentDto" + } + }, + "file_ids": { + "example": [], + "description": "Array of file IDs associated with the message, if any.", + "type": "array", + "items": { + "type": "string" + } + }, + "assistant_id": { + "type": "string", + "nullable": true, + "example": null, + "description": "Identifier of the assistant involved in the message, if applicable." + }, + "run_id": { + "type": "string", + "nullable": true, + "example": null, + "description": "Run ID associated with the message, if applicable." + }, + "metadata": { + "type": "object", + "example": {}, + "description": "Metadata associated with the message." + } + }, + "required": [ + "id", + "object", + "created_at", + "thread_id", + "role", + "content", + "file_ids", + "assistant_id", + "run_id", + "metadata" + ] + }, + "ListMessageObjectDto": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "msg_abc123", + "description": "The identifier of the message." + }, + "object": { + "type": "string", + "example": "thread.message", + "description": "Type of the object, indicating it's a thread message." + }, + "created_at": { + "type": "integer", + "example": 1699017614, + "description": "Unix timestamp representing the creation time of the message." + }, + "thread_id": { + "type": "string", + "example": "thread_abc123", + "description": "Identifier of the thread to which this message belongs." + }, + "role": { + "type": "string", + "example": "user", + "description": "Role of the sender, either 'user' or 'assistant'." + }, + "file_ids": { + "description": "Array of file IDs associated with the message, if any.", + "example": [], + "type": "array", + "items": { + "type": "string" + } + }, + "assistant_id": { + "type": "string", + "nullable": true, + "description": "Identifier of the assistant involved in the message, if applicable.", + "example": null + }, + "run_id": { + "type": "string", + "nullable": true, + "description": "Run ID associated with the message, if applicable.", + "example": null + }, + "metadata": { + "type": "object", + "example": {}, + "description": "Metadata associated with the message." + } + }, + "required": [ + "id", + "object", + "created_at", + "thread_id", + "role", + "file_ids", + "assistant_id", + "run_id", + "metadata" + ] + }, + "ListMessagesResponseDto": { + "type": "object", + "properties": { + "object": { + "type": "string", + "example": "list", + "description": "Type of the object, indicating it's a list." + }, + "data": { + "description": "Array of message objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ListMessageObjectDto" + } + }, + "first_id": { + "type": "string", + "example": "msg_abc123", + "description": "Identifier of the first message in the list." + }, + "last_id": { + "type": "string", + "example": "msg_abc456", + "description": "Identifier of the last message in the list." + }, + "has_more": { + "type": "boolean", + "example": false, + "description": "Indicates whether there are more messages to retrieve." + } + }, + "required": ["object", "data", "first_id", "last_id", "has_more"] + }, + "CreateMessageDto": { + "type": "object", + "properties": { + "role": { + "type": "object", + "example": "user", + "description": "The role of the entity that is creating the message. Allowed values include:\n - user: Indicates the message is sent by an actual user and should be used in most cases to represent user-generated messages.\n - assistant: Indicates the message is generated by the assistant. Use this value to insert messages from the assistant into the conversation." + }, + "content": { + "type": "string", + "example": "Tell me a joke", + "description": "The text contents of the message." + } + }, + "required": ["role", "content"] + }, + "UpdateMessageDto": { + "type": "object", + "properties": {} + }, + "DeleteMessageDto": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "message_123", + "description": "The identifier of the message that was deleted." + }, + "object": { + "type": "string", + "example": "message", + "description": "Type of the object, indicating it's a message.", + "default": "message" + }, + "deleted": { + "type": "boolean", + "example": true, + "description": "Indicates whether the message was successfully deleted." + } + }, + "required": ["id", "object", "deleted"] + }, + "GetThreadResponseDto": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "thread_abc123", + "description": "The identifier of the thread." + }, + "object": { + "type": "string", + "example": "thread", + "description": "Type of the object" + }, + "created_at": { + "type": "integer", + "example": 1699014083, + "description": "Unix timestamp representing the creation time of the thread." + }, + "assistants": { + "example": ["assistant-001"], + "description": "List of assistants involved in the thread.", + "type": "array", + "items": { + "type": "string" + } + }, + "metadata": { + "type": "object", + "example": {}, + "description": "Metadata associated with the thread." + }, + "messages": { + "example": [], + "description": "List of messages within the thread.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "object", + "created_at", + "assistants", + "metadata", + "messages" + ] + }, + "UpdateThreadDto": { + "type": "object", + "properties": {} + }, + "DeleteThreadResponseDto": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "thread_123", + "description": "The identifier of the thread that was deleted." + }, + "object": { + "type": "string", + "example": "thread", + "description": "Type of the object, indicating it's a thread.", + "default": "thread" + }, + "deleted": { + "type": "boolean", + "example": true, + "description": "Indicates whether the thread was successfully deleted." + } + }, + "required": ["id", "object", "deleted"] + } + } + } +} diff --git a/docs/tailwind.config.ts b/docs/tailwind.config.ts new file mode 100644 index 000000000..533d0976a --- /dev/null +++ b/docs/tailwind.config.ts @@ -0,0 +1,46 @@ +import type { Config } from "tailwindcss"; + +const config: Config = { + corePlugins: { + preflight: false, + container: false, + }, + darkMode: ["class", '[data-theme="dark"]'], + content: [ + "./src/**/*.{jsx,tsx,html,md,scss}", + "./src/components/**/*.{jsx,tsx,html,md,scss}", + ], + theme: { + container: { + center: true, + padding: "16px", + }, + fontFamily: { + sans: [ + "Inter", + "-apple-system", + "BlinkMacSystemFont", + "Segoe UI", + "Roboto", + "Oxygen-Sans", + "Ubuntu,Cantarell", + "Helvetica", + "sans-serif", + ], + grotesk: [ + "Space Grotesk", + "-apple-system", + "BlinkMacSystemFont", + "Segoe UI", + "Roboto", + "Oxygen-Sans", + "Ubuntu,Cantarell", + "Helvetica", + "sans-serif", + ], + }, + extend: {}, + }, + plugins: [], +}; +export default config; diff --git a/docs/templates/{{slug}}.mdx.hbs b/docs/templates/{{slug}}.mdx.hbs new file mode 100644 index 000000000..5ba7b719b --- /dev/null +++ b/docs/templates/{{slug}}.mdx.hbs @@ -0,0 +1,12 @@ +--- +title: {{titleCase title}} +description: {{description}} +slug: {{slug}} +version: {{version}} +date: {{date}} +ogImage: '' +--- + +import ChangelogHeader from "@site/src/components/ChangelogHeader" + + diff --git a/docs/tsconfig.json b/docs/tsconfig.json new file mode 100644 index 000000000..314eab8a4 --- /dev/null +++ b/docs/tsconfig.json @@ -0,0 +1,7 @@ +{ + // This file is not used in compilation. It is here just for a nice editor experience. + "extends": "@docusaurus/tsconfig", + "compilerOptions": { + "baseUrl": "." + } +} diff --git a/docs/yarn.lock b/docs/yarn.lock new file mode 100644 index 000000000..330e987ed --- /dev/null +++ b/docs/yarn.lock @@ -0,0 +1,12666 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@adobe/css-tools@^4.3.2": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.4.0.tgz#728c484f4e10df03d5a3acd0d8adcbbebff8ad63" + integrity sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ== + +"@algolia/autocomplete-core@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz#1d56482a768c33aae0868c8533049e02e8961be7" + integrity sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw== + dependencies: + "@algolia/autocomplete-plugin-algolia-insights" "1.9.3" + "@algolia/autocomplete-shared" "1.9.3" + +"@algolia/autocomplete-plugin-algolia-insights@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz#9b7f8641052c8ead6d66c1623d444cbe19dde587" + integrity sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg== + dependencies: + "@algolia/autocomplete-shared" "1.9.3" + +"@algolia/autocomplete-preset-algolia@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz#64cca4a4304cfcad2cf730e83067e0c1b2f485da" + integrity sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA== + dependencies: + "@algolia/autocomplete-shared" "1.9.3" + +"@algolia/autocomplete-shared@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz#2e22e830d36f0a9cf2c0ccd3c7f6d59435b77dfa" + integrity sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ== + +"@algolia/cache-browser-local-storage@4.23.3": + version "4.23.3" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.23.3.tgz#0cc26b96085e1115dac5fcb9d826651ba57faabc" + integrity sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg== + dependencies: + "@algolia/cache-common" "4.23.3" + +"@algolia/cache-common@4.23.3": + version "4.23.3" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.23.3.tgz#3bec79092d512a96c9bfbdeec7cff4ad36367166" + integrity sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A== + +"@algolia/cache-in-memory@4.23.3": + version "4.23.3" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.23.3.tgz#3945f87cd21ffa2bec23890c85305b6b11192423" + integrity sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg== + dependencies: + "@algolia/cache-common" "4.23.3" + +"@algolia/client-account@4.23.3": + version "4.23.3" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.23.3.tgz#8751bbf636e6741c95e7c778488dee3ee430ac6f" + integrity sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA== + dependencies: + "@algolia/client-common" "4.23.3" + "@algolia/client-search" "4.23.3" + "@algolia/transporter" "4.23.3" + +"@algolia/client-analytics@4.23.3": + version "4.23.3" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.23.3.tgz#f88710885278fe6fb6964384af59004a5a6f161d" + integrity sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA== + dependencies: + "@algolia/client-common" "4.23.3" + "@algolia/client-search" "4.23.3" + "@algolia/requester-common" "4.23.3" + "@algolia/transporter" "4.23.3" + +"@algolia/client-common@4.23.3": + version "4.23.3" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.23.3.tgz#891116aa0db75055a7ecc107649f7f0965774704" + integrity sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw== + dependencies: + "@algolia/requester-common" "4.23.3" + "@algolia/transporter" "4.23.3" + +"@algolia/client-personalization@4.23.3": + version "4.23.3" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.23.3.tgz#35fa8e5699b0295fbc400a8eb211dc711e5909db" + integrity sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g== + dependencies: + "@algolia/client-common" "4.23.3" + "@algolia/requester-common" "4.23.3" + "@algolia/transporter" "4.23.3" + +"@algolia/client-search@4.23.3": + version "4.23.3" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.23.3.tgz#a3486e6af13a231ec4ab43a915a1f318787b937f" + integrity sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw== + dependencies: + "@algolia/client-common" "4.23.3" + "@algolia/requester-common" "4.23.3" + "@algolia/transporter" "4.23.3" + +"@algolia/events@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@algolia/events/-/events-4.0.1.tgz#fd39e7477e7bc703d7f893b556f676c032af3950" + integrity sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ== + +"@algolia/logger-common@4.23.3": + version "4.23.3" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.23.3.tgz#35c6d833cbf41e853a4f36ba37c6e5864920bfe9" + integrity sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g== + +"@algolia/logger-console@4.23.3": + version "4.23.3" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.23.3.tgz#30f916781826c4db5f51fcd9a8a264a06e136985" + integrity sha512-8xoiseoWDKuCVnWP8jHthgaeobDLolh00KJAdMe9XPrWPuf1by732jSpgy2BlsLTaT9m32pHI8CRfrOqQzHv3A== + dependencies: + "@algolia/logger-common" "4.23.3" + +"@algolia/recommend@4.23.3": + version "4.23.3" + resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-4.23.3.tgz#53d4f194d22d9c72dc05f3f7514c5878f87c5890" + integrity sha512-9fK4nXZF0bFkdcLBRDexsnGzVmu4TSYZqxdpgBW2tEyfuSSY54D4qSRkLmNkrrz4YFvdh2GM1gA8vSsnZPR73w== + dependencies: + "@algolia/cache-browser-local-storage" "4.23.3" + "@algolia/cache-common" "4.23.3" + "@algolia/cache-in-memory" "4.23.3" + "@algolia/client-common" "4.23.3" + "@algolia/client-search" "4.23.3" + "@algolia/logger-common" "4.23.3" + "@algolia/logger-console" "4.23.3" + "@algolia/requester-browser-xhr" "4.23.3" + "@algolia/requester-common" "4.23.3" + "@algolia/requester-node-http" "4.23.3" + "@algolia/transporter" "4.23.3" + +"@algolia/requester-browser-xhr@4.23.3": + version "4.23.3" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.23.3.tgz#9e47e76f60d540acc8b27b4ebc7a80d1b41938b9" + integrity sha512-jDWGIQ96BhXbmONAQsasIpTYWslyjkiGu0Quydjlowe+ciqySpiDUrJHERIRfELE5+wFc7hc1Q5hqjGoV7yghw== + dependencies: + "@algolia/requester-common" "4.23.3" + +"@algolia/requester-common@4.23.3": + version "4.23.3" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.23.3.tgz#7dbae896e41adfaaf1d1fa5f317f83a99afb04b3" + integrity sha512-xloIdr/bedtYEGcXCiF2muajyvRhwop4cMZo+K2qzNht0CMzlRkm8YsDdj5IaBhshqfgmBb3rTg4sL4/PpvLYw== + +"@algolia/requester-node-http@4.23.3": + version "4.23.3" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.23.3.tgz#c9f94a5cb96a15f48cea338ab6ef16bbd0ff989f" + integrity sha512-zgu++8Uj03IWDEJM3fuNl34s746JnZOWn1Uz5taV1dFyJhVM/kTNw9Ik7YJWiUNHJQXcaD8IXD1eCb0nq/aByA== + dependencies: + "@algolia/requester-common" "4.23.3" + +"@algolia/transporter@4.23.3": + version "4.23.3" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.23.3.tgz#545b045b67db3850ddf0bbecbc6c84ff1f3398b7" + integrity sha512-Wjl5gttqnf/gQKJA+dafnD0Y6Yw97yvfY8R9h0dQltX1GXTgNs1zWgvtWW0tHl1EgMdhAyw189uWiZMnL3QebQ== + dependencies: + "@algolia/cache-common" "4.23.3" + "@algolia/logger-common" "4.23.3" + "@algolia/requester-common" "4.23.3" + +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.24.6", "@babel/code-frame@^7.8.3": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.6.tgz#ab88da19344445c3d8889af2216606d3329f3ef2" + integrity sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA== + dependencies: + "@babel/highlight" "^7.24.6" + picocolors "^1.0.0" + +"@babel/code-frame@^7.10.4": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== + dependencies: + "@babel/highlight" "^7.24.7" + picocolors "^1.0.0" + +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.6.tgz#b3600217688cabb26e25f8e467019e66d71b7ae2" + integrity sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ== + +"@babel/core@^7.21.3", "@babel/core@^7.23.3": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.6.tgz#8650e0e4b03589ebe886c4e4a60398db0a7ec787" + integrity sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.6" + "@babel/generator" "^7.24.6" + "@babel/helper-compilation-targets" "^7.24.6" + "@babel/helper-module-transforms" "^7.24.6" + "@babel/helpers" "^7.24.6" + "@babel/parser" "^7.24.6" + "@babel/template" "^7.24.6" + "@babel/traverse" "^7.24.6" + "@babel/types" "^7.24.6" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.23.3", "@babel/generator@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.6.tgz#dfac82a228582a9d30c959fe50ad28951d4737a7" + integrity sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg== + dependencies: + "@babel/types" "^7.24.6" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz#517af93abc77924f9b2514c407bbef527fb8938d" + integrity sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.6.tgz#19e9089ee87b0d0928012c83961a8deef4b0223f" + integrity sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz#4a51d681f7680043d38e212715e2a7b1ad29cb51" + integrity sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg== + dependencies: + "@babel/compat-data" "^7.24.6" + "@babel/helper-validator-option" "^7.24.6" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.6.tgz#c50b86fa1c4ca9b7a890dc21884f097b6c4b5286" + integrity sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-function-name" "^7.24.6" + "@babel/helper-member-expression-to-functions" "^7.24.6" + "@babel/helper-optimise-call-expression" "^7.24.6" + "@babel/helper-replace-supers" "^7.24.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.6" + "@babel/helper-split-export-declaration" "^7.24.6" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.6.tgz#47d382dec0d49e74ca1b6f7f3b81f5968022a3c8" + integrity sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.6" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.1", "@babel/helper-define-polyfill-provider@^0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz#18594f789c3594acb24cfdb4a7f7b7d2e8bd912d" + integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-environment-visitor@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz#ac7ad5517821641550f6698dd5468f8cef78620d" + integrity sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g== + +"@babel/helper-function-name@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz#cebdd063386fdb95d511d84b117e51fc68fec0c8" + integrity sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w== + dependencies: + "@babel/template" "^7.24.6" + "@babel/types" "^7.24.6" + +"@babel/helper-hoist-variables@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz#8a7ece8c26756826b6ffcdd0e3cf65de275af7f9" + integrity sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-member-expression-to-functions@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.6.tgz#86084f3e0e4e2169a134754df3870bc7784db71e" + integrity sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-module-imports@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz#65e54ffceed6a268dc4ce11f0433b82cfff57852" + integrity sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-module-transforms@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz#22346ed9df44ce84dee850d7433c5b73fab1fe4e" + integrity sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA== + dependencies: + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-module-imports" "^7.24.6" + "@babel/helper-simple-access" "^7.24.6" + "@babel/helper-split-export-declaration" "^7.24.6" + "@babel/helper-validator-identifier" "^7.24.6" + +"@babel/helper-optimise-call-expression@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.6.tgz#f7836e3ccca3dfa02f15d2bc8b794efe75a5256e" + integrity sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.6", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz#fa02a32410a15a6e8f8185bcbf608f10528d2a24" + integrity sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg== + +"@babel/helper-remap-async-to-generator@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.6.tgz#c96ceb9846e877d806ce82a1521230ea7e0fc354" + integrity sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-wrap-function" "^7.24.6" + +"@babel/helper-replace-supers@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.6.tgz#3ea87405a2986a49ab052d10e540fe036d747c71" + integrity sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ== + dependencies: + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-member-expression-to-functions" "^7.24.6" + "@babel/helper-optimise-call-expression" "^7.24.6" + +"@babel/helper-simple-access@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz#1d6e04d468bba4fc963b4906f6dac6286cfedff1" + integrity sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-skip-transparent-expression-wrappers@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.6.tgz#c47e9b33b7ea50d1073e125ebc26661717cb7040" + integrity sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-split-export-declaration@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz#e830068f7ba8861c53b7421c284da30ae656d7a3" + integrity sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw== + dependencies: + "@babel/types" "^7.24.6" + +"@babel/helper-string-parser@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz#28583c28b15f2a3339cfafafeaad42f9a0e828df" + integrity sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q== + +"@babel/helper-validator-identifier@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz#08bb6612b11bdec78f3feed3db196da682454a5e" + integrity sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw== + +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + +"@babel/helper-validator-option@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz#59d8e81c40b7d9109ab7e74457393442177f460a" + integrity sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ== + +"@babel/helper-wrap-function@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.24.6.tgz#c27af1006e310683fdc76b668a0a1f6003e36217" + integrity sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ== + dependencies: + "@babel/helper-function-name" "^7.24.6" + "@babel/template" "^7.24.6" + "@babel/types" "^7.24.6" + +"@babel/helpers@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.6.tgz#cd124245299e494bd4e00edda0e4ea3545c2c176" + integrity sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA== + dependencies: + "@babel/template" "^7.24.6" + "@babel/types" "^7.24.6" + +"@babel/highlight@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.6.tgz#6d610c1ebd2c6e061cade0153bf69b0590b7b3df" + integrity sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ== + dependencies: + "@babel/helper-validator-identifier" "^7.24.6" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.6.tgz#5e030f440c3c6c78d195528c3b688b101a365328" + integrity sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q== + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6.tgz#283a74ef365b1e954cda6b2724c678a978215e88" + integrity sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw== + dependencies: + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6.tgz#f9f5ae4d6fb72f5950262cb6f0b2482c3bc684ef" + integrity sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6.tgz#ab9be6edfffa127bd5ec4317c76c5af0f8fc7e6c" + integrity sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.6" + "@babel/plugin-transform-optional-chaining" "^7.24.6" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6.tgz#0faf879249ec622d7f1c42eaebf7d11197401b2c" + integrity sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ== + dependencies: + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-assertions@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.6.tgz#52521c1c1698fc2dd9cf88f7a4dd86d4d041b9e1" + integrity sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-syntax-import-attributes@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.6.tgz#12aba325534129584672920274fefa4dc2d5f68e" + integrity sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.6.tgz#bcca2964150437f88f65e3679e3d68762287b9c8" + integrity sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.6.tgz#769daf2982d60308bc83d8936eaecb7582463c87" + integrity sha512-TzCtxGgVTEJWWwcYwQhCIQ6WaKlo80/B+Onsk4RRCcYqpYGFcG9etPW94VToGte5AAcxRrhjPUFvUS3Y2qKi4A== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.6.tgz#93607d1ef5b81c70af174aff3532d57216367492" + integrity sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-async-generator-functions@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.6.tgz#fa4a9e5c3a7f60f697ba36587b6c41b04f507d84" + integrity sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA== + dependencies: + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-remap-async-to-generator" "^7.24.6" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-transform-async-to-generator@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.6.tgz#eb11434b11d73d8c0cf9f71a6f4f1e6ba441df35" + integrity sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g== + dependencies: + "@babel/helper-module-imports" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-remap-async-to-generator" "^7.24.6" + +"@babel/plugin-transform-block-scoped-functions@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.6.tgz#975555b5bfa9870b1218da536d1528735f1f8c56" + integrity sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-block-scoping@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.6.tgz#a03ec8a4591c2b43cf7798bc633e698293fda179" + integrity sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-class-properties@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.6.tgz#d9f394e97e88ef905d5a1e5e7a16238621b7982e" + integrity sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-class-static-block@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.6.tgz#f43f29286f6f0dca33d18fd5033b817d6c3fa816" + integrity sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.6.tgz#0cc198c02720d4eeb091004843477659c6b37977" + integrity sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-compilation-targets" "^7.24.6" + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-function-name" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-replace-supers" "^7.24.6" + "@babel/helper-split-export-declaration" "^7.24.6" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.6.tgz#7a1765c01cdfe59c320d2d0f37a4dc4aecd14df1" + integrity sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/template" "^7.24.6" + +"@babel/plugin-transform-destructuring@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.6.tgz#bdd1a6c90ffb2bfd13b6007b13316eeafc97cb53" + integrity sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-dotall-regex@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.6.tgz#5a6b3148ec5f4f274ff48cebea90565087cad126" + integrity sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-duplicate-keys@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.6.tgz#2716301227cf7cd4fdadcbe4353ce191f8b3dc8a" + integrity sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-dynamic-import@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.6.tgz#b477177761d56b15a4ba42a83be31cf72d757acf" + integrity sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.6.tgz#011e9e1a429f91b024af572530873ca571f9ef06" + integrity sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-export-namespace-from@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.6.tgz#b64ded74d9afb3db5d47d93996c4df69f15ac97c" + integrity sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.6.tgz#7f31780bd0c582b546372c0c0da9d9d56731e0a2" + integrity sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.6" + +"@babel/plugin-transform-function-name@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.6.tgz#60d1de3f6fd816a3e3bf9538578a64527e1b9c97" + integrity sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q== + dependencies: + "@babel/helper-compilation-targets" "^7.24.6" + "@babel/helper-function-name" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-json-strings@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.6.tgz#a84639180ea1f9001bb5e6dc01921235ab05ad8b" + integrity sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.6.tgz#7f44f2871d7a4456030b0540858046f0b7bc6b18" + integrity sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-logical-assignment-operators@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.6.tgz#9cc7baa5629866566562c159dc1eae7569810f33" + integrity sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.6.tgz#5d3681ca201ac6909419cc51ac082a6ba4c5c756" + integrity sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-modules-amd@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.6.tgz#09aeac7acb7913496aaaafdc64f40683e0db7e41" + integrity sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ== + dependencies: + "@babel/helper-module-transforms" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-modules-commonjs@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.6.tgz#1b8269902f25bd91ca6427230d4735ddd1e1283e" + integrity sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw== + dependencies: + "@babel/helper-module-transforms" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-simple-access" "^7.24.6" + +"@babel/plugin-transform-modules-systemjs@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.6.tgz#c54eb53fe16f9b82d320abd76762d0320e3f9393" + integrity sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w== + dependencies: + "@babel/helper-hoist-variables" "^7.24.6" + "@babel/helper-module-transforms" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-validator-identifier" "^7.24.6" + +"@babel/plugin-transform-modules-umd@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.6.tgz#c4ef8b6d4da230b8dc87e81cd66986728952f89b" + integrity sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg== + dependencies: + "@babel/helper-module-transforms" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.6.tgz#352ee2861ab8705320029f80238cf26a92ba65d5" + integrity sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-new-target@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.6.tgz#fc024294714705113720d5e3dc0f9ad7abdbc289" + integrity sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.6.tgz#12b83b3cdfd1cd2066350e36e4fb912ab194545e" + integrity sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.6.tgz#d9115669cc85aa91fbfb15f88f2226332cf4946a" + integrity sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.6.tgz#68d763f69955f9e599c405c6c876f5be46b47d8a" + integrity sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg== + dependencies: + "@babel/helper-compilation-targets" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.24.6" + +"@babel/plugin-transform-object-super@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.6.tgz#9cbe6f995bed343a7ab8daf0416dac057a9c3e27" + integrity sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-replace-supers" "^7.24.6" + +"@babel/plugin-transform-optional-catch-binding@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.6.tgz#c81e90a971aad898e56f2b75a358e6c4855aeba3" + integrity sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.6.tgz#3d636b3ed8b5a506f93e4d4675fc95754d7594f5" + integrity sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.6" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.6.tgz#7aee86dfedd2fc0136fecbe6f7649fc02d86ab22" + integrity sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-private-methods@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.6.tgz#258e1f859a52ff7b30ad556598224c192defcda7" + integrity sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-private-property-in-object@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.6.tgz#59ff09a099f62213112cf348e96b6b11957d1f28" + integrity sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-create-class-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.6.tgz#243c4faabe811c405e9443059a58e834bf95dfd1" + integrity sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-react-constant-elements@^7.21.3": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.6.tgz#628c52aecfb2beca1e6383ce2c5b6722df3ff311" + integrity sha512-vQfyXRtG/kNIcTYRd/49uJnwvMig9X3R4XsTVXRml2RFupZFY+2RDuK+/ymb+MfX2WuIHAgUZc2xEvQrnI7QCg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-react-display-name@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.6.tgz#2a10c732c2c87a8f06e4413fb4a14e76e6c67a99" + integrity sha512-/3iiEEHDsJuj9QU09gbyWGSUxDboFcD7Nj6dnHIlboWSodxXAoaY/zlNMHeYAC0WsERMqgO9a7UaM77CsYgWcg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-react-jsx-development@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.6.tgz#e662058e8795b5fccd24c5bdd2b328728aef3305" + integrity sha512-F7EsNp5StNDouSSdYyDSxh4J+xvj/JqG+Cb6s2fA+jCyHOzigG5vTwgH8tU2U8Voyiu5zCG9bAK49wTr/wPH0w== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.24.6" + +"@babel/plugin-transform-react-jsx@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.6.tgz#4ca3660ca663d20095455571615d6263986cdfe4" + integrity sha512-pCtPHhpRZHfwdA5G1Gpk5mIzMA99hv0R8S/Ket50Rw+S+8hkt3wBWqdqHaPw0CuUYxdshUgsPiLQ5fAs4ASMhw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-module-imports" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-jsx" "^7.24.6" + "@babel/types" "^7.24.6" + +"@babel/plugin-transform-react-pure-annotations@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.6.tgz#d2bad8d70c3635cb63a69ee66c9c891f9392435c" + integrity sha512-0HoDQlFJJkXRyV2N+xOpUETbKHcouSwijRQbKWVtxsPoq5bbB30qZag9/pSc5xcWVYjTHlLsBsY+hZDnzQTPNw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-regenerator@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.6.tgz#ed10cf0c13619365e15459f88d1b915ac57ffc24" + integrity sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.6.tgz#9eb16cbf339fcea0a46677716c775afb5ef14245" + integrity sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-runtime@^7.22.9": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.6.tgz#1e3256246004c3724b8e07c7cb25e35913c4e373" + integrity sha512-W3gQydMb0SY99y/2lV0Okx2xg/8KzmZLQsLaiCmwNRl1kKomz14VurEm+2TossUb+sRvBCnGe+wx8KtIgDtBbQ== + dependencies: + "@babel/helper-module-imports" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.1" + babel-plugin-polyfill-regenerator "^0.6.1" + semver "^6.3.1" + +"@babel/plugin-transform-shorthand-properties@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.6.tgz#ef734ebccc428d2174c7bb36015d0800faf5381e" + integrity sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-spread@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.6.tgz#a56cecbd8617675531d1b79f5b755b7613aa0822" + integrity sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.6" + +"@babel/plugin-transform-sticky-regex@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.6.tgz#1a78127731fea87d954bed193840986a38f04327" + integrity sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-template-literals@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.6.tgz#aaf2ae157acd0e5c9265dba8ac0a439f8d2a6303" + integrity sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-typeof-symbol@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.6.tgz#3d02da23ebcc8f1982ddcd1f2581cf3ee4e58762" + integrity sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-typescript@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.6.tgz#339c6127a783c32e28a5b591e6c666f899b57db0" + integrity sha512-H0i+hDLmaYYSt6KU9cZE0gb3Cbssa/oxWis7PX4ofQzbvsfix9Lbh8SRk7LCPDlLWJHUiFeHU0qRRpF/4Zv7mQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.6" + "@babel/helper-create-class-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/plugin-syntax-typescript" "^7.24.6" + +"@babel/plugin-transform-unicode-escapes@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.6.tgz#c8ddca8fd5bacece837a4e27bd3b7ed64580d1a8" + integrity sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-unicode-property-regex@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.6.tgz#e66297d5d452db0b0be56515e3d0e10b7d33fb32" + integrity sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-unicode-regex@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.6.tgz#2001e7d87ed709eea145e0b65fb5f93c3c0e225b" + integrity sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/plugin-transform-unicode-sets-regex@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.6.tgz#f18b7292222aee85c155258ceb345a146a070a46" + integrity sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + +"@babel/preset-env@^7.20.2", "@babel/preset-env@^7.22.9": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.24.6.tgz#a5a55bc70e5ff1ed7f872067e2a9d65ff917ad6f" + integrity sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg== + dependencies: + "@babel/compat-data" "^7.24.6" + "@babel/helper-compilation-targets" "^7.24.6" + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-validator-option" "^7.24.6" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.24.6" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.24.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.6" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.24.6" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.24.6" + "@babel/plugin-syntax-import-attributes" "^7.24.6" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.24.6" + "@babel/plugin-transform-async-generator-functions" "^7.24.6" + "@babel/plugin-transform-async-to-generator" "^7.24.6" + "@babel/plugin-transform-block-scoped-functions" "^7.24.6" + "@babel/plugin-transform-block-scoping" "^7.24.6" + "@babel/plugin-transform-class-properties" "^7.24.6" + "@babel/plugin-transform-class-static-block" "^7.24.6" + "@babel/plugin-transform-classes" "^7.24.6" + "@babel/plugin-transform-computed-properties" "^7.24.6" + "@babel/plugin-transform-destructuring" "^7.24.6" + "@babel/plugin-transform-dotall-regex" "^7.24.6" + "@babel/plugin-transform-duplicate-keys" "^7.24.6" + "@babel/plugin-transform-dynamic-import" "^7.24.6" + "@babel/plugin-transform-exponentiation-operator" "^7.24.6" + "@babel/plugin-transform-export-namespace-from" "^7.24.6" + "@babel/plugin-transform-for-of" "^7.24.6" + "@babel/plugin-transform-function-name" "^7.24.6" + "@babel/plugin-transform-json-strings" "^7.24.6" + "@babel/plugin-transform-literals" "^7.24.6" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.6" + "@babel/plugin-transform-member-expression-literals" "^7.24.6" + "@babel/plugin-transform-modules-amd" "^7.24.6" + "@babel/plugin-transform-modules-commonjs" "^7.24.6" + "@babel/plugin-transform-modules-systemjs" "^7.24.6" + "@babel/plugin-transform-modules-umd" "^7.24.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.24.6" + "@babel/plugin-transform-new-target" "^7.24.6" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.6" + "@babel/plugin-transform-numeric-separator" "^7.24.6" + "@babel/plugin-transform-object-rest-spread" "^7.24.6" + "@babel/plugin-transform-object-super" "^7.24.6" + "@babel/plugin-transform-optional-catch-binding" "^7.24.6" + "@babel/plugin-transform-optional-chaining" "^7.24.6" + "@babel/plugin-transform-parameters" "^7.24.6" + "@babel/plugin-transform-private-methods" "^7.24.6" + "@babel/plugin-transform-private-property-in-object" "^7.24.6" + "@babel/plugin-transform-property-literals" "^7.24.6" + "@babel/plugin-transform-regenerator" "^7.24.6" + "@babel/plugin-transform-reserved-words" "^7.24.6" + "@babel/plugin-transform-shorthand-properties" "^7.24.6" + "@babel/plugin-transform-spread" "^7.24.6" + "@babel/plugin-transform-sticky-regex" "^7.24.6" + "@babel/plugin-transform-template-literals" "^7.24.6" + "@babel/plugin-transform-typeof-symbol" "^7.24.6" + "@babel/plugin-transform-unicode-escapes" "^7.24.6" + "@babel/plugin-transform-unicode-property-regex" "^7.24.6" + "@babel/plugin-transform-unicode-regex" "^7.24.6" + "@babel/plugin-transform-unicode-sets-regex" "^7.24.6" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.4" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.18.6", "@babel/preset-react@^7.22.5": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.24.6.tgz#92eace66dce577e5263113eb82235a0d45096cae" + integrity sha512-8mpzh1bWvmINmwM3xpz6ahu57mNaWavMm+wBNjQ4AFu1nghKBiIRET7l/Wmj4drXany/BBGjJZngICcD98F1iw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-validator-option" "^7.24.6" + "@babel/plugin-transform-react-display-name" "^7.24.6" + "@babel/plugin-transform-react-jsx" "^7.24.6" + "@babel/plugin-transform-react-jsx-development" "^7.24.6" + "@babel/plugin-transform-react-pure-annotations" "^7.24.6" + +"@babel/preset-typescript@^7.21.0", "@babel/preset-typescript@^7.22.5": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.6.tgz#27057470fb981c31338bdb897fc3d9aa0cb7dab2" + integrity sha512-U10aHPDnokCFRXgyT/MaIRTivUu2K/mu0vJlwRS9LxJmJet+PFQNKpggPyFCUtC6zWSBPjvxjnpNkAn3Uw2m5w== + dependencies: + "@babel/helper-plugin-utils" "^7.24.6" + "@babel/helper-validator-option" "^7.24.6" + "@babel/plugin-syntax-jsx" "^7.24.6" + "@babel/plugin-transform-modules-commonjs" "^7.24.6" + "@babel/plugin-transform-typescript" "^7.24.6" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime-corejs3@^7.22.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.24.6.tgz#0992564ee78234639ba2ed711b93d25586727272" + integrity sha512-tbC3o8uHK9xMgMsvUm9qGqxVpbv6yborMBLbDteHIc7JDNHsTV0vDMQ5j1O1NXvO+BDELtL9KgoWYaUVIVGt8w== + dependencies: + core-js-pure "^3.30.2" + regenerator-runtime "^0.14.0" + +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.22.6", "@babel/runtime@^7.24.1", "@babel/runtime@^7.8.4": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.6.tgz#5b76eb89ad45e2e4a0a8db54c456251469a3358e" + integrity sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/runtime@^7.21.0": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.4.tgz#6ef37d678428306e7d75f054d5b1bdb8cf8aa8ee" + integrity sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/runtime@^7.9.2": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.7.tgz#f4f0d5530e8dbdf59b3451b9b3e594b6ba082e12" + integrity sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.6.tgz#048c347b2787a6072b24c723664c8d02b67a44f9" + integrity sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw== + dependencies: + "@babel/code-frame" "^7.24.6" + "@babel/parser" "^7.24.6" + "@babel/types" "^7.24.6" + +"@babel/traverse@^7.22.8", "@babel/traverse@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.6.tgz#0941ec50cdeaeacad0911eb67ae227a4f8424edc" + integrity sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw== + dependencies: + "@babel/code-frame" "^7.24.6" + "@babel/generator" "^7.24.6" + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-function-name" "^7.24.6" + "@babel/helper-hoist-variables" "^7.24.6" + "@babel/helper-split-export-declaration" "^7.24.6" + "@babel/parser" "^7.24.6" + "@babel/types" "^7.24.6" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.21.3", "@babel/types@^7.24.6", "@babel/types@^7.4.4": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.6.tgz#ba4e1f59870c10dc2fa95a274ac4feec23b21912" + integrity sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ== + dependencies: + "@babel/helper-string-parser" "^7.24.6" + "@babel/helper-validator-identifier" "^7.24.6" + to-fast-properties "^2.0.0" + +"@braintree/sanitize-url@^6.0.1": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz#923ca57e173c6b232bbbb07347b1be982f03e783" + integrity sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A== + +"@code-hike/lighter@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@code-hike/lighter/-/lighter-0.7.0.tgz#7bb7d59631237d7d2e82434c3ea6fe1875813cb0" + integrity sha512-64O07rIORKQLB+5T/GKAmKcD9sC0N9yHFJXa0Hs+0Aee1G+I4bSXxTccuDFP6c/G/3h5Pk7yv7PoX9/SpzaeiQ== + +"@code-hike/mdx@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@code-hike/mdx/-/mdx-0.9.0.tgz#fe592887dc91b46374d9f7c176eb07e65fd9e2e3" + integrity sha512-0wg68ZCjVWAkWT4gBUZJ8Mwktjen/XeWyqBQCrhA2IZSbZZnMYsEI6JJEFb/nZoNI3comB3JdxPLykZRq3qT2A== + dependencies: + "@code-hike/lighter" "0.7.0" + node-fetch "^2.0.0" + +"@codemirror/autocomplete@^6.0.0", "@codemirror/autocomplete@^6.12.0": + version "6.16.2" + resolved "https://registry.yarnpkg.com/@codemirror/autocomplete/-/autocomplete-6.16.2.tgz#ac4e191cd599503e45f35e97366b432d30b8f37a" + integrity sha512-MjfDrHy0gHKlPWsvSsikhO1+BOh+eBHNgfH1OXs1+DAf30IonQldgMM3kxLDTG9ktE7kDLaA1j/l7KMPA4KNfw== + dependencies: + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.17.0" + "@lezer/common" "^1.0.0" + +"@codemirror/commands@^6.0.0", "@codemirror/commands@^6.3.3": + version "6.6.0" + resolved "https://registry.yarnpkg.com/@codemirror/commands/-/commands-6.6.0.tgz#d308f143fe1b8896ca25fdb855f66acdaf019dd4" + integrity sha512-qnY+b7j1UNcTS31Eenuc/5YJB6gQOzkUoNmJQc0rznwqSRpeaWWpjkWy2C/MPTcePpsKJEM26hXrOXl1+nceXg== + dependencies: + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.4.0" + "@codemirror/view" "^6.27.0" + "@lezer/common" "^1.1.0" + +"@codemirror/lang-css@^6.0.0", "@codemirror/lang-css@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@codemirror/lang-css/-/lang-css-6.2.1.tgz#5dc0a43b8e3c31f6af7aabd55ff07fe9aef2a227" + integrity sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@lezer/common" "^1.0.2" + "@lezer/css" "^1.0.0" + +"@codemirror/lang-html@^6.4.8": + version "6.4.9" + resolved "https://registry.yarnpkg.com/@codemirror/lang-html/-/lang-html-6.4.9.tgz#d586f2cc9c341391ae07d1d7c545990dfa069727" + integrity sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/lang-css" "^6.0.0" + "@codemirror/lang-javascript" "^6.0.0" + "@codemirror/language" "^6.4.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.17.0" + "@lezer/common" "^1.0.0" + "@lezer/css" "^1.1.0" + "@lezer/html" "^1.3.0" + +"@codemirror/lang-javascript@^6.0.0": + version "6.2.2" + resolved "https://registry.yarnpkg.com/@codemirror/lang-javascript/-/lang-javascript-6.2.2.tgz#7141090b22994bef85bcc5608a3bc1257f2db2ad" + integrity sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/language" "^6.6.0" + "@codemirror/lint" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.17.0" + "@lezer/common" "^1.0.0" + "@lezer/javascript" "^1.0.0" + +"@codemirror/lang-json@^6.0.0": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@codemirror/lang-json/-/lang-json-6.0.1.tgz#0a0be701a5619c4b0f8991f9b5e95fe33f462330" + integrity sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ== + dependencies: + "@codemirror/language" "^6.0.0" + "@lezer/json" "^1.0.0" + +"@codemirror/lang-yaml@^6.0.0": + version "6.1.1" + resolved "https://registry.yarnpkg.com/@codemirror/lang-yaml/-/lang-yaml-6.1.1.tgz#6f6e4e16c5a4e6d549f462c9dc2053439e070d0d" + integrity sha512-HV2NzbK9bbVnjWxwObuZh5FuPCowx51mEfoFT9y3y+M37fA3+pbxx4I7uePuygFzDsAmCTwQSc/kXh/flab4uw== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.2.0" + "@lezer/yaml" "^1.0.0" + +"@codemirror/language@^6.0.0", "@codemirror/language@^6.10.1", "@codemirror/language@^6.4.0", "@codemirror/language@^6.6.0": + version "6.10.2" + resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-6.10.2.tgz#4056dc219619627ffe995832eeb09cea6060be61" + integrity sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.23.0" + "@lezer/common" "^1.1.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + style-mod "^4.0.0" + +"@codemirror/lint@^6.0.0": + version "6.8.0" + resolved "https://registry.yarnpkg.com/@codemirror/lint/-/lint-6.8.0.tgz#cf9067c7041c1f6c9f20bab411dac9323aab54f0" + integrity sha512-lsFofvaw0lnPRJlQylNsC4IRt/1lI4OD/yYslrSGVndOJfStc58v+8p9dgGiD90ktOfL7OhBWns1ZETYgz0EJA== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + crelt "^1.0.5" + +"@codemirror/search@^6.0.0": + version "6.5.6" + resolved "https://registry.yarnpkg.com/@codemirror/search/-/search-6.5.6.tgz#8f858b9e678d675869112e475f082d1e8488db93" + integrity sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + crelt "^1.0.5" + +"@codemirror/state@^6.0.0", "@codemirror/state@^6.4.0": + version "6.4.1" + resolved "https://registry.yarnpkg.com/@codemirror/state/-/state-6.4.1.tgz#da57143695c056d9a3c38705ed34136e2b68171b" + integrity sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A== + +"@codemirror/view@^6.0.0", "@codemirror/view@^6.17.0", "@codemirror/view@^6.23.0", "@codemirror/view@^6.23.1", "@codemirror/view@^6.27.0": + version "6.27.0" + resolved "https://registry.yarnpkg.com/@codemirror/view/-/view-6.27.0.tgz#829882b171106bc50b4f17b7e5d2f7277832c92f" + integrity sha512-8kqX1sHbVW1lVzWwrjAbh4dR7eKhV8eIQ952JKaBXOoXE04WncoqCy4DMU701LSrPZ3N2Q4zsTawz7GQ+2mrUw== + dependencies: + "@codemirror/state" "^6.4.0" + style-mod "^4.1.0" + w3c-keyname "^2.2.4" + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@discoveryjs/json-ext@0.5.7": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + +"@docsearch/css@3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.6.0.tgz#0e9f56f704b3a34d044d15fd9962ebc1536ba4fb" + integrity sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ== + +"@docsearch/css@3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.6.1.tgz#f0a728ecb486c81f2d282650fc1820c914913408" + integrity sha512-VtVb5DS+0hRIprU2CO6ZQjK2Zg4QU5HrDM1+ix6rT0umsYvFvatMAnf97NHZlVWDaaLlx7GRfR/7FikANiM2Fg== + +"@docsearch/js@^3.6.0": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.6.1.tgz#aaf6c6427371a53c1cd46b2ed08b9c353e5cd02d" + integrity sha512-erI3RRZurDr1xES5hvYJ3Imp7jtrXj6f1xYIzDzxiS7nNBufYWPbJwrmMqWC5g9y165PmxEmN9pklGCdLi0Iqg== + dependencies: + "@docsearch/react" "3.6.1" + preact "^10.0.0" + +"@docsearch/react@3.6.1", "@docsearch/react@^3.6.0": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.6.1.tgz#0f826df08693293806d64277d6d9c38636211b97" + integrity sha512-qXZkEPvybVhSXj0K7U3bXc233tk5e8PfhoZ6MhPOiik/qUQxYC+Dn9DnoS7CxHQQhHfCvTiN0eY9M12oRghEXw== + dependencies: + "@algolia/autocomplete-core" "1.9.3" + "@algolia/autocomplete-preset-algolia" "1.9.3" + "@docsearch/css" "3.6.1" + algoliasearch "^4.19.1" + +"@docsearch/react@^3.5.2": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.6.0.tgz#b4f25228ecb7fc473741aefac592121e86dd2958" + integrity sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w== + dependencies: + "@algolia/autocomplete-core" "1.9.3" + "@algolia/autocomplete-preset-algolia" "1.9.3" + "@docsearch/css" "3.6.0" + algoliasearch "^4.19.1" + +"@docusaurus/core@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.4.0.tgz#bdbf1af4b2f25d1bf4a5b62ec6137d84c821cb3c" + integrity sha512-g+0wwmN2UJsBqy2fQRQ6fhXruoEa62JDeEa5d8IdTJlMoaDaEDfHh7WjwGRn4opuTQWpjAwP/fbcgyHKlE+64w== + dependencies: + "@babel/core" "^7.23.3" + "@babel/generator" "^7.23.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-runtime" "^7.22.9" + "@babel/preset-env" "^7.22.9" + "@babel/preset-react" "^7.22.5" + "@babel/preset-typescript" "^7.22.5" + "@babel/runtime" "^7.22.6" + "@babel/runtime-corejs3" "^7.22.6" + "@babel/traverse" "^7.22.8" + "@docusaurus/cssnano-preset" "3.4.0" + "@docusaurus/logger" "3.4.0" + "@docusaurus/mdx-loader" "3.4.0" + "@docusaurus/utils" "3.4.0" + "@docusaurus/utils-common" "3.4.0" + "@docusaurus/utils-validation" "3.4.0" + autoprefixer "^10.4.14" + babel-loader "^9.1.3" + babel-plugin-dynamic-import-node "^2.3.3" + boxen "^6.2.1" + chalk "^4.1.2" + chokidar "^3.5.3" + clean-css "^5.3.2" + cli-table3 "^0.6.3" + combine-promises "^1.1.0" + commander "^5.1.0" + copy-webpack-plugin "^11.0.0" + core-js "^3.31.1" + css-loader "^6.8.1" + css-minimizer-webpack-plugin "^5.0.1" + cssnano "^6.1.2" + del "^6.1.1" + detect-port "^1.5.1" + escape-html "^1.0.3" + eta "^2.2.0" + eval "^0.1.8" + file-loader "^6.2.0" + fs-extra "^11.1.1" + html-minifier-terser "^7.2.0" + html-tags "^3.3.1" + html-webpack-plugin "^5.5.3" + leven "^3.1.0" + lodash "^4.17.21" + mini-css-extract-plugin "^2.7.6" + p-map "^4.0.0" + postcss "^8.4.26" + postcss-loader "^7.3.3" + prompts "^2.4.2" + react-dev-utils "^12.0.1" + react-helmet-async "^1.3.0" + react-loadable "npm:@docusaurus/react-loadable@6.0.0" + react-loadable-ssr-addon-v5-slorber "^1.0.1" + react-router "^5.3.4" + react-router-config "^5.1.1" + react-router-dom "^5.3.4" + rtl-detect "^1.0.4" + semver "^7.5.4" + serve-handler "^6.1.5" + shelljs "^0.8.5" + terser-webpack-plugin "^5.3.9" + tslib "^2.6.0" + update-notifier "^6.0.2" + url-loader "^4.1.1" + webpack "^5.88.1" + webpack-bundle-analyzer "^4.9.0" + webpack-dev-server "^4.15.1" + webpack-merge "^5.9.0" + webpackbar "^5.0.2" + +"@docusaurus/cssnano-preset@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.4.0.tgz#dc7922b3bbeabcefc9b60d0161680d81cf72c368" + integrity sha512-qwLFSz6v/pZHy/UP32IrprmH5ORce86BGtN0eBtG75PpzQJAzp9gefspox+s8IEOr0oZKuQ/nhzZ3xwyc3jYJQ== + dependencies: + cssnano-preset-advanced "^6.1.2" + postcss "^8.4.38" + postcss-sort-media-queries "^5.2.0" + tslib "^2.6.0" + +"@docusaurus/logger@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.4.0.tgz#8b0ac05c7f3dac2009066e2f964dee8209a77403" + integrity sha512-bZwkX+9SJ8lB9kVRkXw+xvHYSMGG4bpYHKGXeXFvyVc79NMeeBSGgzd4TQLHH+DYeOJoCdl8flrFJVxlZ0wo/Q== + dependencies: + chalk "^4.1.2" + tslib "^2.6.0" + +"@docusaurus/mdx-loader@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.4.0.tgz#483d7ab57928fdbb5c8bd1678098721a930fc5f6" + integrity sha512-kSSbrrk4nTjf4d+wtBA9H+FGauf2gCax89kV8SUSJu3qaTdSIKdWERlngsiHaCFgZ7laTJ8a67UFf+xlFPtuTw== + dependencies: + "@docusaurus/logger" "3.4.0" + "@docusaurus/utils" "3.4.0" + "@docusaurus/utils-validation" "3.4.0" + "@mdx-js/mdx" "^3.0.0" + "@slorber/remark-comment" "^1.0.0" + escape-html "^1.0.3" + estree-util-value-to-estree "^3.0.1" + file-loader "^6.2.0" + fs-extra "^11.1.1" + image-size "^1.0.2" + mdast-util-mdx "^3.0.0" + mdast-util-to-string "^4.0.0" + rehype-raw "^7.0.0" + remark-directive "^3.0.0" + remark-emoji "^4.0.0" + remark-frontmatter "^5.0.0" + remark-gfm "^4.0.0" + stringify-object "^3.3.0" + tslib "^2.6.0" + unified "^11.0.3" + unist-util-visit "^5.0.0" + url-loader "^4.1.1" + vfile "^6.0.1" + webpack "^5.88.1" + +"@docusaurus/module-type-aliases@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.4.0.tgz#2653bde58fc1aa3dbc626a6c08cfb63a37ae1bb8" + integrity sha512-A1AyS8WF5Bkjnb8s+guTDuYmUiwJzNrtchebBHpc0gz0PyHJNMaybUlSrmJjHVcGrya0LKI4YcR3lBDQfXRYLw== + dependencies: + "@docusaurus/types" "3.4.0" + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router-config" "*" + "@types/react-router-dom" "*" + react-helmet-async "*" + react-loadable "npm:@docusaurus/react-loadable@6.0.0" + +"@docusaurus/plugin-content-blog@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.4.0.tgz#6373632fdbababbda73a13c4a08f907d7de8f007" + integrity sha512-vv6ZAj78ibR5Jh7XBUT4ndIjmlAxkijM3Sx5MAAzC1gyv0vupDQNhzuFg1USQmQVj3P5I6bquk12etPV3LJ+Xw== + dependencies: + "@docusaurus/core" "3.4.0" + "@docusaurus/logger" "3.4.0" + "@docusaurus/mdx-loader" "3.4.0" + "@docusaurus/types" "3.4.0" + "@docusaurus/utils" "3.4.0" + "@docusaurus/utils-common" "3.4.0" + "@docusaurus/utils-validation" "3.4.0" + cheerio "^1.0.0-rc.12" + feed "^4.2.2" + fs-extra "^11.1.1" + lodash "^4.17.21" + reading-time "^1.5.0" + srcset "^4.0.0" + tslib "^2.6.0" + unist-util-visit "^5.0.0" + utility-types "^3.10.0" + webpack "^5.88.1" + +"@docusaurus/plugin-content-docs@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.4.0.tgz#3088973f72169a2a6d533afccec7153c8720d332" + integrity sha512-HkUCZffhBo7ocYheD9oZvMcDloRnGhBMOZRyVcAQRFmZPmNqSyISlXA1tQCIxW+r478fty97XXAGjNYzBjpCsg== + dependencies: + "@docusaurus/core" "3.4.0" + "@docusaurus/logger" "3.4.0" + "@docusaurus/mdx-loader" "3.4.0" + "@docusaurus/module-type-aliases" "3.4.0" + "@docusaurus/types" "3.4.0" + "@docusaurus/utils" "3.4.0" + "@docusaurus/utils-common" "3.4.0" + "@docusaurus/utils-validation" "3.4.0" + "@types/react-router-config" "^5.0.7" + combine-promises "^1.1.0" + fs-extra "^11.1.1" + js-yaml "^4.1.0" + lodash "^4.17.21" + tslib "^2.6.0" + utility-types "^3.10.0" + webpack "^5.88.1" + +"@docusaurus/plugin-content-pages@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.4.0.tgz#1846172ca0355c7d32a67ef8377750ce02bbb8ad" + integrity sha512-h2+VN/0JjpR8fIkDEAoadNjfR3oLzB+v1qSXbIAKjQ46JAHx3X22n9nqS+BWSQnTnp1AjkjSvZyJMekmcwxzxg== + dependencies: + "@docusaurus/core" "3.4.0" + "@docusaurus/mdx-loader" "3.4.0" + "@docusaurus/types" "3.4.0" + "@docusaurus/utils" "3.4.0" + "@docusaurus/utils-validation" "3.4.0" + fs-extra "^11.1.1" + tslib "^2.6.0" + webpack "^5.88.1" + +"@docusaurus/plugin-debug@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.4.0.tgz#74e4ec5686fa314c26f3ac150bacadbba7f06948" + integrity sha512-uV7FDUNXGyDSD3PwUaf5YijX91T5/H9SX4ErEcshzwgzWwBtK37nUWPU3ZLJfeTavX3fycTOqk9TglpOLaWkCg== + dependencies: + "@docusaurus/core" "3.4.0" + "@docusaurus/types" "3.4.0" + "@docusaurus/utils" "3.4.0" + fs-extra "^11.1.1" + react-json-view-lite "^1.2.0" + tslib "^2.6.0" + +"@docusaurus/plugin-google-analytics@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.4.0.tgz#5f59fc25329a59decc231936f6f9fb5663da3c55" + integrity sha512-mCArluxEGi3cmYHqsgpGGt3IyLCrFBxPsxNZ56Mpur0xSlInnIHoeLDH7FvVVcPJRPSQ9/MfRqLsainRw+BojA== + dependencies: + "@docusaurus/core" "3.4.0" + "@docusaurus/types" "3.4.0" + "@docusaurus/utils-validation" "3.4.0" + tslib "^2.6.0" + +"@docusaurus/plugin-google-gtag@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.4.0.tgz#42489ac5fe1c83b5523ceedd5ef74f9aa8bc251b" + integrity sha512-Dsgg6PLAqzZw5wZ4QjUYc8Z2KqJqXxHxq3vIoyoBWiLEEfigIs7wHR+oiWUQy3Zk9MIk6JTYj7tMoQU0Jm3nqA== + dependencies: + "@docusaurus/core" "3.4.0" + "@docusaurus/types" "3.4.0" + "@docusaurus/utils-validation" "3.4.0" + "@types/gtag.js" "^0.0.12" + tslib "^2.6.0" + +"@docusaurus/plugin-google-tag-manager@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.4.0.tgz#cebb03a5ffa1e70b37d95601442babea251329ff" + integrity sha512-O9tX1BTwxIhgXpOLpFDueYA9DWk69WCbDRrjYoMQtFHSkTyE7RhNgyjSPREUWJb9i+YUg3OrsvrBYRl64FCPCQ== + dependencies: + "@docusaurus/core" "3.4.0" + "@docusaurus/types" "3.4.0" + "@docusaurus/utils-validation" "3.4.0" + tslib "^2.6.0" + +"@docusaurus/plugin-sitemap@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.4.0.tgz#b091d64d1e3c6c872050189999580187537bcbc6" + integrity sha512-+0VDvx9SmNrFNgwPoeoCha+tRoAjopwT0+pYO1xAbyLcewXSemq+eLxEa46Q1/aoOaJQ0qqHELuQM7iS2gp33Q== + dependencies: + "@docusaurus/core" "3.4.0" + "@docusaurus/logger" "3.4.0" + "@docusaurus/types" "3.4.0" + "@docusaurus/utils" "3.4.0" + "@docusaurus/utils-common" "3.4.0" + "@docusaurus/utils-validation" "3.4.0" + fs-extra "^11.1.1" + sitemap "^7.1.1" + tslib "^2.6.0" + +"@docusaurus/preset-classic@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.4.0.tgz#6082a32fbb465b0cb2c2a50ebfc277cff2c0f139" + integrity sha512-Ohj6KB7siKqZaQhNJVMBBUzT3Nnp6eTKqO+FXO3qu/n1hJl3YLwVKTWBg28LF7MWrKu46UuYavwMRxud0VyqHg== + dependencies: + "@docusaurus/core" "3.4.0" + "@docusaurus/plugin-content-blog" "3.4.0" + "@docusaurus/plugin-content-docs" "3.4.0" + "@docusaurus/plugin-content-pages" "3.4.0" + "@docusaurus/plugin-debug" "3.4.0" + "@docusaurus/plugin-google-analytics" "3.4.0" + "@docusaurus/plugin-google-gtag" "3.4.0" + "@docusaurus/plugin-google-tag-manager" "3.4.0" + "@docusaurus/plugin-sitemap" "3.4.0" + "@docusaurus/theme-classic" "3.4.0" + "@docusaurus/theme-common" "3.4.0" + "@docusaurus/theme-search-algolia" "3.4.0" + "@docusaurus/types" "3.4.0" + +"@docusaurus/theme-classic@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.4.0.tgz#1b0f48edec3e3ec8927843554b9f11e5927b0e52" + integrity sha512-0IPtmxsBYv2adr1GnZRdMkEQt1YW6tpzrUPj02YxNpvJ5+ju4E13J5tB4nfdaen/tfR1hmpSPlTFPvTf4kwy8Q== + dependencies: + "@docusaurus/core" "3.4.0" + "@docusaurus/mdx-loader" "3.4.0" + "@docusaurus/module-type-aliases" "3.4.0" + "@docusaurus/plugin-content-blog" "3.4.0" + "@docusaurus/plugin-content-docs" "3.4.0" + "@docusaurus/plugin-content-pages" "3.4.0" + "@docusaurus/theme-common" "3.4.0" + "@docusaurus/theme-translations" "3.4.0" + "@docusaurus/types" "3.4.0" + "@docusaurus/utils" "3.4.0" + "@docusaurus/utils-common" "3.4.0" + "@docusaurus/utils-validation" "3.4.0" + "@mdx-js/react" "^3.0.0" + clsx "^2.0.0" + copy-text-to-clipboard "^3.2.0" + infima "0.2.0-alpha.43" + lodash "^4.17.21" + nprogress "^0.2.0" + postcss "^8.4.26" + prism-react-renderer "^2.3.0" + prismjs "^1.29.0" + react-router-dom "^5.3.4" + rtlcss "^4.1.0" + tslib "^2.6.0" + utility-types "^3.10.0" + +"@docusaurus/theme-common@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.4.0.tgz#01f2b728de6cb57f6443f52fc30675cf12a5d49f" + integrity sha512-0A27alXuv7ZdCg28oPE8nH/Iz73/IUejVaCazqu9elS4ypjiLhK3KfzdSQBnL/g7YfHSlymZKdiOHEo8fJ0qMA== + dependencies: + "@docusaurus/mdx-loader" "3.4.0" + "@docusaurus/module-type-aliases" "3.4.0" + "@docusaurus/plugin-content-blog" "3.4.0" + "@docusaurus/plugin-content-docs" "3.4.0" + "@docusaurus/plugin-content-pages" "3.4.0" + "@docusaurus/utils" "3.4.0" + "@docusaurus/utils-common" "3.4.0" + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router-config" "*" + clsx "^2.0.0" + parse-numeric-range "^1.3.0" + prism-react-renderer "^2.3.0" + tslib "^2.6.0" + utility-types "^3.10.0" + +"@docusaurus/theme-live-codeblock@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-live-codeblock/-/theme-live-codeblock-3.4.0.tgz#1de96234eea796a031f9455169e7f75151c3d9e4" + integrity sha512-UvsYhN6aTQiQlhY6cd0I4ckNbyZ/pQVKtKNRw3ojr+SPXYqSyXTpFzcuTUYcglKFVz1IK7LeeFymGFnsfkCWmw== + dependencies: + "@docusaurus/core" "3.4.0" + "@docusaurus/theme-common" "3.4.0" + "@docusaurus/theme-translations" "3.4.0" + "@docusaurus/utils-validation" "3.4.0" + "@philpl/buble" "^0.19.7" + clsx "^2.0.0" + fs-extra "^11.1.1" + react-live "^4.1.6" + tslib "^2.6.0" + +"@docusaurus/theme-mermaid@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-mermaid/-/theme-mermaid-3.4.0.tgz#ef1d2231d0858767f67538b4fafd7d0ce2a3e845" + integrity sha512-3w5QW0HEZ2O6x2w6lU3ZvOe1gNXP2HIoKDMJBil1VmLBc9PmpAG17VmfhI/p3L2etNmOiVs5GgniUqvn8AFEGQ== + dependencies: + "@docusaurus/core" "3.4.0" + "@docusaurus/module-type-aliases" "3.4.0" + "@docusaurus/theme-common" "3.4.0" + "@docusaurus/types" "3.4.0" + "@docusaurus/utils-validation" "3.4.0" + mermaid "^10.4.0" + tslib "^2.6.0" + +"@docusaurus/theme-search-algolia@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.4.0.tgz#c499bad71d668df0d0f15b0e5e33e2fc4e330fcc" + integrity sha512-aiHFx7OCw4Wck1z6IoShVdUWIjntC8FHCw9c5dR8r3q4Ynh+zkS8y2eFFunN/DL6RXPzpnvKCg3vhLQYJDmT9Q== + dependencies: + "@docsearch/react" "^3.5.2" + "@docusaurus/core" "3.4.0" + "@docusaurus/logger" "3.4.0" + "@docusaurus/plugin-content-docs" "3.4.0" + "@docusaurus/theme-common" "3.4.0" + "@docusaurus/theme-translations" "3.4.0" + "@docusaurus/utils" "3.4.0" + "@docusaurus/utils-validation" "3.4.0" + algoliasearch "^4.18.0" + algoliasearch-helper "^3.13.3" + clsx "^2.0.0" + eta "^2.2.0" + fs-extra "^11.1.1" + lodash "^4.17.21" + tslib "^2.6.0" + utility-types "^3.10.0" + +"@docusaurus/theme-translations@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.4.0.tgz#e6355d01352886c67e38e848b2542582ea3070af" + integrity sha512-zSxCSpmQCCdQU5Q4CnX/ID8CSUUI3fvmq4hU/GNP/XoAWtXo9SAVnM3TzpU8Gb//H3WCsT8mJcTfyOk3d9ftNg== + dependencies: + fs-extra "^11.1.1" + tslib "^2.6.0" + +"@docusaurus/tsconfig@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/tsconfig/-/tsconfig-3.4.0.tgz#2b6ea208e580facc6e3330433e9b4321ef0eb3f5" + integrity sha512-0qENiJ+TRaeTzcg4olrnh0BQ7eCxTgbYWBnWUeQDc84UYkt/T3pDNnm3SiQkqPb+YQ1qtYFlC0RriAElclo8Dg== + +"@docusaurus/types@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.4.0.tgz#237c3f737e9db3f7c1a5935a3ef48d6eadde8292" + integrity sha512-4jcDO8kXi5Cf9TcyikB/yKmz14f2RZ2qTRerbHAsS+5InE9ZgSLBNLsewtFTcTOXSVcbU3FoGOzcNWAmU1TR0A== + dependencies: + "@mdx-js/mdx" "^3.0.0" + "@types/history" "^4.7.11" + "@types/react" "*" + commander "^5.1.0" + joi "^17.9.2" + react-helmet-async "^1.3.0" + utility-types "^3.10.0" + webpack "^5.88.1" + webpack-merge "^5.9.0" + +"@docusaurus/utils-common@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.4.0.tgz#2a43fefd35b85ab9fcc6833187e66c15f8bfbbc6" + integrity sha512-NVx54Wr4rCEKsjOH5QEVvxIqVvm+9kh7q8aYTU5WzUU9/Hctd6aTrcZ3G0Id4zYJ+AeaG5K5qHA4CY5Kcm2iyQ== + dependencies: + tslib "^2.6.0" + +"@docusaurus/utils-validation@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.4.0.tgz#0176f6e503ff45f4390ec2ecb69550f55e0b5eb7" + integrity sha512-hYQ9fM+AXYVTWxJOT1EuNaRnrR2WGpRdLDQG07O8UOpsvCPWUVOeo26Rbm0JWY2sGLfzAb+tvJ62yF+8F+TV0g== + dependencies: + "@docusaurus/logger" "3.4.0" + "@docusaurus/utils" "3.4.0" + "@docusaurus/utils-common" "3.4.0" + fs-extra "^11.2.0" + joi "^17.9.2" + js-yaml "^4.1.0" + lodash "^4.17.21" + tslib "^2.6.0" + +"@docusaurus/utils@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.4.0.tgz#c508e20627b7a55e2b541e4a28c95e0637d6a204" + integrity sha512-fRwnu3L3nnWaXOgs88BVBmG1yGjcQqZNHG+vInhEa2Sz2oQB+ZjbEMO5Rh9ePFpZ0YDiDUhpaVjwmS+AU2F14g== + dependencies: + "@docusaurus/logger" "3.4.0" + "@docusaurus/utils-common" "3.4.0" + "@svgr/webpack" "^8.1.0" + escape-string-regexp "^4.0.0" + file-loader "^6.2.0" + fs-extra "^11.1.1" + github-slugger "^1.5.0" + globby "^11.1.0" + gray-matter "^4.0.3" + jiti "^1.20.0" + js-yaml "^4.1.0" + lodash "^4.17.21" + micromatch "^4.0.5" + prompts "^2.4.2" + resolve-pathname "^3.0.0" + shelljs "^0.8.5" + tslib "^2.6.0" + url-loader "^4.1.1" + utility-types "^3.10.0" + webpack "^5.88.1" + +"@esbuild/aix-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== + +"@esbuild/android-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== + +"@esbuild/android-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== + +"@esbuild/android-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== + +"@esbuild/darwin-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== + +"@esbuild/darwin-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== + +"@esbuild/freebsd-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== + +"@esbuild/freebsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== + +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== + +"@esbuild/linux-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== + +"@esbuild/linux-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== + +"@esbuild/linux-loong64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== + +"@esbuild/linux-mips64el@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== + +"@esbuild/linux-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== + +"@esbuild/linux-riscv64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== + +"@esbuild/linux-s390x@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== + +"@esbuild/linux-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" + integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== + +"@esbuild/netbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== + +"@esbuild/openbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== + +"@esbuild/sunos-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== + +"@esbuild/win32-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== + +"@esbuild/win32-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== + +"@esbuild/win32-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== + +"@excalidraw/excalidraw@^0.17.6": + version "0.17.6" + resolved "https://registry.yarnpkg.com/@excalidraw/excalidraw/-/excalidraw-0.17.6.tgz#5fd208ce69d33ca712d1804b50d7d06d5c46ac4d" + integrity sha512-fyCl+zG/Z5yhHDh5Fq2ZGmphcrALmuOdtITm8gN4d8w4ntnaopTXcTfnAAaU3VleDC6LhTkoLOTG6P5kgREiIg== + +"@floating-ui/core@^1.0.0": + version "1.6.2" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.2.tgz#d37f3e0ac1f1c756c7de45db13303a266226851a" + integrity sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg== + dependencies: + "@floating-ui/utils" "^0.2.0" + +"@floating-ui/dom@^1.0.0", "@floating-ui/dom@^1.6.1": + version "1.6.5" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.5.tgz#323f065c003f1d3ecf0ff16d2c2c4d38979f4cb9" + integrity sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw== + dependencies: + "@floating-ui/core" "^1.0.0" + "@floating-ui/utils" "^0.2.0" + +"@floating-ui/react-dom@^2.0.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.1.0.tgz#4f0e5e9920137874b2405f7d6c862873baf4beff" + integrity sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA== + dependencies: + "@floating-ui/dom" "^1.0.0" + +"@floating-ui/utils@^0.2.0", "@floating-ui/utils@^0.2.1", "@floating-ui/utils@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.2.tgz#d8bae93ac8b815b2bd7a98078cf91e2724ef11e5" + integrity sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw== + +"@floating-ui/vue@^1.0.2": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@floating-ui/vue/-/vue-1.0.6.tgz#31860a12f1135d19554c232d99c5bab631c5c576" + integrity sha512-EdrOljjkpkkqZnrpqUcPoz9NvHxuTjUtSInh6GMv3+Mcy+giY2cE2pHh9rpacRcZ2eMSCxel9jWkWXTjLmY55w== + dependencies: + "@floating-ui/dom" "^1.6.1" + "@floating-ui/utils" "^0.2.1" + vue-demi ">=0.13.0" + +"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/topo@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@headlessui/vue@^1.7.20": + version "1.7.22" + resolved "https://registry.yarnpkg.com/@headlessui/vue/-/vue-1.7.22.tgz#8d55a3a670c3d48beb660b7c47a7a8ff76caacfe" + integrity sha512-Hoffjoolq1rY+LOfJ+B/OvkhuBXXBFgd8oBlN+l1TApma2dB0En0ucFZrwQtb33SmcCqd32EQd0y07oziXWNYg== + dependencies: + "@tanstack/vue-virtual" "^3.0.0-beta.60" + +"@huggingface/hub@^0.15.1": + version "0.15.1" + resolved "https://registry.yarnpkg.com/@huggingface/hub/-/hub-0.15.1.tgz#1fceb272c7123f152aadc370281c366f97079091" + integrity sha512-uHb4aFkJDoGfLeRHfFTjkI36Z8IV6Z1c+KzhMDqUSC56opyr7Mn1Nsx7Rri/C7KDwROhQfBp/fOOqqjTzn6Cgg== + dependencies: + "@huggingface/tasks" "^0.10.6" + hash-wasm "^4.9.0" + +"@huggingface/tasks@^0.10.6": + version "0.10.15" + resolved "https://registry.yarnpkg.com/@huggingface/tasks/-/tasks-0.10.15.tgz#0d71ec84e673673509191c41b20d30613098b760" + integrity sha512-xLvLyEzFXuWie2eeYGGkltNwzEteXWVAcydbYMu1mM3rI08bGiBPXD9l5VRHKjgf6VAp2rc3SSjnLUza2XerWQ== + +"@humanwhocodes/momoa@^3.0.1": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/momoa/-/momoa-3.2.0.tgz#42a8f773b176373e7a7876d58925fd3a91a0952f" + integrity sha512-xvLEGSmd8qxcqlKFnTxdnmqQFsYGC4GhpuhHgdFoZBV9zxvmSlTuasj2D3vei3IsBGmjP/ITwPFejNAG/w+jsw== + +"@inquirer/figures@^1.0.3": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.5.tgz#57f9a996d64d3e3345d2a3ca04d36912e94f8790" + integrity sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" + integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== + +"@lezer/common@^1.0.0", "@lezer/common@^1.0.2", "@lezer/common@^1.1.0", "@lezer/common@^1.2.0", "@lezer/common@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@lezer/common/-/common-1.2.1.tgz#198b278b7869668e1bebbe687586e12a42731049" + integrity sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ== + +"@lezer/css@^1.0.0", "@lezer/css@^1.1.0": + version "1.1.8" + resolved "https://registry.yarnpkg.com/@lezer/css/-/css-1.1.8.tgz#11fd456dac53bc899b266778794ed4ca9576a5a4" + integrity sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@lezer/highlight@^1.0.0", "@lezer/highlight@^1.1.3", "@lezer/highlight@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@lezer/highlight/-/highlight-1.2.0.tgz#e5898c3644208b4b589084089dceeea2966f7780" + integrity sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA== + dependencies: + "@lezer/common" "^1.0.0" + +"@lezer/html@^1.3.0": + version "1.3.10" + resolved "https://registry.yarnpkg.com/@lezer/html/-/html-1.3.10.tgz#1be9a029a6fe835c823b20a98a449a630416b2af" + integrity sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@lezer/javascript@^1.0.0": + version "1.4.16" + resolved "https://registry.yarnpkg.com/@lezer/javascript/-/javascript-1.4.16.tgz#20f0ba832b7bf4f1333513549f2f7ca459a9dc93" + integrity sha512-84UXR3N7s11MPQHWgMnjb9571fr19MmXnr5zTv2XX0gHXXUvW3uPJ8GCjKrfTXmSdfktjRK0ayKklw+A13rk4g== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.1.3" + "@lezer/lr" "^1.3.0" + +"@lezer/json@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@lezer/json/-/json-1.0.2.tgz#bdc849e174113e2d9a569a5e6fb1a27e2f703eaf" + integrity sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@lezer/lr@^1.0.0", "@lezer/lr@^1.3.0", "@lezer/lr@^1.4.0": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@lezer/lr/-/lr-1.4.1.tgz#fe25f051880a754e820b28148d90aa2a96b8bdd2" + integrity sha512-CHsKq8DMKBf9b3yXPDIU4DbH+ZJd/sJdYOW2llbW/HudP5u0VS6Bfq1hLYfgU7uAYGFIyGGQIsSOXGPEErZiJw== + dependencies: + "@lezer/common" "^1.0.0" + +"@lezer/yaml@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@lezer/yaml/-/yaml-1.0.3.tgz#b23770ab42b390056da6b187d861b998fd60b1ff" + integrity sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.4.0" + +"@mdx-js/mdx@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-3.0.1.tgz#617bd2629ae561fdca1bb88e3badd947f5a82191" + integrity sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA== + dependencies: + "@types/estree" "^1.0.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdx" "^2.0.0" + collapse-white-space "^2.0.0" + devlop "^1.0.0" + estree-util-build-jsx "^3.0.0" + estree-util-is-identifier-name "^3.0.0" + estree-util-to-js "^2.0.0" + estree-walker "^3.0.0" + hast-util-to-estree "^3.0.0" + hast-util-to-jsx-runtime "^2.0.0" + markdown-extensions "^2.0.0" + periscopic "^3.0.0" + remark-mdx "^3.0.0" + remark-parse "^11.0.0" + remark-rehype "^11.0.0" + source-map "^0.7.0" + unified "^11.0.0" + unist-util-position-from-estree "^2.0.0" + unist-util-stringify-position "^4.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + +"@mdx-js/react@3.0.1", "@mdx-js/react@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-3.0.1.tgz#997a19b3a5b783d936c75ae7c47cfe62f967f746" + integrity sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A== + dependencies: + "@types/mdx" "^2.0.0" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@philpl/buble@^0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@philpl/buble/-/buble-0.19.7.tgz#27231e6391393793b64bc1c982fc7b593198b893" + integrity sha512-wKTA2DxAGEW+QffRQvOhRQ0VBiYU2h2p8Yc1oBNlqSKws48/8faxqKNIuub0q4iuyTuLwtB8EkwiKwhlfV1PBA== + dependencies: + acorn "^6.1.1" + acorn-class-fields "^0.2.1" + acorn-dynamic-import "^4.0.0" + acorn-jsx "^5.0.1" + chalk "^2.4.2" + magic-string "^0.25.2" + minimist "^1.2.0" + os-homedir "^1.0.1" + regexpu-core "^4.5.4" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@pnpm/config.env-replace@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" + integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== + +"@pnpm/network.ca-file@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" + integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== + dependencies: + graceful-fs "4.2.10" + +"@pnpm/npm-conf@^2.1.0": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz#0058baf1c26cbb63a828f0193795401684ac86f0" + integrity sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA== + dependencies: + "@pnpm/config.env-replace" "^1.1.0" + "@pnpm/network.ca-file" "^1.0.1" + config-chain "^1.1.11" + +"@polka/url@^1.0.0-next.24": + version "1.0.0-next.25" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.25.tgz#f077fdc0b5d0078d30893396ff4827a13f99e817" + integrity sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ== + +"@radix-ui/number@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/number/-/number-1.1.0.tgz#1e95610461a09cdf8bb05c152e76ca1278d5da46" + integrity sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ== + +"@radix-ui/primitive@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.1.0.tgz#42ef83b3b56dccad5d703ae8c42919a68798bbe2" + integrity sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA== + +"@radix-ui/react-arrow@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz#744f388182d360b86285217e43b6c63633f39e7a" + integrity sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw== + dependencies: + "@radix-ui/react-primitive" "2.0.0" + +"@radix-ui/react-collection@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-collection/-/react-collection-1.1.0.tgz#f18af78e46454a2360d103c2251773028b7724ed" + integrity sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw== + dependencies: + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-slot" "1.1.0" + +"@radix-ui/react-compose-refs@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz#656432461fc8283d7b591dcf0d79152fae9ecc74" + integrity sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw== + +"@radix-ui/react-context@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.1.0.tgz#6df8d983546cfd1999c8512f3a8ad85a6e7fcee8" + integrity sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A== + +"@radix-ui/react-direction@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-direction/-/react-direction-1.1.0.tgz#a7d39855f4d077adc2a1922f9c353c5977a09cdc" + integrity sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg== + +"@radix-ui/react-dismissable-layer@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz#2cd0a49a732372513733754e6032d3fb7988834e" + integrity sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-use-escape-keydown" "1.1.0" + +"@radix-ui/react-focus-guards@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.0.tgz#8e9abb472a9a394f59a1b45f3dd26cfe3fc6da13" + integrity sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw== + +"@radix-ui/react-focus-scope@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz#ebe2891a298e0a33ad34daab2aad8dea31caf0b2" + integrity sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA== + dependencies: + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-callback-ref" "1.1.0" + +"@radix-ui/react-id@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-1.1.0.tgz#de47339656594ad722eb87f94a6b25f9cffae0ed" + integrity sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA== + dependencies: + "@radix-ui/react-use-layout-effect" "1.1.0" + +"@radix-ui/react-popper@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-1.2.0.tgz#a3e500193d144fe2d8f5d5e60e393d64111f2a7a" + integrity sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg== + dependencies: + "@floating-ui/react-dom" "^2.0.0" + "@radix-ui/react-arrow" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-use-rect" "1.1.0" + "@radix-ui/react-use-size" "1.1.0" + "@radix-ui/rect" "1.1.0" + +"@radix-ui/react-portal@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.1.1.tgz#1957f1eb2e1aedfb4a5475bd6867d67b50b1d15f" + integrity sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g== + dependencies: + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-layout-effect" "1.1.0" + +"@radix-ui/react-presence@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.1.0.tgz#227d84d20ca6bfe7da97104b1a8b48a833bfb478" + integrity sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ== + dependencies: + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-use-layout-effect" "1.1.0" + +"@radix-ui/react-primitive@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz#fe05715faa9203a223ccc0be15dc44b9f9822884" + integrity sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw== + dependencies: + "@radix-ui/react-slot" "1.1.0" + +"@radix-ui/react-select@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-select/-/react-select-2.1.1.tgz#df05cb0b29d3deaef83b505917c4042e0e418a9f" + integrity sha512-8iRDfyLtzxlprOo9IicnzvpsO1wNCkuwzzCM+Z5Rb5tNOpCdMvcc2AkzX0Fz+Tz9v6NJ5B/7EEgyZveo4FBRfQ== + dependencies: + "@radix-ui/number" "1.1.0" + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-collection" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-direction" "1.1.0" + "@radix-ui/react-dismissable-layer" "1.1.0" + "@radix-ui/react-focus-guards" "1.1.0" + "@radix-ui/react-focus-scope" "1.1.0" + "@radix-ui/react-id" "1.1.0" + "@radix-ui/react-popper" "1.2.0" + "@radix-ui/react-portal" "1.1.1" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-slot" "1.1.0" + "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-use-previous" "1.1.0" + "@radix-ui/react-visually-hidden" "1.1.0" + aria-hidden "^1.1.1" + react-remove-scroll "2.5.7" + +"@radix-ui/react-slot@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.1.0.tgz#7c5e48c36ef5496d97b08f1357bb26ed7c714b84" + integrity sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw== + dependencies: + "@radix-ui/react-compose-refs" "1.1.0" + +"@radix-ui/react-tooltip@^1.0.7": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-tooltip/-/react-tooltip-1.1.2.tgz#c42db2ffd7dcc6ff3d65407c8cb70490288f518d" + integrity sha512-9XRsLwe6Yb9B/tlnYCPVUd/TFS4J7HuOZW345DCeC6vKIxQGMZdx21RK4VoZauPD5frgkXTYVS5y90L+3YBn4w== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-dismissable-layer" "1.1.0" + "@radix-ui/react-id" "1.1.0" + "@radix-ui/react-popper" "1.2.0" + "@radix-ui/react-portal" "1.1.1" + "@radix-ui/react-presence" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-slot" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + "@radix-ui/react-visually-hidden" "1.1.0" + +"@radix-ui/react-use-callback-ref@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz#bce938ca413675bc937944b0d01ef6f4a6dc5bf1" + integrity sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw== + +"@radix-ui/react-use-controllable-state@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz#1321446857bb786917df54c0d4d084877aab04b0" + integrity sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw== + dependencies: + "@radix-ui/react-use-callback-ref" "1.1.0" + +"@radix-ui/react-use-escape-keydown@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz#31a5b87c3b726504b74e05dac1edce7437b98754" + integrity sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw== + dependencies: + "@radix-ui/react-use-callback-ref" "1.1.0" + +"@radix-ui/react-use-layout-effect@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz#3c2c8ce04827b26a39e442ff4888d9212268bd27" + integrity sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w== + +"@radix-ui/react-use-previous@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz#d4dd37b05520f1d996a384eb469320c2ada8377c" + integrity sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og== + +"@radix-ui/react-use-rect@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz#13b25b913bd3e3987cc9b073a1a164bb1cf47b88" + integrity sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ== + dependencies: + "@radix-ui/rect" "1.1.0" + +"@radix-ui/react-use-size@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz#b4dba7fbd3882ee09e8d2a44a3eed3a7e555246b" + integrity sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw== + dependencies: + "@radix-ui/react-use-layout-effect" "1.1.0" + +"@radix-ui/react-visually-hidden@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz#ad47a8572580f7034b3807c8e6740cd41038a5a2" + integrity sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ== + dependencies: + "@radix-ui/react-primitive" "2.0.0" + +"@radix-ui/rect@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-1.1.0.tgz#f817d1d3265ac5415dadc67edab30ae196696438" + integrity sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg== + +"@replit/codemirror-css-color-picker@^6.1.0": + version "6.1.1" + resolved "https://registry.yarnpkg.com/@replit/codemirror-css-color-picker/-/codemirror-css-color-picker-6.1.1.tgz#9b68652d7ff56e3cc491fd7e26584d1f08e5b659" + integrity sha512-e/wYHcgt3HRDpvYuwqXyjv3LEY6VyFjJeDQK1UtFmaykp86R6Cbw3ULH9pvuJuelaW6nS4CVtIRHuOfbFLlqwQ== + +"@rollup/rollup-android-arm-eabi@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz#c3f5660f67030c493a981ac1d34ee9dfe1d8ec0f" + integrity sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA== + +"@rollup/rollup-android-arm64@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.20.0.tgz#64161f0b67050023a3859e723570af54a82cff5c" + integrity sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ== + +"@rollup/rollup-darwin-arm64@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.20.0.tgz#25f3d57b1da433097cfebc89341b355901615763" + integrity sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q== + +"@rollup/rollup-darwin-x64@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.20.0.tgz#d8ddaffb636cc2f59222c50316e27771e48966df" + integrity sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ== + +"@rollup/rollup-linux-arm-gnueabihf@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.20.0.tgz#41bd4fcffa20fb84f3dbac6c5071638f46151885" + integrity sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA== + +"@rollup/rollup-linux-arm-musleabihf@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.20.0.tgz#842077c5113a747eb5686f19f2f18c33ecc0acc8" + integrity sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw== + +"@rollup/rollup-linux-arm64-gnu@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz#65d1d5b6778848f55b7823958044bf3e8737e5b7" + integrity sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ== + +"@rollup/rollup-linux-arm64-musl@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz#50eef7d6e24d0fe3332200bb666cad2be8afcf86" + integrity sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q== + +"@rollup/rollup-linux-powerpc64le-gnu@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.20.0.tgz#8837e858f53c84607f05ad0602943e96d104c6b4" + integrity sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw== + +"@rollup/rollup-linux-riscv64-gnu@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.20.0.tgz#c894ade2300caa447757ddf45787cca246e816a4" + integrity sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA== + +"@rollup/rollup-linux-s390x-gnu@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.20.0.tgz#5841e5390d4c82dd5cdf7b2c95a830e3c2f47dd3" + integrity sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg== + +"@rollup/rollup-linux-x64-gnu@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.20.0.tgz#cc1f26398bf777807a99226dc13f47eb0f6c720d" + integrity sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew== + +"@rollup/rollup-linux-x64-musl@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.20.0.tgz#1507465d9056e0502a590d4c1a00b4d7b1fda370" + integrity sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg== + +"@rollup/rollup-win32-arm64-msvc@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.20.0.tgz#86a221f01a2c248104dd0defb4da119f2a73642e" + integrity sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA== + +"@rollup/rollup-win32-ia32-msvc@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.20.0.tgz#8bc8f77e02760aa664694b4286d6fbea7f1331c5" + integrity sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A== + +"@rollup/rollup-win32-x64-msvc@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz#601fffee719a1e8447f908aca97864eec23b2784" + integrity sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg== + +"@scalar/api-client@1.3.4": + version "1.3.4" + resolved "https://registry.yarnpkg.com/@scalar/api-client/-/api-client-1.3.4.tgz#8d1fd83507163df23108c4ceae0687d9bcc3f9b6" + integrity sha512-DSiD6k3GrWQCmpdLfKjJLWjukYAbc9FrvI4RkRw13FUvRVqX+6IlXXsPaK2xaQl3aq40QmazHeeVNho4bKSMkg== + dependencies: + "@floating-ui/vue" "^1.0.2" + "@headlessui/vue" "^1.7.20" + "@scalar/components" "0.10.1" + "@scalar/openapi-parser" "^0.3.2" + "@scalar/themes" "0.8.2" + "@scalar/use-codemirror" "0.10.5" + "@scalar/use-modal" "0.3.3" + "@scalar/use-toasts" "0.6.7" + "@scalar/use-tooltip" "0.6.2" + "@vueuse/core" "^10.9.0" + axios "^1.6.8" + httpsnippet-lite "^3.0.5" + nanoid "^5.0.1" + pretty-bytes "^6.1.1" + pretty-ms "^8.0.0" + +"@scalar/api-reference-react@0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@scalar/api-reference-react/-/api-reference-react-0.2.5.tgz#8acffd58e308fd4c2bbe06c0bc5fba70cb138ca0" + integrity sha512-+S8jJ+ZTNWtjze9tawRQVrsFfAw0BQQm2nAV4PsDQNJ2OsmLcWoWgg8D2FIEdxatz8zEcBoB8QRdjLN00P7uJg== + dependencies: + "@scalar/api-reference" "1.23.5" + +"@scalar/api-reference@1.23.5": + version "1.23.5" + resolved "https://registry.yarnpkg.com/@scalar/api-reference/-/api-reference-1.23.5.tgz#d395d2c5eb8990ccbfe08737fb638a4e86102179" + integrity sha512-dpFT2HbnAapjw78w2zoKiO3zk0B6QvWdyG1kYUgQ7RWuU2kCJEVgg2gW8p0IbyvmeJ9RDFxMs7cwJVOCS8g4tQ== + dependencies: + "@headlessui/vue" "^1.7.20" + "@scalar/api-client" "1.3.4" + "@scalar/components" "0.10.1" + "@scalar/oas-utils" "0.1.17" + "@scalar/openapi-parser" "^0.3.2" + "@scalar/snippetz" "^0.1.6" + "@scalar/themes" "0.8.2" + "@scalar/use-modal" "0.3.3" + "@scalar/use-toasts" "0.6.7" + "@scalar/use-tooltip" "0.6.2" + "@unhead/schema" "^1.9.5" + "@vcarl/remark-headings" "^0.1.0" + "@vueuse/core" "^10.9.0" + axios "^1.6.8" + fuse.js "^6.6.2" + github-slugger "^2.0.0" + httpsnippet-lite "^3.0.5" + postcss-nested "^6.0.1" + prismjs "^1.29.0" + rehype-external-links "^3.0.0" + rehype-format "^5.0.0" + rehype-highlight "^7.0.0" + rehype-raw "^7.0.0" + rehype-sanitize "^6.0.0" + rehype-stringify "^10.0.0" + remark-gfm "^4.0.0" + remark-parse "^11.0.0" + remark-rehype "^11.1.0" + remark-stringify "^11.0.0" + unhead "^1.8.3" + unified "^11.0.4" + +"@scalar/components@0.10.1": + version "0.10.1" + resolved "https://registry.yarnpkg.com/@scalar/components/-/components-0.10.1.tgz#72faf3e032c9ecdaacc24e03ac579211e2289fbe" + integrity sha512-YeHsxXRKeMwss6WSs/B4LhkPXtgIN9hSTqcFrHu/1gbOepP0IRg9zoVq+/FeTKUPI0+yQcmgW9aScb17tcuupg== + dependencies: + "@floating-ui/utils" "^0.2.2" + "@floating-ui/vue" "^1.0.2" + "@headlessui/vue" "^1.7.20" + "@scalar/oas-utils" "0.1.17" + "@storybook/test" "^8.0.8" + "@vueuse/core" "^10.9.0" + cva "1.0.0-beta.1" + nanoid "^5.0.1" + prismjs "^1.29.0" + tailwind-merge "^2.3.0" + +"@scalar/docusaurus@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@scalar/docusaurus/-/docusaurus-0.3.5.tgz#efa08bd1ad3d264010d3a35492b36ec4ae148b70" + integrity sha512-swmhqFXpeYJbLjyaRXDEUjf+SREUx8FSoP7wCkK/F6Ej7TNcGedkPL/rwVxugBaTe7k9X9GAgtBHzAUy1RVC8g== + dependencies: + "@scalar/api-reference-react" "0.2.5" + +"@scalar/oas-utils@0.1.17": + version "0.1.17" + resolved "https://registry.yarnpkg.com/@scalar/oas-utils/-/oas-utils-0.1.17.tgz#dc7f1f662001df41cceb4ba6cad6d3ca89dc5748" + integrity sha512-+n8klucq1Gt0iZBpwoNo9vDbzcwWo+Rj9vVsyT1bD/pmZLGcDSJT7t5PkVwPc3xOxkFPiVEV4chTHIYXN99xJQ== + dependencies: + yaml "^2.4.1" + +"@scalar/openapi-parser@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@scalar/openapi-parser/-/openapi-parser-0.3.2.tgz#9a3d38f14ae5a0d607a43960d88396de4b171926" + integrity sha512-o38wF1rKqCc7R0zFMta5rPTiY4cWwVcZPJkV1OCcnPsF2eE79uPkhYU2j/kdocJXVwMqqAe9a6+0o4R8YjgPVw== + dependencies: + "@humanwhocodes/momoa" "^3.0.1" + "@types/node" "^20.11.26" + ajv "^8.12.0" + ajv-draft-04 "^1.0.0" + ajv-formats "^2.1.1" + js-yaml "^4.1.0" + jsonpointer "^5.0.1" + leven "^4.0.0" + openapi-types "^12.1.3" + vite "^5.1.6" + yaml "^2.4.1" + +"@scalar/snippetz-core@0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@scalar/snippetz-core/-/snippetz-core-0.1.4.tgz#4e93b90d592bc65ee9ea871db7bb83816bbba562" + integrity sha512-NMnDzl5dHgUj0k8ZtfssDfy6wv1wO/M+GhpdGr/4OH3m8UZB27CZ3hM7wXh+fm75hZO5XIBsANW20kJVnzpaHg== + dependencies: + "@types/har-format" "^1.2.15" + +"@scalar/snippetz-plugin-js-fetch@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@scalar/snippetz-plugin-js-fetch/-/snippetz-plugin-js-fetch-0.1.1.tgz#061794bf577313c6cb7a347eb14d980a9f5fd53f" + integrity sha512-9ODfi0OaEvZHdCe09c91eH1R5QPynL+FPxtYuK/9K5ElRE2NqxYysri9AsgOhr1Fqhpy5qKzDj4Gi5FHsJSGXw== + dependencies: + "@scalar/snippetz-core" "0.1.4" + +"@scalar/snippetz-plugin-js-ofetch@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@scalar/snippetz-plugin-js-ofetch/-/snippetz-plugin-js-ofetch-0.1.1.tgz#4d8ae6e32c36f2e101fb8a0dfd7be2c38a5809d5" + integrity sha512-fPIJlY4q1j5gbnsYSxix0IJ7hqcvm8Ly7iVoK66vaL738AIMiGZMhGKtLrTVPad77PimwO+jeq5iDIZ495UY7Q== + dependencies: + "@scalar/snippetz-core" "0.1.4" + +"@scalar/snippetz-plugin-node-fetch@0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@scalar/snippetz-plugin-node-fetch/-/snippetz-plugin-node-fetch-0.1.2.tgz#f15ebcf55c916e8ba8951204c4093e00cd54e569" + integrity sha512-kD6erA6aAqjHkj+JrJQKqrqcH4fnCrLi2uYw16CmELIGtqVHFau7ew2c087y4OQTltdi5rEk2zj5zOBu9yaS3Q== + dependencies: + "@scalar/snippetz-core" "0.1.4" + +"@scalar/snippetz-plugin-node-ofetch@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@scalar/snippetz-plugin-node-ofetch/-/snippetz-plugin-node-ofetch-0.1.1.tgz#ab849f1bd5b289da5b35f00982a7f3866d021f26" + integrity sha512-9NpvdMKebg82FkVWoWyOxd1JXAB8KNxmrsFFwQKNjhAw0A5hjNR5oW9lD+FtB1Laupg2FNtw9dcCydnF+LcCWw== + dependencies: + "@scalar/snippetz-core" "0.1.4" + +"@scalar/snippetz-plugin-node-undici@0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@scalar/snippetz-plugin-node-undici/-/snippetz-plugin-node-undici-0.1.6.tgz#2b8b3502fb7c388005c5c5d850300f591865c24c" + integrity sha512-CivUl7wgZ6vlUb01FMdqOt/NVyOWqT0iHZRp5YlPp1pflXZLnAyi5antUTtBEUHUtHM2EO/WR7vx4kRsPcrgLg== + dependencies: + "@scalar/snippetz-core" "0.1.4" + +"@scalar/snippetz@^0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@scalar/snippetz/-/snippetz-0.1.6.tgz#f7fa34c49c921637d7a2823b7b5fd779152f126e" + integrity sha512-z3DEpT/FIZq9yeHL/tz2v6WvdHIiZ4uvK96RdeTPKUUJ0IXvA5vONG3PF5LE0Q/408PCzWsZpGs9f97ztaeJSQ== + dependencies: + "@scalar/snippetz-core" "0.1.4" + "@scalar/snippetz-plugin-js-fetch" "0.1.1" + "@scalar/snippetz-plugin-js-ofetch" "^0.1.1" + "@scalar/snippetz-plugin-node-fetch" "0.1.2" + "@scalar/snippetz-plugin-node-ofetch" "^0.1.1" + "@scalar/snippetz-plugin-node-undici" "0.1.6" + +"@scalar/themes@0.8.2": + version "0.8.2" + resolved "https://registry.yarnpkg.com/@scalar/themes/-/themes-0.8.2.tgz#0f524372065b5bf82ccf5e4ebed6a49f96b255ee" + integrity sha512-V4ZqRrMAswC0No1V/NAUpor+sSUs+RtB2NW+s8Wt0NfCPYop/sReAw5YiwSJrf1znXE04oA6g6Q3LZa7fOSsyQ== + +"@scalar/use-codemirror@0.10.5": + version "0.10.5" + resolved "https://registry.yarnpkg.com/@scalar/use-codemirror/-/use-codemirror-0.10.5.tgz#c3b3ef9c18498d9dd9d09eca12b9df0150f93208" + integrity sha512-P7WTP061bIbGUMbtUG9pwIyItSxSbXljmWTFkqyq47qQOiDEG3cKXczjCapPn6LMR26s4m3mWAm4kl08dx0hQg== + dependencies: + "@codemirror/autocomplete" "^6.12.0" + "@codemirror/commands" "^6.3.3" + "@codemirror/lang-css" "^6.2.1" + "@codemirror/lang-html" "^6.4.8" + "@codemirror/lang-json" "^6.0.0" + "@codemirror/lang-yaml" "^6.0.0" + "@codemirror/language" "^6.10.1" + "@codemirror/state" "^6.4.0" + "@codemirror/view" "^6.23.1" + "@lezer/common" "^1.2.1" + "@lezer/highlight" "^1.2.0" + "@lezer/lr" "^1.4.0" + "@replit/codemirror-css-color-picker" "^6.1.0" + "@uiw/codemirror-themes" "^4.21.21" + codemirror "^6.0.0" + optionalDependencies: + y-codemirror.next "^0.3.2" + +"@scalar/use-modal@0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@scalar/use-modal/-/use-modal-0.3.3.tgz#743279d33525e213f491febbe114691660116cc0" + integrity sha512-j+o3RDeRoYT875oSSa8SytKwDPRMdL74Av9r9lwH95Fwk+IGC/B9Gc8dxtdncKmJBRvTk18nWVEoDn7JZ+CwaA== + +"@scalar/use-toasts@0.6.7": + version "0.6.7" + resolved "https://registry.yarnpkg.com/@scalar/use-toasts/-/use-toasts-0.6.7.tgz#a5c168e1c05f02cdd49ae0f5475a086cfc3ddde1" + integrity sha512-KRaSZ0WgH/745c8ckHo4qGAWWUcp/cU1QgpvLbAnI6qvye/EOxK0PQ5glJVci7w/T1XsAutP5OQ/TlaR7CB6Sw== + +"@scalar/use-tooltip@0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@scalar/use-tooltip/-/use-tooltip-0.6.2.tgz#36d4ac594ff2842eacab497fd7caf0e7c1203518" + integrity sha512-ntiHkA1A/4DHS7ISqIsE4az0AvG3LovwwJpX6LcnsiezwGfIswe6DSSwX2T0OIOO1n1Amg2/VhGFg+xOyWGOKQ== + +"@sideway/address@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.5.tgz#4bc149a0076623ced99ca8208ba780d65a99b9d5" + integrity sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" + integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sindresorhus/is@^4.6.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@sindresorhus/is@^5.2.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" + integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== + +"@slorber/remark-comment@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@slorber/remark-comment/-/remark-comment-1.0.0.tgz#2a020b3f4579c89dec0361673206c28d67e08f5a" + integrity sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.1.0" + micromark-util-symbol "^1.0.1" + +"@storybook/channels@8.1.6": + version "8.1.6" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-8.1.6.tgz#2fb2b51fe0ae5966e75d25cf995392048f8b62a4" + integrity sha512-CzDnP6qfI8OC8pGUk+wPUzLPYcKhX8XbriF2gBtwl6qVM8YfkHP2mLTiDYDwBIi0rLuUbSm/SpILXQ/ouOHOGw== + dependencies: + "@storybook/client-logger" "8.1.6" + "@storybook/core-events" "8.1.6" + "@storybook/global" "^5.0.0" + telejson "^7.2.0" + tiny-invariant "^1.3.1" + +"@storybook/client-logger@8.1.6": + version "8.1.6" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-8.1.6.tgz#79fcd54e58d5ec72fa2ea53bdb16a98d10ee712f" + integrity sha512-QfSoUxS1rmrBzO7o99og9g+Gkm7sTmU5ZOpTkjszjlRqfV6/77eUnUOzUikej4LqPLmlJV5fqGuvoP0aNVksDw== + dependencies: + "@storybook/global" "^5.0.0" + +"@storybook/core-events@8.1.6": + version "8.1.6" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-8.1.6.tgz#b4819279b1277196e62b1b3f1b113a304c9f675b" + integrity sha512-DaIVe4TUp/7uQdSJYGmJv9S/S364tSgZ3S3dZ1vsf1rgoUbCp5kTBtcd/fcqgukMPREgCgO9oDhmemI3SLAqzw== + dependencies: + "@storybook/csf" "^0.1.7" + ts-dedent "^2.0.0" + +"@storybook/csf@^0.1.7": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@storybook/csf/-/csf-0.1.8.tgz#63a83dc493c462d84e0f333e3f3264d319bec716" + integrity sha512-Ntab9o7LjBCbFIao5l42itFiaSh/Qu+l16l/r/9qmV9LnYZkO+JQ7tzhdlwpgJfhs+B5xeejpdAtftDRyXNajw== + dependencies: + type-fest "^2.19.0" + +"@storybook/global@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@storybook/global/-/global-5.0.0.tgz#b793d34b94f572c1d7d9e0f44fac4e0dbc9572ed" + integrity sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ== + +"@storybook/instrumenter@8.1.6": + version "8.1.6" + resolved "https://registry.yarnpkg.com/@storybook/instrumenter/-/instrumenter-8.1.6.tgz#6da6604a4f6f9a16bb43a510a75c09f0025fa408" + integrity sha512-BoNu0QaD5hhcbEVUsvmYDqUOu4HItNBMPUkj6aDCfpLxae5vstH3zsCRVqRcElbfqVhmRzD23w8+9In9M0Fajg== + dependencies: + "@storybook/channels" "8.1.6" + "@storybook/client-logger" "8.1.6" + "@storybook/core-events" "8.1.6" + "@storybook/global" "^5.0.0" + "@storybook/preview-api" "8.1.6" + "@vitest/utils" "^1.3.1" + util "^0.12.4" + +"@storybook/preview-api@8.1.6": + version "8.1.6" + resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-8.1.6.tgz#2a5e461934596c513f43516935fed7747bd5f503" + integrity sha512-g9EvVg/DYqmjMh1uivJBJnSIvURyuK4LLabYicQNmYdQJscAeXX2bpMcA4aeci9BBm9B2RP7JbSnq7DbXZaJYA== + dependencies: + "@storybook/channels" "8.1.6" + "@storybook/client-logger" "8.1.6" + "@storybook/core-events" "8.1.6" + "@storybook/csf" "^0.1.7" + "@storybook/global" "^5.0.0" + "@storybook/types" "8.1.6" + "@types/qs" "^6.9.5" + dequal "^2.0.2" + lodash "^4.17.21" + memoizerific "^1.11.3" + qs "^6.10.0" + tiny-invariant "^1.3.1" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + +"@storybook/test@^8.0.8": + version "8.1.6" + resolved "https://registry.yarnpkg.com/@storybook/test/-/test-8.1.6.tgz#c5c98eae7e25e848ca630759a679c1be64d134b1" + integrity sha512-tyexfYPtOHP83pMHggoGdHadfqh/veLdS+APHxt12zmCNUobxOxnuWmImXThQiyLlXTWecreLvlMvgAIjziBsA== + dependencies: + "@storybook/client-logger" "8.1.6" + "@storybook/core-events" "8.1.6" + "@storybook/instrumenter" "8.1.6" + "@storybook/preview-api" "8.1.6" + "@testing-library/dom" "^9.3.4" + "@testing-library/jest-dom" "^6.4.2" + "@testing-library/user-event" "^14.5.2" + "@vitest/expect" "1.3.1" + "@vitest/spy" "^1.3.1" + util "^0.12.4" + +"@storybook/types@8.1.6": + version "8.1.6" + resolved "https://registry.yarnpkg.com/@storybook/types/-/types-8.1.6.tgz#08f3191408bf4c7375c4321f7402353390ddc438" + integrity sha512-cWpS9+x1pxCO39spR8QmumMK2ub2p5cvMtrRvWaIjBFPbCwm2CvjBXFWIra2veBCZTxUKJ9VWxvi7pzRHjN/nw== + dependencies: + "@storybook/channels" "8.1.6" + "@types/express" "^4.7.0" + file-system-cache "2.3.0" + +"@svgr/babel-plugin-add-jsx-attribute@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz#4001f5d5dd87fa13303e36ee106e3ff3a7eb8b22" + integrity sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g== + +"@svgr/babel-plugin-remove-jsx-attribute@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz#69177f7937233caca3a1afb051906698f2f59186" + integrity sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA== + +"@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz#c2c48104cfd7dcd557f373b70a56e9e3bdae1d44" + integrity sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz#8fbb6b2e91fa26ac5d4aa25c6b6e4f20f9c0ae27" + integrity sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ== + +"@svgr/babel-plugin-svg-dynamic-title@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz#1d5ba1d281363fc0f2f29a60d6d936f9bbc657b0" + integrity sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og== + +"@svgr/babel-plugin-svg-em-dimensions@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz#35e08df300ea8b1d41cb8f62309c241b0369e501" + integrity sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g== + +"@svgr/babel-plugin-transform-react-native-svg@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz#90a8b63998b688b284f255c6a5248abd5b28d754" + integrity sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q== + +"@svgr/babel-plugin-transform-svg-component@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz#013b4bfca88779711f0ed2739f3f7efcefcf4f7e" + integrity sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw== + +"@svgr/babel-preset@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-8.1.0.tgz#0e87119aecdf1c424840b9d4565b7137cabf9ece" + integrity sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "8.0.0" + "@svgr/babel-plugin-remove-jsx-attribute" "8.0.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "8.0.0" + "@svgr/babel-plugin-replace-jsx-attribute-value" "8.0.0" + "@svgr/babel-plugin-svg-dynamic-title" "8.0.0" + "@svgr/babel-plugin-svg-em-dimensions" "8.0.0" + "@svgr/babel-plugin-transform-react-native-svg" "8.1.0" + "@svgr/babel-plugin-transform-svg-component" "8.0.0" + +"@svgr/core@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-8.1.0.tgz#41146f9b40b1a10beaf5cc4f361a16a3c1885e88" + integrity sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA== + dependencies: + "@babel/core" "^7.21.3" + "@svgr/babel-preset" "8.1.0" + camelcase "^6.2.0" + cosmiconfig "^8.1.3" + snake-case "^3.0.4" + +"@svgr/hast-util-to-babel-ast@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz#6952fd9ce0f470e1aded293b792a2705faf4ffd4" + integrity sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q== + dependencies: + "@babel/types" "^7.21.3" + entities "^4.4.0" + +"@svgr/plugin-jsx@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz#96969f04a24b58b174ee4cd974c60475acbd6928" + integrity sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA== + dependencies: + "@babel/core" "^7.21.3" + "@svgr/babel-preset" "8.1.0" + "@svgr/hast-util-to-babel-ast" "8.0.0" + svg-parser "^2.0.4" + +"@svgr/plugin-svgo@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz#b115b7b967b564f89ac58feae89b88c3decd0f00" + integrity sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA== + dependencies: + cosmiconfig "^8.1.3" + deepmerge "^4.3.1" + svgo "^3.0.2" + +"@svgr/webpack@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-8.1.0.tgz#16f1b5346f102f89fda6ec7338b96a701d8be0c2" + integrity sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA== + dependencies: + "@babel/core" "^7.21.3" + "@babel/plugin-transform-react-constant-elements" "^7.21.3" + "@babel/preset-env" "^7.20.2" + "@babel/preset-react" "^7.18.6" + "@babel/preset-typescript" "^7.21.0" + "@svgr/core" "8.1.0" + "@svgr/plugin-jsx" "8.1.0" + "@svgr/plugin-svgo" "8.1.0" + +"@szmarczak/http-timer@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" + integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== + dependencies: + defer-to-connect "^2.0.1" + +"@tanstack/virtual-core@3.5.1": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.5.1.tgz#f519149bce9156d0e7954b9531df15f446f2fc12" + integrity sha512-046+AUSiDru/V9pajE1du8WayvBKeCvJ2NmKPy/mR8/SbKKrqmSbj7LJBfXE+nSq4f5TBXvnCzu0kcYebI9WdQ== + +"@tanstack/vue-virtual@^3.0.0-beta.60": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@tanstack/vue-virtual/-/vue-virtual-3.5.1.tgz#90b4e4afbba663f50a83ad2dc3ac0790625f9cb0" + integrity sha512-6mc4HtDPieDVKD6GqzHiJkdzuqRNdQZuoIbkwE6af939WV+w62YmSF69jN+BOqClqh/ObiW+X1VOQx1Pftrx1A== + dependencies: + "@tanstack/virtual-core" "3.5.1" + +"@testing-library/dom@^9.3.4": + version "9.3.4" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.4.tgz#50696ec28376926fec0a1bf87d9dbac5e27f60ce" + integrity sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^5.0.1" + aria-query "5.1.3" + chalk "^4.1.0" + dom-accessibility-api "^0.5.9" + lz-string "^1.5.0" + pretty-format "^27.0.2" + +"@testing-library/jest-dom@^6.4.2": + version "6.4.5" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.4.5.tgz#badb40296477149136dabef32b572ddd3b56adf1" + integrity sha512-AguB9yvTXmCnySBP1lWjfNNUwpbElsaQ567lt2VdGqAdHtpieLgjmcVyv1q7PMIvLbgpDdkWV5Ydv3FEejyp2A== + dependencies: + "@adobe/css-tools" "^4.3.2" + "@babel/runtime" "^7.9.2" + aria-query "^5.0.0" + chalk "^3.0.0" + css.escape "^1.5.1" + dom-accessibility-api "^0.6.3" + lodash "^4.17.21" + redent "^3.0.0" + +"@testing-library/user-event@^14.5.2": + version "14.5.2" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.5.2.tgz#db7257d727c891905947bd1c1a99da20e03c2ebd" + integrity sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ== + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@types/acorn@^4.0.0": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22" + integrity sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ== + dependencies: + "@types/estree" "*" + +"@types/aria-query@^5.0.1": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708" + integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw== + +"@types/body-parser@*": + version "1.19.5" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bonjour@^3.5.9": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== + dependencies: + "@types/node" "*" + +"@types/connect-history-api-fallback@^1.3.5": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + +"@types/d3-scale-chromatic@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz#fc0db9c10e789c351f4c42d96f31f2e4df8f5644" + integrity sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw== + +"@types/d3-scale@^4.0.3": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.8.tgz#d409b5f9dcf63074464bf8ddfb8ee5a1f95945bb" + integrity sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ== + dependencies: + "@types/d3-time" "*" + +"@types/d3-time@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.3.tgz#3c186bbd9d12b9d84253b6be6487ca56b54f88be" + integrity sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw== + +"@types/debug@^4.0.0": + version "4.1.12" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" + +"@types/eslint-scope@^3.7.3": + version "3.7.7" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.56.10" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.10.tgz#eb2370a73bf04a901eeba8f22595c7ee0f7eb58d" + integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree-jsx@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree-jsx/-/estree-jsx-1.0.5.tgz#858a88ea20f34fe65111f005a689fa1ebf70dc18" + integrity sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg== + dependencies: + "@types/estree" "*" + +"@types/estree@*", "@types/estree@1.0.5", "@types/estree@^1.0.0", "@types/estree@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": + version "4.19.3" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.3.tgz#e469a13e4186c9e1c0418fb17be8bc8ff1b19a7a" + integrity sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@*", "@types/express@^4.17.13", "@types/express@^4.7.0": + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/fined@*": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@types/fined/-/fined-1.1.5.tgz#504b87a0de8813e06e7d226f34c1cefb70d9afb0" + integrity sha512-2N93vadEGDFhASTIRbizbl4bNqpMOId5zZfj6hHqYZfEzEfO9onnU4Im8xvzo8uudySDveDHBOOSlTWf38ErfQ== + +"@types/gtag.js@^0.0.12": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@types/gtag.js/-/gtag.js-0.0.12.tgz#095122edca896689bdfcdd73b057e23064d23572" + integrity sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg== + +"@types/har-format@^1.2.10", "@types/har-format@^1.2.15": + version "1.2.15" + resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.15.tgz#f352493638c2f89d706438a19a9eb300b493b506" + integrity sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA== + +"@types/hast@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" + integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== + dependencies: + "@types/unist" "*" + +"@types/history@^4.7.11": + version "4.7.11" + resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64" + integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA== + +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + +"@types/http-cache-semantics@^4.0.2": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== + +"@types/http-errors@*": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== + +"@types/http-proxy@^1.17.8": + version "1.17.14" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec" + integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== + dependencies: + "@types/node" "*" + +"@types/inquirer@^9.0.3": + version "9.0.7" + resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-9.0.7.tgz#61bb8d0e42f038b9a1738b08fba7fa98ad9b4b24" + integrity sha512-Q0zyBupO6NxGRZut/JdmqYKOnN95Eg5V8Csg3PGKkP+FnvsUZx1jAyK7fztIszxxMuoBA6E3KXWvdZVXIpx60g== + dependencies: + "@types/through" "*" + rxjs "^7.2.0" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/liftoff@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/liftoff/-/liftoff-4.0.3.tgz#ebac04d98b65e0aeff7cc31655cb6d060a3d8146" + integrity sha512-UgbL2kR5pLrWICvr8+fuSg0u43LY250q7ZMkC+XKC3E+rs/YBDEnQIzsnhU5dYsLlwMi3R75UvCL87pObP1sxw== + dependencies: + "@types/fined" "*" + "@types/node" "*" + +"@types/mdast@^3.0.0": + version "3.0.15" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.15.tgz#49c524a263f30ffa28b71ae282f813ed000ab9f5" + integrity sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ== + dependencies: + "@types/unist" "^2" + +"@types/mdast@^4.0.0", "@types/mdast@^4.0.2": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.4.tgz#7ccf72edd2f1aa7dd3437e180c64373585804dd6" + integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== + dependencies: + "@types/unist" "*" + +"@types/mdx@^2.0.0": + version "2.0.13" + resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.13.tgz#68f6877043d377092890ff5b298152b0a21671bd" + integrity sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw== + +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== + +"@types/ms@*": + version "0.7.34" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" + integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== + +"@types/node-forge@^1.3.0": + version "1.3.11" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + dependencies: + "@types/node" "*" + +"@types/node@*": + version "20.14.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.0.tgz#49ceec7b34f8621470cff44677fa9d461a477f17" + integrity sha512-5cHBxFGJx6L4s56Bubp4fglrEpmyJypsqI6RgzMfBHWUJQGWAAi8cWcgetEbZXHYXo9C2Fa4EEds/uSyS4cxmA== + dependencies: + undici-types "~5.26.4" + +"@types/node@^17.0.5": + version "17.0.45" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" + integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== + +"@types/node@^20.11.26": + version "20.14.14" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.14.tgz#6b655d4a88623b0edb98300bb9dd2107225f885e" + integrity sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ== + dependencies: + undici-types "~5.26.4" + +"@types/parse-json@^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== + +"@types/prismjs@^1.26.0": + version "1.26.4" + resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.4.tgz#1a9e1074619ce1d7322669e5b46fbe823925103a" + integrity sha512-rlAnzkW2sZOjbqZ743IHUhFcvzaGbqijwOu8QZnZCjfQzBqFE3s4lOTJEsxikImav9uzz/42I+O7YUs1mWgMlg== + +"@types/prop-types@*": + version "15.7.12" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6" + integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== + +"@types/qs@*", "@types/qs@^6.9.5": + version "6.9.15" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce" + integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== + +"@types/range-parser@*": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== + +"@types/react-router-config@*", "@types/react-router-config@^5.0.7": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@types/react-router-config/-/react-router-config-5.0.11.tgz#2761a23acc7905a66a94419ee40294a65aaa483a" + integrity sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router" "^5.1.0" + +"@types/react-router-dom@*": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83" + integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router" "*" + +"@types/react-router@*", "@types/react-router@^5.1.0": + version "5.1.20" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.20.tgz#88eccaa122a82405ef3efbcaaa5dcdd9f021387c" + integrity sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + +"@types/react@*": + version "18.3.3" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.3.tgz#9679020895318b0915d7a3ab004d92d33375c45f" + integrity sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + +"@types/sax@^1.2.1": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/sax/-/sax-1.2.7.tgz#ba5fe7df9aa9c89b6dff7688a19023dd2963091d" + integrity sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A== + dependencies: + "@types/node" "*" + +"@types/send@*": + version "0.17.4" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-index@^1.9.1": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== + dependencies: + "@types/express" "*" + +"@types/serve-static@*", "@types/serve-static@^1.13.10": + version "1.15.7" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" + integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/send" "*" + +"@types/sockjs@^0.3.33": + version "0.3.36" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== + dependencies: + "@types/node" "*" + +"@types/through@*": + version "0.0.33" + resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.33.tgz#14ebf599320e1c7851e7d598149af183c6b9ea56" + integrity sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ== + dependencies: + "@types/node" "*" + +"@types/unist@*", "@types/unist@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.2.tgz#6dd61e43ef60b34086287f83683a5c1b2dc53d20" + integrity sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ== + +"@types/unist@^2", "@types/unist@^2.0.0": + version "2.0.10" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.10.tgz#04ffa7f406ab628f7f7e97ca23e290cd8ab15efc" + integrity sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA== + +"@types/web-bluetooth@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" + integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== + +"@types/ws@^8.5.5": + version "8.5.10" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" + integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.8": + version "17.0.32" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" + integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== + dependencies: + "@types/yargs-parser" "*" + +"@uiw/codemirror-themes@^4.21.21": + version "4.22.1" + resolved "https://registry.yarnpkg.com/@uiw/codemirror-themes/-/codemirror-themes-4.22.1.tgz#e439627572d06ea9840f07d8e80e921aa8ded694" + integrity sha512-5TeB8wCc0aNd3YEhzOvgekpAFQfEm4fCTUcGmEIQqaRNgKAM83HYNpE1JF2j7x2oDFugdiO0yJynS6bo1zVOuw== + dependencies: + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + +"@ungap/structured-clone@^1.0.0", "@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@unhead/dom@1.9.12": + version "1.9.12" + resolved "https://registry.yarnpkg.com/@unhead/dom/-/dom-1.9.12.tgz#90d608a583d750307625e1852d4b0ccddc294b63" + integrity sha512-3MY1TbZmEjGNZapi3wvJW0vWNS2CLKHt7/m57sScDHCNvNBe1mTwrIOhtZFDgAndhml2EVQ68RMa0Vhum/M+cw== + dependencies: + "@unhead/schema" "1.9.12" + "@unhead/shared" "1.9.12" + +"@unhead/schema@1.9.12", "@unhead/schema@^1.9.5": + version "1.9.12" + resolved "https://registry.yarnpkg.com/@unhead/schema/-/schema-1.9.12.tgz#0f9088176681b0253fef23c9b5a9fc181a56a322" + integrity sha512-ue2FKyIZKsuZDpWJBMlBGwMm4s+vFeU3NUWsNt8Z+2JkOUIqO/VG43LxNgY1M595bOS71Gdxk+G9VtzfKJ5uEA== + dependencies: + hookable "^5.5.3" + zhead "^2.2.4" + +"@unhead/shared@1.9.12": + version "1.9.12" + resolved "https://registry.yarnpkg.com/@unhead/shared/-/shared-1.9.12.tgz#97588a74894952d3d98d76062ba15ec633bd6bbf" + integrity sha512-72wlLXG3FP3sXUrwd42Uv8jYpHSg4R6IFJcsl+QisRjKM89JnjOFSw1DqWO4IOftW5xOxS4J5v7SQyJ4NJo7Bw== + dependencies: + "@unhead/schema" "1.9.12" + +"@vcarl/remark-headings@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@vcarl/remark-headings/-/remark-headings-0.1.0.tgz#b5831c3f16d8b2570872f554ba509437ec507a1e" + integrity sha512-ffQxJUcapJ9Bk+fiGN49YJ9RaYMibrSTSezB1Fcrtu+0YSZxA3bsaLlIv1u/4sjPIeW/BKrs4xtMT3l3P9Ba5Q== + dependencies: + mdast-util-to-string "^3.1.0" + unist-util-visit "^4.0.0" + +"@vitest/expect@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-1.3.1.tgz#d4c14b89c43a25fd400a6b941f51ba27fe0cb918" + integrity sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw== + dependencies: + "@vitest/spy" "1.3.1" + "@vitest/utils" "1.3.1" + chai "^4.3.10" + +"@vitest/spy@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-1.3.1.tgz#814245d46d011b99edd1c7528f5725c64e85a88b" + integrity sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig== + dependencies: + tinyspy "^2.2.0" + +"@vitest/spy@^1.3.1": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-1.6.0.tgz#362cbd42ccdb03f1613798fde99799649516906d" + integrity sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw== + dependencies: + tinyspy "^2.2.0" + +"@vitest/utils@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-1.3.1.tgz#7b05838654557544f694a372de767fcc9594d61a" + integrity sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ== + dependencies: + diff-sequences "^29.6.3" + estree-walker "^3.0.3" + loupe "^2.3.7" + pretty-format "^29.7.0" + +"@vitest/utils@^1.3.1": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-1.6.0.tgz#5c5675ca7d6f546a7b4337de9ae882e6c57896a1" + integrity sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw== + dependencies: + diff-sequences "^29.6.3" + estree-walker "^3.0.3" + loupe "^2.3.7" + pretty-format "^29.7.0" + +"@vueuse/core@^10.9.0": + version "10.11.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.11.0.tgz#b042585a8bf98bb29c177b33999bd0e3fcd9e65d" + integrity sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g== + dependencies: + "@types/web-bluetooth" "^0.0.20" + "@vueuse/metadata" "10.11.0" + "@vueuse/shared" "10.11.0" + vue-demi ">=0.14.8" + +"@vueuse/metadata@10.11.0": + version "10.11.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.11.0.tgz#27be47cf115ee98e947a1bfcd0b1b5b35d785fb6" + integrity sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ== + +"@vueuse/shared@10.11.0": + version "10.11.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.11.0.tgz#be09262b2c5857069ed3dadd1680f22c4cb6f984" + integrity sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A== + dependencies: + vue-demi ">=0.14.8" + +"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" + integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz#6df20d272ea5439bf20ab3492b7fb70e9bfcb3f6" + integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + +"@webassemblyjs/helper-wasm-section@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz#3da623233ae1a60409b509a52ade9bc22a37f7bf" + integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.12.1" + +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz#9f9f3ff52a14c980939be0ef9d5df9ebc678ae3b" + integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-opt" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + "@webassemblyjs/wast-printer" "1.12.1" + +"@webassemblyjs/wasm-gen@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz#a6520601da1b5700448273666a71ad0a45d78547" + integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz#9e6e81475dfcfb62dab574ac2dda38226c232bc5" + integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + +"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz#c47acb90e6f083391e3fa61d113650eea1e95937" + integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz#bcecf661d7d1abdaf989d8341a4833e33e2b31ac" + integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-class-fields@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/acorn-class-fields/-/acorn-class-fields-0.2.1.tgz#748058bceeb0ef25164bbc671993984083f5a085" + integrity sha512-US/kqTe0H8M4LN9izoL+eykVAitE68YMuYZ3sHn3i1fjniqR7oQ3SPvuMK/VT1kjOQHrx5Q88b90TtOKgAv2hQ== + +acorn-dynamic-import@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" + integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== + +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + +acorn-jsx@^5.0.0, acorn-jsx@^5.0.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.0.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== + +acorn@^6.1.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^8.0.0, acorn@^8.0.4, acorn@^8.7.1, acorn@^8.8.2: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + +address@^1.0.1, address@^1.1.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" + integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +aggregate-error@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-4.0.1.tgz#25091fe1573b9e0be892aeda15c7c66a545f758e" + integrity sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w== + dependencies: + clean-stack "^4.0.0" + indent-string "^5.0.0" + +ajv-draft-04@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz#3b64761b268ba0b9e668f0b41ba53fce0ad77fc8" + integrity sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw== + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.12.2, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0, ajv@^8.9.0: + version "8.14.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.14.0.tgz#f514ddfd4756abb200e1704414963620a625ebbb" + integrity sha512-oYs1UUtO97ZO2lJ4bwnWeQW8/zvOIQLGKcvPTsWmvc2SYgBb+upuNS5NxoLaMU4h8Ju3Nbj6Cq8mD2LQoqVKFA== + dependencies: + fast-deep-equal "^3.1.3" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.4.1" + +ajv@^8.12.0: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +algoliasearch-helper@^3.13.3: + version "3.21.0" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.21.0.tgz#d28fdb61199b5c229714788bfb812376b18aaf28" + integrity sha512-hjVOrL15I3Y3K8xG0icwG1/tWE+MocqBrhW6uVBWpU+/kVEMK0BnM2xdssj6mZM61eJ4iRxHR0djEI3ENOpR8w== + dependencies: + "@algolia/events" "^4.0.1" + +algoliasearch@^4.18.0, algoliasearch@^4.19.1: + version "4.23.3" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.23.3.tgz#e09011d0a3b0651444916a3e6bbcba064ec44b60" + integrity sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg== + dependencies: + "@algolia/cache-browser-local-storage" "4.23.3" + "@algolia/cache-common" "4.23.3" + "@algolia/cache-in-memory" "4.23.3" + "@algolia/client-account" "4.23.3" + "@algolia/client-analytics" "4.23.3" + "@algolia/client-common" "4.23.3" + "@algolia/client-personalization" "4.23.3" + "@algolia/client-search" "4.23.3" + "@algolia/logger-common" "4.23.3" + "@algolia/logger-console" "4.23.3" + "@algolia/recommend" "4.23.3" + "@algolia/requester-browser-xhr" "4.23.3" + "@algolia/requester-common" "4.23.3" + "@algolia/requester-node-http" "4.23.3" + "@algolia/transporter" "4.23.3" + +ansi-align@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + +ansi-escapes@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^5.0.0, arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-hidden@^1.1.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/aria-hidden/-/aria-hidden-1.2.4.tgz#b78e383fdbc04d05762c78b4a25a501e736c4522" + integrity sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A== + dependencies: + tslib "^2.0.0" + +aria-query@5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + dependencies: + deep-equal "^2.0.5" + +aria-query@^5.0.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +array-buffer-byte-length@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + +array-each@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + integrity sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-slice@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +astring@^1.8.0: + version "1.8.6" + resolved "https://registry.yarnpkg.com/astring/-/astring-1.8.6.tgz#2c9c157cf1739d67561c56ba896e6948f6b93731" + integrity sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +autoprefixer@^10.4.14, autoprefixer@^10.4.19: + version "10.4.19" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.19.tgz#ad25a856e82ee9d7898c59583c1afeb3fa65f89f" + integrity sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew== + dependencies: + browserslist "^4.23.0" + caniuse-lite "^1.0.30001599" + fraction.js "^4.3.7" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +axios@^1.6.8: + version "1.7.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" + integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +babel-loader@^9.1.3: + version "9.1.3" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.1.3.tgz#3d0e01b4e69760cc694ee306fe16d358aa1c6f9a" + integrity sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw== + dependencies: + find-cache-dir "^4.0.0" + schema-utils "^4.0.0" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.11" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz#30320dfe3ffe1a336c15afdcdafd6fd615b25e33" + integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.2" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.10.1, babel-plugin-polyfill-corejs3@^0.10.4: + version "0.10.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz#789ac82405ad664c20476d0233b485281deb9c77" + integrity sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.1" + core-js-compat "^3.36.1" + +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz#addc47e240edd1da1058ebda03021f382bba785e" + integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.2" + +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +bonjour-service@^1.0.11: + version "1.2.1" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02" + integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== + dependencies: + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +boxen@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-6.2.1.tgz#b098a2278b2cd2845deef2dff2efc38d329b434d" + integrity sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw== + dependencies: + ansi-align "^3.0.1" + camelcase "^6.2.0" + chalk "^4.1.2" + cli-boxes "^3.0.0" + string-width "^5.0.1" + type-fest "^2.5.0" + widest-line "^4.0.1" + wrap-ansi "^8.0.1" + +boxen@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.1.1.tgz#f9ba525413c2fec9cdb88987d835c4f7cad9c8f4" + integrity sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog== + dependencies: + ansi-align "^3.0.1" + camelcase "^7.0.1" + chalk "^5.2.0" + cli-boxes "^3.0.0" + string-width "^5.1.2" + type-fest "^2.13.0" + widest-line "^4.0.1" + wrap-ansi "^8.1.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.22.2, browserslist@^4.23.0: + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== + dependencies: + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacheable-lookup@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" + integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== + +cacheable-request@^10.2.8: + version "10.2.14" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.14.tgz#eb915b665fda41b79652782df3f553449c406b9d" + integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== + dependencies: + "@types/http-cache-semantics" "^4.0.2" + get-stream "^6.0.1" + http-cache-semantics "^4.1.1" + keyv "^4.5.3" + mimic-response "^4.0.0" + normalize-url "^8.0.0" + responselike "^3.0.0" + +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +camelcase@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" + integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587, caniuse-lite@^1.0.30001599: + version "1.0.30001627" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001627.tgz#8071c42d468e06ed2fb2c545efe79a663fd326ab" + integrity sha512-4zgNiB8nTyV/tHhwZrFs88ryjls/lHiqFhrxCW4qSTeuRByBVnPYpDInchOIySWknznucaf31Z4KYqjfbrecVw== + +capital-case@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" + integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + +chai@^4.3.10: + version "4.4.1" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" + integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.3" + deep-eql "^4.1.3" + get-func-name "^2.0.2" + loupe "^2.3.6" + pathval "^1.1.1" + type-detect "^4.0.8" + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^5.0.1, chalk@^5.2.0, chalk@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +change-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" + integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== + dependencies: + camel-case "^4.1.2" + capital-case "^1.0.4" + constant-case "^3.0.4" + dot-case "^3.0.4" + header-case "^2.0.4" + no-case "^3.0.4" + param-case "^3.0.4" + pascal-case "^3.1.2" + path-case "^3.0.4" + sentence-case "^3.0.4" + snake-case "^3.0.4" + tslib "^2.0.3" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== + +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + +character-reference-invalid@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" + integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +check-error@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== + dependencies: + get-func-name "^2.0.2" + +cheerio-select@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" + integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== + dependencies: + boolbase "^1.0.0" + css-select "^5.1.0" + css-what "^6.1.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + +cheerio@^1.0.0-rc.12: + version "1.0.0-rc.12" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" + integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== + dependencies: + cheerio-select "^2.1.0" + dom-serializer "^2.0.0" + domhandler "^5.0.3" + domutils "^3.0.1" + htmlparser2 "^8.0.1" + parse5 "^7.0.0" + parse5-htmlparser2-tree-adapter "^7.0.0" + +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.2, chokidar@^3.5.3, chokidar@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chrome-trace-event@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +class-variance-authority@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/class-variance-authority/-/class-variance-authority-0.7.0.tgz#1c3134d634d80271b1837452b06d821915954522" + integrity sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A== + dependencies: + clsx "2.0.0" + +clean-css@^5.2.2, clean-css@^5.3.2, clean-css@~5.3.2: + version "5.3.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" + integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +clean-stack@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-4.2.0.tgz#c464e4cde4ac789f4e0735c5d75beb49d7b30b31" + integrity sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg== + dependencies: + escape-string-regexp "5.0.0" + +cli-boxes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" + integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== + dependencies: + restore-cursor "^4.0.0" + +cli-spinners@^2.5.0, cli-spinners@^2.9.2: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-table3@^0.6.3: + version "0.6.5" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f" + integrity sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== + dependencies: + string-width "^4.2.0" + optionalDependencies: + "@colors/colors" "1.5.0" + +cli-width@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" + integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +clsx@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b" + integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q== + +clsx@^2.0.0, clsx@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== + +codemirror@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-6.0.1.tgz#62b91142d45904547ee3e0e0e4c1a79158035a29" + integrity sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/commands" "^6.0.0" + "@codemirror/language" "^6.0.0" + "@codemirror/lint" "^6.0.0" + "@codemirror/search" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + +collapse-white-space@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-2.1.0.tgz#640257174f9f42c740b40f3b55ee752924feefca" + integrity sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colord@^2.9.3: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^2.0.10: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +combine-promises@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/combine-promises/-/combine-promises-1.2.0.tgz#5f2e68451862acf85761ded4d9e2af7769c2ca6a" + integrity sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + +commander@7, commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +config-chain@^1.1.11: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" + integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== + dependencies: + dot-prop "^6.0.1" + graceful-fs "^4.2.6" + unique-string "^3.0.0" + write-file-atomic "^3.0.3" + xdg-basedir "^5.0.1" + +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== + +consola@^2.15.3: + version "2.15.3" + resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" + integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== + +constant-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" + integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case "^2.0.2" + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + integrity sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + +copy-text-to-clipboard@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz#0202b2d9bdae30a49a53f898626dcc3b49ad960b" + integrity sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q== + +copy-webpack-plugin@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz#96d4dbdb5f73d02dd72d0528d1958721ab72e04a" + integrity sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ== + dependencies: + fast-glob "^3.2.11" + glob-parent "^6.0.1" + globby "^13.1.1" + normalize-path "^3.0.0" + schema-utils "^4.0.0" + serialize-javascript "^6.0.0" + +core-js-compat@^3.31.0, core-js-compat@^3.36.1: + version "3.37.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.37.1.tgz#c844310c7852f4bdf49b8d339730b97e17ff09ee" + integrity sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg== + dependencies: + browserslist "^4.23.0" + +core-js-pure@^3.30.2: + version "3.37.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.37.1.tgz#2b4b34281f54db06c9a9a5bd60105046900553bd" + integrity sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA== + +core-js@^3.31.1: + version "3.37.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.37.1.tgz#d21751ddb756518ac5a00e4d66499df981a62db9" + integrity sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cose-base@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-1.0.3.tgz#650334b41b869578a543358b80cda7e0abe0a60a" + integrity sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg== + dependencies: + layout-base "^1.0.0" + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cosmiconfig@^8.1.3, cosmiconfig@^8.3.5: + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + +crelt@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.6.tgz#7cc898ea74e190fb6ef9dae57f8f81cf7302df72" + integrity sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g== + +cross-spawn@^7.0.0, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-random-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" + integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== + dependencies: + type-fest "^1.0.1" + +css-declaration-sorter@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz#6dec1c9523bc4a643e088aab8f09e67a54961024" + integrity sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow== + +css-loader@^6.8.1: + version "6.11.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.11.0.tgz#33bae3bf6363d0a7c2cf9031c96c744ff54d85ba" + integrity sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g== + dependencies: + icss-utils "^5.1.0" + postcss "^8.4.33" + postcss-modules-extract-imports "^3.1.0" + postcss-modules-local-by-default "^4.0.5" + postcss-modules-scope "^3.2.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.2.0" + semver "^7.5.4" + +css-minimizer-webpack-plugin@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz#33effe662edb1a0bf08ad633c32fa75d0f7ec565" + integrity sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.18" + cssnano "^6.0.1" + jest-worker "^29.4.3" + postcss "^8.4.24" + schema-utils "^4.0.1" + serialize-javascript "^6.0.1" + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.0.1, css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +css.escape@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-advanced@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz#82b090872b8f98c471f681d541c735acf8b94d3f" + integrity sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ== + dependencies: + autoprefixer "^10.4.19" + browserslist "^4.23.0" + cssnano-preset-default "^6.1.2" + postcss-discard-unused "^6.0.5" + postcss-merge-idents "^6.0.3" + postcss-reduce-idents "^6.0.3" + postcss-zindex "^6.0.2" + +cssnano-preset-default@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz#adf4b89b975aa775f2750c89dbaf199bbd9da35e" + integrity sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg== + dependencies: + browserslist "^4.23.0" + css-declaration-sorter "^7.2.0" + cssnano-utils "^4.0.2" + postcss-calc "^9.0.1" + postcss-colormin "^6.1.0" + postcss-convert-values "^6.1.0" + postcss-discard-comments "^6.0.2" + postcss-discard-duplicates "^6.0.3" + postcss-discard-empty "^6.0.3" + postcss-discard-overridden "^6.0.2" + postcss-merge-longhand "^6.0.5" + postcss-merge-rules "^6.1.1" + postcss-minify-font-values "^6.1.0" + postcss-minify-gradients "^6.0.3" + postcss-minify-params "^6.1.0" + postcss-minify-selectors "^6.0.4" + postcss-normalize-charset "^6.0.2" + postcss-normalize-display-values "^6.0.2" + postcss-normalize-positions "^6.0.2" + postcss-normalize-repeat-style "^6.0.2" + postcss-normalize-string "^6.0.2" + postcss-normalize-timing-functions "^6.0.2" + postcss-normalize-unicode "^6.1.0" + postcss-normalize-url "^6.0.2" + postcss-normalize-whitespace "^6.0.2" + postcss-ordered-values "^6.0.2" + postcss-reduce-initial "^6.1.0" + postcss-reduce-transforms "^6.0.2" + postcss-svgo "^6.0.3" + postcss-unique-selectors "^6.0.4" + +cssnano-utils@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.2.tgz#56f61c126cd0f11f2eef1596239d730d9fceff3c" + integrity sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ== + +cssnano@^6.0.1, cssnano@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.1.2.tgz#4bd19e505bd37ee7cf0dc902d3d869f6d79c66b8" + integrity sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA== + dependencies: + cssnano-preset-default "^6.1.2" + lilconfig "^3.1.1" + +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + +csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +cva@1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.yarnpkg.com/cva/-/cva-1.0.0-beta.1.tgz#ad5ad2cc744ccf50d6b70f72645a60f9dfd86e8c" + integrity sha512-gznFqTgERU9q4wg7jfgqtt34+RUt9S5t0xDAAEuDwQEAXEgjdDkKXpLLNjwSxsB4Ln/sqWJEH7yhE8Ny0mxd0w== + dependencies: + clsx "2.0.0" + +cytoscape-cose-bilkent@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz#762fa121df9930ffeb51a495d87917c570ac209b" + integrity sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ== + dependencies: + cose-base "^1.0.0" + +cytoscape@^3.28.1: + version "3.29.2" + resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.29.2.tgz#c99f42513c80a75e2e94858add32896c860202ac" + integrity sha512-2G1ycU28Nh7OHT9rkXRLpCDP30MKH1dXJORZuBhtEhEW7pKwgPi77ImqlCWinouyE1PNepIOGZBOrE84DG7LyQ== + +"d3-array@1 - 2": + version "2.12.1" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" + integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== + dependencies: + internmap "^1.0.0" + +"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" + integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== + dependencies: + internmap "1 - 2" + +d3-axis@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" + integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== + +d3-brush@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" + integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "3" + d3-transition "3" + +d3-chord@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" + integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== + dependencies: + d3-path "1 - 3" + +"d3-color@1 - 3", d3-color@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +d3-contour@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.2.tgz#bb92063bc8c5663acb2422f99c73cbb6c6ae3bcc" + integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA== + dependencies: + d3-array "^3.2.0" + +d3-delaunay@6: + version "6.0.4" + resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b" + integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== + dependencies: + delaunator "5" + +"d3-dispatch@1 - 3", d3-dispatch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== + +"d3-drag@2 - 3", d3-drag@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" + integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== + dependencies: + d3-dispatch "1 - 3" + d3-selection "3" + +"d3-dsv@1 - 3", d3-dsv@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" + integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== + dependencies: + commander "7" + iconv-lite "0.6" + rw "1" + +"d3-ease@1 - 3", d3-ease@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== + +d3-fetch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" + integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== + dependencies: + d3-dsv "1 - 3" + +d3-force@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" + integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== + dependencies: + d3-dispatch "1 - 3" + d3-quadtree "1 - 3" + d3-timer "1 - 3" + +"d3-format@1 - 3", d3-format@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" + integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== + +d3-geo@3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.1.tgz#6027cf51246f9b2ebd64f99e01dc7c3364033a4d" + integrity sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q== + dependencies: + d3-array "2.5.0 - 3" + +d3-hierarchy@3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" + integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== + +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + +d3-path@1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" + integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== + +"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" + integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== + +d3-polygon@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" + integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== + +"d3-quadtree@1 - 3", d3-quadtree@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" + integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== + +d3-random@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" + integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== + +d3-sankey@^0.12.3: + version "0.12.3" + resolved "https://registry.yarnpkg.com/d3-sankey/-/d3-sankey-0.12.3.tgz#b3c268627bd72e5d80336e8de6acbfec9d15d01d" + integrity sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ== + dependencies: + d3-array "1 - 2" + d3-shape "^1.2.0" + +d3-scale-chromatic@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#34c39da298b23c20e02f1a4b239bd0f22e7f1314" + integrity sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ== + dependencies: + d3-color "1 - 3" + d3-interpolate "1 - 3" + +d3-scale@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" + integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== + dependencies: + d3-array "2.10.0 - 3" + d3-format "1 - 3" + d3-interpolate "1.2.0 - 3" + d3-time "2.1.1 - 3" + d3-time-format "2 - 4" + +"d3-selection@2 - 3", d3-selection@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== + +d3-shape@3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" + integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== + dependencies: + d3-path "^3.1.0" + +d3-shape@^1.2.0: + version "1.3.7" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" + integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== + dependencies: + d3-path "1" + +"d3-time-format@2 - 4", d3-time-format@4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" + integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== + dependencies: + d3-time "1 - 3" + +"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" + integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== + dependencies: + d3-array "2 - 3" + +"d3-timer@1 - 3", d3-timer@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== + +"d3-transition@2 - 3", d3-transition@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== + dependencies: + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" + +d3-zoom@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" + integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "2 - 3" + d3-transition "2 - 3" + +d3@^7.4.0, d3@^7.8.2: + version "7.9.0" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.9.0.tgz#579e7acb3d749caf8860bd1741ae8d371070cd5d" + integrity sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA== + dependencies: + d3-array "3" + d3-axis "3" + d3-brush "3" + d3-chord "3" + d3-color "3" + d3-contour "4" + d3-delaunay "6" + d3-dispatch "3" + d3-drag "3" + d3-dsv "3" + d3-ease "3" + d3-fetch "3" + d3-force "3" + d3-format "3" + d3-geo "3" + d3-hierarchy "3" + d3-interpolate "3" + d3-path "3" + d3-polygon "3" + d3-quadtree "3" + d3-random "3" + d3-scale "4" + d3-scale-chromatic "3" + d3-selection "3" + d3-shape "3" + d3-time "3" + d3-time-format "4" + d3-timer "3" + d3-transition "3" + d3-zoom "3" + +dagre-d3-es@7.0.10: + version "7.0.10" + resolved "https://registry.yarnpkg.com/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz#19800d4be674379a3cd8c86a8216a2ac6827cadc" + integrity sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A== + dependencies: + d3 "^7.8.2" + lodash-es "^4.17.21" + +date-fns@^2.15.0: + version "2.30.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" + +date-fns@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-3.6.0.tgz#f20ca4fe94f8b754951b24240676e8618c0206bf" + integrity sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww== + +dayjs@^1.11.7: + version "1.11.11" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.11.tgz#dfe0e9d54c5f8b68ccf8ca5f72ac603e7e5ed59e" + integrity sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg== + +debounce@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + +debug@2.6.9, debug@^2.6.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: + version "4.3.5" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== + dependencies: + ms "2.1.2" + +decode-named-character-reference@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + dependencies: + character-entities "^2.0.0" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-eql@^4.1.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" + integrity sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg== + dependencies: + type-detect "^4.0.0" + +deep-equal@^2.0.5: + version "2.2.3" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1" + integrity sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.5" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.2" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.1" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.13" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deepmerge@^4.2.2, deepmerge@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +default-gateway@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +defer-to-connect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +del@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" + integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== + dependencies: + globby "^11.0.1" + graceful-fs "^4.2.4" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.2" + p-map "^4.0.0" + rimraf "^3.0.2" + slash "^3.0.0" + +del@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/del/-/del-7.1.0.tgz#0de0044d556b649ff05387f1fa7c885e155fd1b6" + integrity sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg== + dependencies: + globby "^13.1.2" + graceful-fs "^4.2.10" + is-glob "^4.0.3" + is-path-cwd "^3.0.0" + is-path-inside "^4.0.0" + p-map "^5.5.0" + rimraf "^3.0.2" + slash "^4.0.0" + +delaunator@5: + version "5.0.1" + resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.1.tgz#39032b08053923e924d6094fe2cde1a99cc51278" + integrity sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw== + dependencies: + robust-predicates "^3.0.2" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +dequal@^2.0.0, dequal@^2.0.2, dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== + +detect-node-es@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493" + integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +detect-port-alt@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +detect-port@^1.5.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.6.1.tgz#45e4073997c5f292b957cb678fb0bb8ed4250a67" + integrity sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q== + dependencies: + address "^1.0.1" + debug "4" + +devlop@^1.0.0, devlop@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" + integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== + dependencies: + dequal "^2.0.0" + +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + +diff@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" + integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +dns-packet@^5.2.2: + version "5.6.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== + dependencies: + "@leichtgewicht/ip-codec" "^2.0.1" + +docusaurus-plugin-dotenv@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/docusaurus-plugin-dotenv/-/docusaurus-plugin-dotenv-1.0.1.tgz#e0aff6f006fd438d1e981ae2afd7b7a6bd2aa76f" + integrity sha512-qKlWuBd6UoyB0d5ExH9waYGPoy1SnWgV8s8VLg12ydcfxquazXJngV0N5VAX/HuFiZmsPD3L4TYUKxdHWJTeEw== + dependencies: + dotenv-webpack "7.0.2" + +docusaurus-plugin-sass@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/docusaurus-plugin-sass/-/docusaurus-plugin-sass-0.2.5.tgz#6bfb8a227ac6265be685dcbc24ba1989e27b8005" + integrity sha512-Z+D0fLFUKcFpM+bqSUmqKIU+vO+YF1xoEQh5hoFreg2eMf722+siwXDD+sqtwU8E4MvVpuvsQfaHwODNlxJAEg== + dependencies: + sass-loader "^10.1.1" + +dom-accessibility-api@^0.5.9: + version "0.5.16" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" + integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== + +dom-accessibility-api@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz#993e925cc1d73f2c662e7d75dd5a5445259a8fd8" + integrity sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w== + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +dompurify@^3.0.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.1.5.tgz#2c6a113fc728682a0f55684b1388c58ddb79dc38" + integrity sha512-lwG+n5h8QNpxtyrJW/gJWckL+1/DQiYMX8f7t8Z2AZTPw1esVrqjI63i7Zc2Gz0aKzLVMYC1V1PL/ky+aY/NgA== + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +domutils@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + +dotenv-defaults@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dotenv-defaults/-/dotenv-defaults-2.0.2.tgz#6b3ec2e4319aafb70940abda72d3856770ee77ac" + integrity sha512-iOIzovWfsUHU91L5i8bJce3NYK5JXeAwH50Jh6+ARUdLiiGlYWfGw6UkzsYqaXZH/hjE/eCd/PlfM/qqyK0AMg== + dependencies: + dotenv "^8.2.0" + +dotenv-webpack@7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/dotenv-webpack/-/dotenv-webpack-7.0.2.tgz#1bf2e407e92c10fbb08d815b12c991028f10f81c" + integrity sha512-RY+/5uM/XY4bGtih9f9ic8hlrUDxVcZZBPWlnX/aHhaKxcVVX9SH/5VH7CSmvVo9GL6PKvQOA0X1bc552rnatQ== + dependencies: + dotenv-defaults "^2.0.1" + +dotenv@^16.4.5: + version "16.4.5" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" + integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== + +dotenv@^8.2.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" + integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.4.668: + version "1.4.788" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.788.tgz#a3545959d5cfa0a266d3e551386c040be34e7e06" + integrity sha512-ubp5+Ev/VV8KuRoWnfP2QF2Bg+O2ZFdb49DiiNbz2VmgkIqrnyYaqIOqj8A6K/3p1xV0QcU5hBQ1+BmB6ot1OA== + +elkjs@^0.9.0: + version "0.9.3" + resolved "https://registry.yarnpkg.com/elkjs/-/elkjs-0.9.3.tgz#16711f8ceb09f1b12b99e971b138a8384a529161" + integrity sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ== + +emoji-regex@^10.3.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23" + integrity sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojilib@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/emojilib/-/emojilib-2.4.0.tgz#ac518a8bb0d5f76dda57289ccb2fdf9d39ae721e" + integrity sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +emoticon@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-4.0.1.tgz#2d2bbbf231ce3a5909e185bbb64a9da703a1e749" + integrity sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +enhanced-resolve@^5.16.0: + version "5.16.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz#e8bc63d51b826d6f1cbc0a150ecb5a8b0c62e567" + integrity sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^4.2.0, entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-module-lexer@^1.2.1: + version "1.5.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.3.tgz#25969419de9c0b1fbe54279789023e8a9a788412" + integrity sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg== + +esbuild@^0.21.3: + version "0.21.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== + optionalDependencies: + "@esbuild/aix-ppc64" "0.21.5" + "@esbuild/android-arm" "0.21.5" + "@esbuild/android-arm64" "0.21.5" + "@esbuild/android-x64" "0.21.5" + "@esbuild/darwin-arm64" "0.21.5" + "@esbuild/darwin-x64" "0.21.5" + "@esbuild/freebsd-arm64" "0.21.5" + "@esbuild/freebsd-x64" "0.21.5" + "@esbuild/linux-arm" "0.21.5" + "@esbuild/linux-arm64" "0.21.5" + "@esbuild/linux-ia32" "0.21.5" + "@esbuild/linux-loong64" "0.21.5" + "@esbuild/linux-mips64el" "0.21.5" + "@esbuild/linux-ppc64" "0.21.5" + "@esbuild/linux-riscv64" "0.21.5" + "@esbuild/linux-s390x" "0.21.5" + "@esbuild/linux-x64" "0.21.5" + "@esbuild/netbsd-x64" "0.21.5" + "@esbuild/openbsd-x64" "0.21.5" + "@esbuild/sunos-x64" "0.21.5" + "@esbuild/win32-arm64" "0.21.5" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" + +escalade@^3.1.1, escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-goat@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-4.0.0.tgz#9424820331b510b0666b98f7873fe11ac4aa8081" + integrity sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@5.0.0, escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-util-attach-comments@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz#344bde6a64c8a31d15231e5ee9e297566a691c2d" + integrity sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw== + dependencies: + "@types/estree" "^1.0.0" + +estree-util-build-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz#b6d0bced1dcc4f06f25cf0ceda2b2dcaf98168f1" + integrity sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ== + dependencies: + "@types/estree-jsx" "^1.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + estree-walker "^3.0.0" + +estree-util-is-identifier-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz#0b5ef4c4ff13508b34dcd01ecfa945f61fce5dbd" + integrity sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg== + +estree-util-to-js@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz#10a6fb924814e6abb62becf0d2bc4dea51d04f17" + integrity sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg== + dependencies: + "@types/estree-jsx" "^1.0.0" + astring "^1.8.0" + source-map "^0.7.0" + +estree-util-value-to-estree@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/estree-util-value-to-estree/-/estree-util-value-to-estree-3.1.1.tgz#a007388eca677510f319603a2f279fed6d104a15" + integrity sha512-5mvUrF2suuv5f5cGDnDphIy4/gW86z82kl5qG6mM9z04SEQI4FB5Apmaw/TGEf3l55nLtMs5s51dmhUzvAHQCA== + dependencies: + "@types/estree" "^1.0.0" + is-plain-obj "^4.0.0" + +estree-util-visit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/estree-util-visit/-/estree-util-visit-2.0.0.tgz#13a9a9f40ff50ed0c022f831ddf4b58d05446feb" + integrity sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/unist" "^3.0.0" + +estree-walker@^3.0.0, estree-walker@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +eta@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eta/-/eta-2.2.0.tgz#eb8b5f8c4e8b6306561a455e62cd7492fe3a9b8a" + integrity sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eval@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/eval/-/eval-0.1.8.tgz#2b903473b8cc1d1989b83a1e7923f883eb357f85" + integrity sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw== + dependencies: + "@types/node" "*" + require-like ">= 0.1.1" + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw== + dependencies: + homedir-polyfill "^1.0.1" + +express@^4.17.3: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.6.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +extend@^3.0.0, extend@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + 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" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-uri@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" + integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw== + +fast-url-parser@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" + integrity sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ== + dependencies: + punycode "^1.3.2" + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +fault@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fault/-/fault-2.0.1.tgz#d47ca9f37ca26e4bd38374a7c500b5a384755b6c" + integrity sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ== + dependencies: + format "^0.2.0" + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +feed@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.2.tgz#865783ef6ed12579e2c44bbef3c9113bc4956a7e" + integrity sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ== + dependencies: + xml-js "^1.6.11" + +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +file-system-cache@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/file-system-cache/-/file-system-cache-2.3.0.tgz#201feaf4c8cd97b9d0d608e96861bb6005f46fe6" + integrity sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ== + dependencies: + fs-extra "11.1.1" + ramda "0.29.0" + +filesize@^8.0.6: + version "8.0.7" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" + integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-cache-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" + integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== + dependencies: + common-path-prefix "^3.0.0" + pkg-dir "^7.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + +findup-sync@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-5.0.0.tgz#54380ad965a7edca00cc8f63113559aadc541bd2" + integrity sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.3" + micromatch "^4.0.4" + resolve-dir "^1.0.1" + +fined@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fined/-/fined-2.0.0.tgz#6846563ed96879ce6de6c85c715c42250f8d8089" + integrity sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A== + dependencies: + expand-tilde "^2.0.2" + is-plain-object "^5.0.0" + object.defaults "^1.1.0" + object.pick "^1.3.0" + parse-filepath "^1.0.2" + +flagged-respawn@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-2.0.0.tgz#abf39719dcfe1ac06c86c9466081c541c682987b" + integrity sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA== + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +follow-redirects@^1.0.0, follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + integrity sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg== + dependencies: + for-in "^1.0.1" + +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +fork-ts-checker-webpack-plugin@^6.5.0: + version "6.5.3" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz#eda2eff6e22476a2688d10661688c47f611b37f3" + integrity sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ== + dependencies: + "@babel/code-frame" "^7.8.3" + "@types/json-schema" "^7.0.5" + chalk "^4.1.0" + chokidar "^3.4.2" + cosmiconfig "^6.0.0" + deepmerge "^4.2.2" + fs-extra "^9.0.0" + glob "^7.1.6" + memfs "^3.1.2" + minimatch "^3.0.4" + schema-utils "2.7.0" + semver "^7.3.2" + tapable "^1.0.0" + +form-data-encoder@^2.1.2: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" + integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +format@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== + +formdata-node@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.4.1.tgz#23f6a5cb9cb55315912cbec4ff7b0f59bbd191e2" + integrity sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ== + dependencies: + node-domexception "1.0.0" + web-streams-polyfill "4.0.0-beta.3" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +framer-motion@^11.2.12: + version "11.3.21" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-11.3.21.tgz#bdf06cf3ced9f14ddf055e098c1566795f353466" + integrity sha512-D+hfIsvzV8eL/iycld4K+tKlg2Q2LdwnrcBEohtGw3cG1AIuNYATbT5RUqIM1ndsAk+EfGhoSGf0UaiFodc5Tw== + dependencies: + tslib "^2.4.0" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-extra@11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" + integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^11.1.1, fs-extra@^11.2.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-monkey@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.6.tgz#8ead082953e88d992cf3ff844faa907b26756da2" + integrity sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +fuse.js@^6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-6.6.2.tgz#fe463fed4b98c0226ac3da2856a415576dc9a111" + integrity sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-east-asian-width@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz#5e6ebd9baee6fb8b7b6bd505221065f0cd91f64e" + integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== + +get-func-name@^2.0.1, get-func-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-nonce@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3" + integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-stream@^6.0.0, get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +github-slugger@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d" + integrity sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw== + +github-slugger@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-2.0.0.tgz#52cf2f9279a21eb6c59dd385b410f0c0adda8f1a" + integrity sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.1, glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^10.3.10: + version "10.4.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.1.tgz#0cfb01ab6a6b438177bfe6a58e2576f6efe909c2" + integrity sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + path-scurry "^1.11.1" + +glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== + dependencies: + ini "2.0.0" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg== + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +globby@^13.1.1, globby@^13.1.2, globby@^13.2.2: + version "13.2.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" + integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.3.0" + ignore "^5.2.4" + merge2 "^1.4.1" + slash "^4.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +got@^12.1.0: + version "12.6.1" + resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" + integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== + dependencies: + "@sindresorhus/is" "^5.2.0" + "@szmarczak/http-timer" "^5.0.1" + cacheable-lookup "^7.0.0" + cacheable-request "^10.2.8" + decompress-response "^6.0.0" + form-data-encoder "^2.1.2" + get-stream "^6.0.1" + http2-wrapper "^2.1.10" + lowercase-keys "^3.0.0" + p-cancelable "^3.0.0" + responselike "^3.0.0" + +graceful-fs@4.2.10: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +gray-matter@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" + integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== + dependencies: + js-yaml "^3.13.1" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +handlebars@^4.7.8: + version "4.7.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.2" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +has-bigints@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +has-yarn@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" + integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== + +hash-wasm@^4.9.0: + version "4.11.0" + resolved "https://registry.yarnpkg.com/hash-wasm/-/hash-wasm-4.11.0.tgz#7d1479b114c82e48498fdb1d2462a687d00386d5" + integrity sha512-HVusNXlVqHe0fzIzdQOGolnFN6mX/fqcrSAOcTBXdvzrXVHwTz11vXeKRmkR5gTuwVpvHZEIyKoePDvuAR+XwQ== + +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +hast-util-embedded@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-embedded/-/hast-util-embedded-3.0.0.tgz#be4477780fbbe079cdba22982e357a0de4ba853e" + integrity sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA== + dependencies: + "@types/hast" "^3.0.0" + hast-util-is-element "^3.0.0" + +hast-util-from-parse5@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz#654a5676a41211e14ee80d1b1758c399a0327651" + integrity sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + hastscript "^8.0.0" + property-information "^6.0.0" + vfile "^6.0.0" + vfile-location "^5.0.0" + web-namespaces "^2.0.0" + +hast-util-has-property@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-has-property/-/hast-util-has-property-3.0.0.tgz#4e595e3cddb8ce530ea92f6fc4111a818d8e7f93" + integrity sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-is-body-ok-link@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-3.0.0.tgz#6b2d808813a6f73eb20e61bdd2b203591af85eb4" + integrity sha512-VFHY5bo2nY8HiV6nir2ynmEB1XkxzuUffhEGeVx7orbu/B1KaGyeGgMZldvMVx5xWrDlLLG/kQ6YkJAMkBEx0w== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-is-element@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz#6e31a6532c217e5b533848c7e52c9d9369ca0932" + integrity sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-parse-selector@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz#352879fa86e25616036037dd8931fb5f34cb4a27" + integrity sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-phrasing@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/hast-util-phrasing/-/hast-util-phrasing-3.0.1.tgz#fa284c0cd4a82a0dd6020de8300a7b1ebffa1690" + integrity sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ== + dependencies: + "@types/hast" "^3.0.0" + hast-util-embedded "^3.0.0" + hast-util-has-property "^3.0.0" + hast-util-is-body-ok-link "^3.0.0" + hast-util-is-element "^3.0.0" + +hast-util-raw@^9.0.0: + version "9.0.3" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-9.0.3.tgz#87ad66bdd7b1ceb166452bdab7dfb3e9ba640419" + integrity sha512-ICWvVOF2fq4+7CMmtCPD5CM4QKjPbHpPotE6+8tDooV0ZuyJVUzHsrNX+O5NaRbieTf0F7FfeBOMAwi6Td0+yQ== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + "@ungap/structured-clone" "^1.0.0" + hast-util-from-parse5 "^8.0.0" + hast-util-to-parse5 "^8.0.0" + html-void-elements "^3.0.0" + mdast-util-to-hast "^13.0.0" + parse5 "^7.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + web-namespaces "^2.0.0" + zwitch "^2.0.0" + +hast-util-sanitize@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/hast-util-sanitize/-/hast-util-sanitize-5.0.1.tgz#8e90068cd68e651c569960b77a1b25076579b4cf" + integrity sha512-IGrgWLuip4O2nq5CugXy4GI2V8kx4sFVy5Hd4vF7AR2gxS0N9s7nEAVUyeMtZKZvzrxVsHt73XdTsno1tClIkQ== + dependencies: + "@types/hast" "^3.0.0" + "@ungap/structured-clone" "^1.2.0" + unist-util-position "^5.0.0" + +hast-util-to-estree@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz#f2afe5e869ddf0cf690c75f9fc699f3180b51b19" + integrity sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw== + dependencies: + "@types/estree" "^1.0.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + estree-util-attach-comments "^3.0.0" + estree-util-is-identifier-name "^3.0.0" + hast-util-whitespace "^3.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^0.4.0" + unist-util-position "^5.0.0" + zwitch "^2.0.0" + +hast-util-to-html@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-9.0.1.tgz#d108aba473c0ced8377267b1a725b25e818ff3c8" + integrity sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + ccount "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-raw "^9.0.0" + hast-util-whitespace "^3.0.0" + html-void-elements "^3.0.0" + mdast-util-to-hast "^13.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + stringify-entities "^4.0.0" + zwitch "^2.0.4" + +hast-util-to-jsx-runtime@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz#3ed27caf8dc175080117706bf7269404a0aa4f7c" + integrity sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ== + dependencies: + "@types/estree" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + hast-util-whitespace "^3.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^1.0.0" + unist-util-position "^5.0.0" + vfile-message "^4.0.0" + +hast-util-to-parse5@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz#477cd42d278d4f036bc2ea58586130f6f39ee6ed" + integrity sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw== + dependencies: + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + web-namespaces "^2.0.0" + zwitch "^2.0.0" + +hast-util-to-text@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz#57b676931e71bf9cb852453678495b3080bfae3e" + integrity sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + hast-util-is-element "^3.0.0" + unist-util-find-after "^5.0.0" + +hast-util-whitespace@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz#7778ed9d3c92dd9e8c5c8f648a49c21fc51cb621" + integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== + dependencies: + "@types/hast" "^3.0.0" + +hastscript@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-8.0.0.tgz#4ef795ec8dee867101b9f23cc830d4baf4fd781a" + integrity sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw== + dependencies: + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + hast-util-parse-selector "^4.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +header-case@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" + integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== + dependencies: + capital-case "^1.0.4" + tslib "^2.0.3" + +highlight.js@^11.9.0: + version "11.10.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.10.0.tgz#6e3600dc4b33d6dc23d5bd94fbf72405f5892b92" + integrity sha512-SYVnVFswQER+zu1laSya563s+F8VDGt7o35d4utbamowvUNLLMovFqwCLSocpZTz3MgaSRA1IbqRWZv97dtErQ== + +highlight.js@~11.9.0: + version "11.9.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.9.0.tgz#04ab9ee43b52a41a047432c8103e2158a1b8b5b0" + integrity sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw== + +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + +hoist-non-react-statics@^3.1.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +hookable@^5.5.3: + version "5.5.3" + resolved "https://registry.yarnpkg.com/hookable/-/hookable-5.5.3.tgz#6cfc358984a1ef991e2518cb9ed4a778bbd3215d" + integrity sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-entities@^2.3.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" + integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== + +html-escaper@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-minifier-terser@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz#18752e23a2f0ed4b0f550f217bb41693e975b942" + integrity sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA== + dependencies: + camel-case "^4.1.2" + clean-css "~5.3.2" + commander "^10.0.0" + entities "^4.4.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.15.1" + +html-tags@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" + integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== + +html-void-elements@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-3.0.0.tgz#fc9dbd84af9e747249034d4d62602def6517f1d7" + integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== + +html-webpack-plugin@^5.5.3: + version "5.6.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz#50a8fa6709245608cb00e811eacecb8e0d7b7ea0" + integrity sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +html-whitespace-sensitive-tag-names@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-whitespace-sensitive-tag-names/-/html-whitespace-sensitive-tag-names-3.0.0.tgz#c7c8c11d93c014fba642e240d7f3da39656ab301" + integrity sha512-KlClZ3/Qy5UgvpvVvDomGhnQhNWH5INE8GwvSIQ9CWt1K0zbbXrl7eN5bWaafOZgtmO3jMPwUqmrmEwinhPq1w== + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +htmlparser2@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + entities "^4.4.0" + +http-cache-semantics@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.5.1: + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + +http-proxy-middleware@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" + integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http2-wrapper@^2.1.10: + version "2.2.1" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" + integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.2.0" + +httpsnippet-lite@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/httpsnippet-lite/-/httpsnippet-lite-3.0.5.tgz#af937fa37d3f34e333a1f68e64f906c0fe48c992" + integrity sha512-So4qTXY5iFj5XtFDwyz2PicUu+8NWrI8e8h+ZeZoVtMNcFQp4FFIntBHUE+JPUG6QQU8o1VHCy+X4ETRDwt9CA== + dependencies: + "@types/har-format" "^1.2.10" + formdata-node "^4.4.1" + stringify-object "3.3.0" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@0.6: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.2.0, ignore@^5.2.4: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +image-size@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.1.1.tgz#ddd67d4dc340e52ac29ce5f546a09f4e29e840ac" + integrity sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ== + dependencies: + queue "6.0.2" + +immer@^9.0.7: + version "9.0.21" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== + +immutable@^4.0.0: + version "4.3.6" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.6.tgz#6a05f7858213238e587fb83586ffa3b4b27f0447" + integrity sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ== + +import-fresh@^3.1.0, import-fresh@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-lazy@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indent-string@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" + integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== + +infima@0.2.0-alpha.43: + version "0.2.0-alpha.43" + resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.43.tgz#f7aa1d7b30b6c08afef441c726bac6150228cbe0" + integrity sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + +inline-style-parser@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.3.tgz#e35c5fb45f3a83ed7849fe487336eb7efa25971c" + integrity sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g== + +inquirer@^9.2.10: + version "9.3.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.3.6.tgz#670f1e9408743c3ed23df576f94fe5369f353055" + integrity sha512-riK/iQB2ctwkpWYgjjWIRv3MBLt2gzb2Sj0JNQNbyTXgyXsLWcDPJ5WS5ZDTCx7BRFnJsARtYh+58fjP5M2Y0Q== + dependencies: + "@inquirer/figures" "^1.0.3" + ansi-escapes "^4.3.2" + cli-width "^4.1.0" + external-editor "^3.1.0" + mute-stream "1.0.0" + ora "^5.4.1" + run-async "^3.0.0" + rxjs "^7.8.1" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wrap-ansi "^6.2.0" + yoctocolors-cjs "^2.1.2" + +internal-slot@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== + +internmap@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" + integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +interpret@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipaddr.js@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" + integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== + +is-absolute-url@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-4.0.1.tgz#16e4d487d4fded05cfe0685e53ec86804a5e94dc" + integrity sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A== + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-alphabetical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" + integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== + +is-alphanumerical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" + integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== + dependencies: + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" + +is-arguments@^1.0.4, is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-ci@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + +is-core-module@^2.13.0: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-decimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" + integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extendable@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hexadecimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" + integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== + +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-interactive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90" + integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== + +is-map@^2.0.2, is-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== + +is-npm@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.0.0.tgz#b59e75e8915543ca5d881ecff864077cba095261" + integrity sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-cwd@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-3.0.0.tgz#889b41e55c8588b1eb2a96a61d05740a674521c7" + integrity sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA== + +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-path-inside@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-4.0.0.tgz#805aeb62c47c1b12fc3fd13bfb3ed1e7430071db" + integrity sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-reference@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.2.tgz#154747a01f45cd962404ee89d43837af2cba247c" + integrity sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg== + dependencies: + "@types/estree" "*" + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + +is-root@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + +is-set@^2.0.2, is-set@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== + +is-shared-array-buffer@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.3: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-unicode-supported@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" + integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== + +is-unicode-supported@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz#fdf32df9ae98ff6ab2cedc155a5a6e895701c451" + integrity sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q== + +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== + +is-weakset@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007" + integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + +is-windows@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +is-yarn-global@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.4.1.tgz#b312d902b313f81e4eaf98b6361ba2b45cd694bb" + integrity sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isbinaryfile@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-5.0.2.tgz#fe6e4dfe2e34e947ffa240c113444876ba393ae0" + integrity sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isomorphic.js@^0.2.4: + version "0.2.5" + resolved "https://registry.yarnpkg.com/isomorphic.js/-/isomorphic.js-0.2.5.tgz#13eecf36f2dba53e85d355e11bf9d4208c6f7f88" + integrity sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw== + +jackspeak@^3.1.2: + version "3.2.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.2.3.tgz#33e8c44f7858d199fc5684f4ab62d1fd873eb10d" + integrity sha512-htOzIMPbpLid/Gq9/zaz9SfExABxqRe1sSCdxntlO/aMD6u0issZQiY25n2GKQUtJ02j7z5sfptlAOMpWWOmvw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest-worker@^29.4.3: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== + dependencies: + "@types/node" "*" + jest-util "^29.7.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jiti@^1.20.0, jiti@^1.21.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== + +joi@^17.9.2: + version "17.13.1" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.1.tgz#9c7b53dc3b44dd9ae200255cc3b398874918a6ca" + integrity sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg== + dependencies: + "@hapi/hoek" "^9.3.0" + "@hapi/topo" "^5.1.0" + "@sideway/address" "^4.1.5" + "@sideway/formula" "^3.0.1" + "@sideway/pinpoint" "^2.0.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json5@^2.1.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonpointer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" + integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== + +katex@^0.16.9: + version "0.16.10" + resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.10.tgz#6f81b71ac37ff4ec7556861160f53bc5f058b185" + integrity sha512-ZiqaC04tp2O5utMsl2TEZTXxa6WSC4yo0fv5ML++D3QZv/vx2Mct0mTlRx3O+uUkjfuAgOkzsCmq5MiUEsDDdA== + dependencies: + commander "^8.3.0" + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +khroma@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.1.0.tgz#45f2ce94ce231a437cf5b63c2e886e6eb42bbbb1" + integrity sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +kleur@^4.0.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + +klona@^2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== + +latest-version@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" + integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== + dependencies: + package-json "^8.1.0" + +launch-editor@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.1.tgz#f259c9ef95cbc9425620bbbd14b468fcdb4ffe3c" + integrity sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.8.1" + +layout-base@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-1.0.2.tgz#1291e296883c322a9dd4c5dd82063721b53e26e2" + integrity sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +leven@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-4.0.0.tgz#b9c39c803f835950fabef9e122a9b47b95708710" + integrity sha512-puehA3YKku3osqPlNuzGDUHq8WpwXupUg1V6NXdV38G+gr+gkBwFC8g1b/+YcIvp8gnqVIus+eJCH/eGsRmJNw== + +lib0@^0.2.42: + version "0.2.94" + resolved "https://registry.yarnpkg.com/lib0/-/lib0-0.2.94.tgz#fc28b4b65f816599f1e2f59d3401e231709535b3" + integrity sha512-hZ3p54jL4Wpu7IOg26uC7dnEWiMyNlUrb9KoG7+xYs45WkQwpVvKFndVq2+pqLYKe1u8Fp3+zAfZHVvTK34PvQ== + dependencies: + isomorphic.js "^0.2.4" + +liftoff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-4.0.0.tgz#1a463b9073335cd425cdaa3b468996f7d66d2d81" + integrity sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA== + dependencies: + extend "^3.0.2" + findup-sync "^5.0.0" + fined "^2.0.0" + flagged-respawn "^2.0.0" + is-plain-object "^5.0.0" + object.map "^1.0.1" + rechoir "^0.8.0" + resolve "^1.20.0" + +lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lilconfig@^3.0.0, lilconfig@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.1.tgz#9d8a246fa753106cfc205fd2d77042faca56e5e3" + integrity sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +linkify-it@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" + integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== + dependencies: + uc.micro "^2.0.0" + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +loader-utils@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.2.tgz#dc154c005c65974dab413195c16cd246f545aecb" + integrity sha512-vjJi4vQDasD8t0kMpxe+9URAcgbSuASqoj/Wuk3MawTk97LYa2KfdHreAkd1G/pmPLMvzZEw7/OsydADNemerQ== + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +locate-path@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@^4.17.20, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log-symbols@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-6.0.0.tgz#bb95e5f05322651cac30c0feb6404f9f2a8a9439" + integrity sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw== + dependencies: + chalk "^5.3.0" + is-unicode-supported "^1.3.0" + +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loupe@^2.3.6, loupe@^2.3.7: + version "2.3.7" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== + dependencies: + get-func-name "^2.0.1" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== + +lowlight@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lowlight/-/lowlight-3.1.0.tgz#aa394c5f3a7689fce35fa49a7c850ba3ead4f590" + integrity sha512-CEbNVoSikAxwDMDPjXlqlFYiZLkDJHwyGu/MfOsJnF3d7f3tds5J3z8s/l9TMXhzfsJCCJEAsD78842mwmg0PQ== + dependencies: + "@types/hast" "^3.0.0" + devlop "^1.0.0" + highlight.js "~11.9.0" + +lru-cache@^10.2.0: + version "10.2.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" + integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lucide-react@^0.395.0: + version "0.395.0" + resolved "https://registry.yarnpkg.com/lucide-react/-/lucide-react-0.395.0.tgz#f538cbabc9719c2258c03355524ffdea36301a5f" + integrity sha512-6hzdNH5723A4FLaYZWpK50iyZH8iS2Jq5zuPRRotOFkhu6kxxJiebVdJ72tCR5XkiIeYFOU5NUawFZOac+VeYw== + +lz-string@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" + integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== + +magic-string@^0.25.2: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +make-iterator@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" + integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== + dependencies: + kind-of "^6.0.2" + +map-cache@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + +map-or-similar@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/map-or-similar/-/map-or-similar-1.5.0.tgz#6de2653174adfb5d9edc33c69d3e92a1b76faf08" + integrity sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg== + +markdown-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-2.0.0.tgz#34bebc83e9938cae16e0e017e4a9814a8330d3c4" + integrity sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q== + +markdown-it-link-attributes@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/markdown-it-link-attributes/-/markdown-it-link-attributes-4.0.1.tgz#25751f2cf74fd91f0a35ba7b3247fa45f2056d88" + integrity sha512-pg5OK0jPLg62H4k7M9mRJLT61gUp9nvG0XveKYHMOOluASo9OEF13WlXrpAp2aj35LbedAy3QOCgQCw0tkLKAQ== + +markdown-it@^14.1.0: + version "14.1.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45" + integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== + dependencies: + argparse "^2.0.1" + entities "^4.4.0" + linkify-it "^5.0.0" + mdurl "^2.0.0" + punycode.js "^2.3.1" + uc.micro "^2.1.0" + +markdown-table@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.3.tgz#e6331d30e493127e031dd385488b5bd326e4a6bd" + integrity sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw== + +mdast-util-directive@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz#3fb1764e705bbdf0afb0d3f889e4404c3e82561f" + integrity sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-visit-parents "^6.0.0" + +mdast-util-find-and-replace@^3.0.0, mdast-util-find-and-replace@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz#a6fc7b62f0994e973490e45262e4bc07607b04e0" + integrity sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA== + dependencies: + "@types/mdast" "^4.0.0" + escape-string-regexp "^5.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +mdast-util-from-markdown@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0" + integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" + mdast-util-to-string "^3.1.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-decode-string "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" + +mdast-util-from-markdown@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz#32a6e8f512b416e1f51eb817fc64bd867ebcd9cc" + integrity sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + mdast-util-to-string "^4.0.0" + micromark "^4.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-decode-string "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-stringify-position "^4.0.0" + +mdast-util-frontmatter@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz#f5f929eb1eb36c8a7737475c7eb438261f964ee8" + integrity sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + escape-string-regexp "^5.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + micromark-extension-frontmatter "^2.0.0" + +mdast-util-gfm-autolink-literal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.0.tgz#5baf35407421310a08e68c15e5d8821e8898ba2a" + integrity sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg== + dependencies: + "@types/mdast" "^4.0.0" + ccount "^2.0.0" + devlop "^1.0.0" + mdast-util-find-and-replace "^3.0.0" + micromark-util-character "^2.0.0" + +mdast-util-gfm-footnote@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz#25a1753c7d16db8bfd53cd84fe50562bd1e6d6a9" + integrity sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.1.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + +mdast-util-gfm-strikethrough@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz#d44ef9e8ed283ac8c1165ab0d0dfd058c2764c16" + integrity sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm-table@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz#7a435fb6223a72b0862b33afbd712b6dae878d38" + integrity sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + markdown-table "^3.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm-task-list-item@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz#e68095d2f8a4303ef24094ab642e1047b991a936" + integrity sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz#3f2aecc879785c3cb6a81ff3a243dc11eca61095" + integrity sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw== + dependencies: + mdast-util-from-markdown "^2.0.0" + mdast-util-gfm-autolink-literal "^2.0.0" + mdast-util-gfm-footnote "^2.0.0" + mdast-util-gfm-strikethrough "^2.0.0" + mdast-util-gfm-table "^2.0.0" + mdast-util-gfm-task-list-item "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdx-expression@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz#4968b73724d320a379110d853e943a501bfd9d87" + integrity sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdx-jsx@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz#daae777c72f9c4a106592e3025aa50fb26068e1b" + integrity sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + ccount "^2.0.0" + devlop "^1.1.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-remove-position "^5.0.0" + unist-util-stringify-position "^4.0.0" + vfile-message "^4.0.0" + +mdast-util-mdx@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz#792f9cf0361b46bee1fdf1ef36beac424a099c41" + integrity sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w== + dependencies: + mdast-util-from-markdown "^2.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdxjs-esm@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz#019cfbe757ad62dd557db35a695e7314bcc9fa97" + integrity sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-phrasing@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz#7cc0a8dec30eaf04b7b1a9661a92adb3382aa6e3" + integrity sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w== + dependencies: + "@types/mdast" "^4.0.0" + unist-util-is "^6.0.0" + +mdast-util-to-hast@^13.0.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz#1ae54d903150a10fe04d59f03b2b95fd210b2124" + integrity sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@ungap/structured-clone" "^1.0.0" + devlop "^1.0.0" + micromark-util-sanitize-uri "^2.0.0" + trim-lines "^3.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + +mdast-util-to-markdown@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz#9813f1d6e0cdaac7c244ec8c6dabfdb2102ea2b4" + integrity sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^4.0.0" + mdast-util-to-string "^4.0.0" + micromark-util-decode-string "^2.0.0" + unist-util-visit "^5.0.0" + zwitch "^2.0.0" + +mdast-util-to-string@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789" + integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg== + dependencies: + "@types/mdast" "^3.0.0" + +mdast-util-to-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz#7a5121475556a04e7eddeb67b264aae79d312814" + integrity sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg== + dependencies: + "@types/mdast" "^4.0.0" + +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +mdurl@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" + integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memfs@^3.1.2, memfs@^3.4.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== + dependencies: + fs-monkey "^1.0.4" + +memoizerific@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/memoizerific/-/memoizerific-1.11.3.tgz#7c87a4646444c32d75438570905f2dbd1b1a805a" + integrity sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog== + dependencies: + map-or-similar "^1.5.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +mermaid@^10.4.0: + version "10.9.1" + resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-10.9.1.tgz#5f582c23f3186c46c6aa673e59eeb46d741b2ea6" + integrity sha512-Mx45Obds5W1UkW1nv/7dHRsbfMM1aOKA2+Pxs/IGHNonygDHwmng8xTHyS9z4KWVi0rbko8gjiBmuwwXQ7tiNA== + dependencies: + "@braintree/sanitize-url" "^6.0.1" + "@types/d3-scale" "^4.0.3" + "@types/d3-scale-chromatic" "^3.0.0" + cytoscape "^3.28.1" + cytoscape-cose-bilkent "^4.1.0" + d3 "^7.4.0" + d3-sankey "^0.12.3" + dagre-d3-es "7.0.10" + dayjs "^1.11.7" + dompurify "^3.0.5" + elkjs "^0.9.0" + katex "^0.16.9" + khroma "^2.0.0" + lodash-es "^4.17.21" + mdast-util-from-markdown "^1.3.0" + non-layered-tidy-tree-layout "^2.0.2" + stylis "^4.1.3" + ts-dedent "^2.2.0" + uuid "^9.0.0" + web-worker "^1.2.0" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromark-core-commonmark@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8" + integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromark-core-commonmark@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz#9a45510557d068605c6e9a80f282b2bb8581e43d" + integrity sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA== + dependencies: + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-factory-destination "^2.0.0" + micromark-factory-label "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-factory-title "^2.0.0" + micromark-factory-whitespace "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-html-tag-name "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-directive@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-directive/-/micromark-extension-directive-3.0.0.tgz#527869de497a6de9024138479091bc885dae076b" + integrity sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-factory-whitespace "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + parse-entities "^4.0.0" + +micromark-extension-frontmatter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz#651c52ffa5d7a8eeed687c513cd869885882d67a" + integrity sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg== + dependencies: + fault "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-autolink-literal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.0.0.tgz#f1e50b42e67d441528f39a67133eddde2bbabfd9" + integrity sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-footnote@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.0.0.tgz#91afad310065a94b636ab1e9dab2c60d1aab953c" + integrity sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg== + dependencies: + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-strikethrough@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.0.0.tgz#6917db8e320da70e39ffbf97abdbff83e6783e61" + integrity sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-table@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.0.0.tgz#2cf3fe352d9e089b7ef5fff003bdfe0da29649b7" + integrity sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-tagfilter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz#f26d8a7807b5985fba13cf61465b58ca5ff7dc57" + integrity sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg== + dependencies: + micromark-util-types "^2.0.0" + +micromark-extension-gfm-task-list-item@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.0.1.tgz#ee8b208f1ced1eb9fb11c19a23666e59d86d4838" + integrity sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz#3e13376ab95dd7a5cfd0e29560dfe999657b3c5b" + integrity sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w== + dependencies: + micromark-extension-gfm-autolink-literal "^2.0.0" + micromark-extension-gfm-footnote "^2.0.0" + micromark-extension-gfm-strikethrough "^2.0.0" + micromark-extension-gfm-table "^2.0.0" + micromark-extension-gfm-tagfilter "^2.0.0" + micromark-extension-gfm-task-list-item "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-mdx-expression@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz#1407b9ce69916cf5e03a196ad9586889df25302a" + integrity sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-factory-mdx-expression "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-mdx-jsx@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.0.tgz#4aba0797c25efb2366a3fd2d367c6b1c1159f4f5" + integrity sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w== + dependencies: + "@types/acorn" "^4.0.0" + "@types/estree" "^1.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + micromark-factory-mdx-expression "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + vfile-message "^4.0.0" + +micromark-extension-mdx-md@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz#1d252881ea35d74698423ab44917e1f5b197b92d" + integrity sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ== + dependencies: + micromark-util-types "^2.0.0" + +micromark-extension-mdxjs-esm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz#de21b2b045fd2059bd00d36746081de38390d54a" + integrity sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-position-from-estree "^2.0.0" + vfile-message "^4.0.0" + +micromark-extension-mdxjs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz#b5a2e0ed449288f3f6f6c544358159557549de18" + integrity sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ== + dependencies: + acorn "^8.0.0" + acorn-jsx "^5.0.0" + micromark-extension-mdx-expression "^3.0.0" + micromark-extension-mdx-jsx "^3.0.0" + micromark-extension-mdx-md "^2.0.0" + micromark-extension-mdxjs-esm "^3.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-destination@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f" + integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-destination@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz#857c94debd2c873cba34e0445ab26b74f6a6ec07" + integrity sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-label@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68" + integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-label@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz#17c5c2e66ce39ad6f4fc4cbf40d972f9096f726a" + integrity sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw== + dependencies: + devlop "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-mdx-expression@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.1.tgz#f2a9724ce174f1751173beb2c1f88062d3373b1b" + integrity sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-position-from-estree "^2.0.0" + vfile-message "^4.0.0" + +micromark-factory-space@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" + integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-space@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz#5e7afd5929c23b96566d0e1ae018ae4fcf81d030" + integrity sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-title@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1" + integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz#726140fc77892af524705d689e1cf06c8a83ea95" + integrity sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-whitespace@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705" + integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-whitespace@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz#9e92eb0f5468083381f923d9653632b3cfb5f763" + integrity sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-character@^1.0.0, micromark-util-character@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" + integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.0.tgz#31320ace16b4644316f6bf057531689c71e2aee1" + integrity sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ== + dependencies: + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-chunked@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b" + integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-chunked@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz#e51f4db85fb203a79dbfef23fd41b2f03dc2ef89" + integrity sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d" + integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-classify-character@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz#8c7537c20d0750b12df31f86e976d1d951165f34" + integrity sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84" + integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz#75d6ab65c58b7403616db8d6b31315013bfb7ee5" + integrity sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ== + dependencies: + micromark-util-chunked "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6" + integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-decode-numeric-character-reference@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz#2698bbb38f2a9ba6310e359f99fcb2b35a0d2bd5" + integrity sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-decode-string@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz#dc12b078cba7a3ff690d0203f95b5d5537f2809c" + integrity sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-decode-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz#7dfa3a63c45aecaa17824e656bcdb01f9737154a" + integrity sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5" + integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw== + +micromark-util-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz#0921ac7953dc3f1fd281e3d1932decfdb9382ab1" + integrity sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA== + +micromark-util-events-to-acorn@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz#4275834f5453c088bd29cd72dfbf80e3327cec07" + integrity sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA== + dependencies: + "@types/acorn" "^4.0.0" + "@types/estree" "^1.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + estree-util-visit "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + vfile-message "^4.0.0" + +micromark-util-html-tag-name@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588" + integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q== + +micromark-util-html-tag-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz#ae34b01cbe063363847670284c6255bb12138ec4" + integrity sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw== + +micromark-util-normalize-identifier@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7" + integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-normalize-identifier@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz#91f9a4e65fe66cc80c53b35b0254ad67aa431d8b" + integrity sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188" + integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-resolve-all@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz#189656e7e1a53d0c86a38a652b284a252389f364" + integrity sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA== + dependencies: + micromark-util-types "^2.0.0" + +micromark-util-sanitize-uri@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d" + integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-sanitize-uri@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz#ec8fbf0258e9e6d8f13d9e4770f9be64342673de" + integrity sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-subtokenize@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1" + integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-util-subtokenize@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz#76129c49ac65da6e479c09d0ec4b5f29ec6eace5" + integrity sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-symbol@^1.0.0, micromark-util-symbol@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" + integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== + +micromark-util-symbol@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz#12225c8f95edf8b17254e47080ce0862d5db8044" + integrity sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw== + +micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" + integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== + +micromark-util-types@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.0.tgz#63b4b7ffeb35d3ecf50d1ca20e68fc7caa36d95e" + integrity sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w== + +micromark@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9" + integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + micromark-core-commonmark "^1.0.1" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromark@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-4.0.0.tgz#84746a249ebd904d9658cfabc1e8e5f32cbc6249" + integrity sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.7" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== + +mime-types@2.1.18: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== + dependencies: + mime-db "~1.33.0" + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +mimic-response@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" + integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +mini-css-extract-plugin@^2.7.6: + version "2.9.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz#c73a1327ccf466f69026ac22a8e8fd707b78a235" + integrity sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA== + dependencies: + schema-utils "^4.0.0" + tapable "^2.2.1" + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@3.1.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^9.0.4: + version "9.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +mkdirp@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" + integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== + +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +mrmime@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" + integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== + dependencies: + dns-packet "^5.2.2" + thunky "^1.0.2" + +mute-stream@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" + integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== + +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +nanoid@^5.0.1: + version "5.0.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-5.0.7.tgz#6452e8c5a816861fd9d2b898399f7e5fd6944cc6" + integrity sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-domexception@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-emoji@^2.1.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-2.1.3.tgz#93cfabb5cc7c3653aa52f29d6ffb7927d8047c06" + integrity sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA== + dependencies: + "@sindresorhus/is" "^4.6.0" + char-regex "^1.0.2" + emojilib "^2.4.0" + skin-tone "^2.0.0" + +node-fetch@^2.0.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-forge@^1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +node-plop@^0.32.0: + version "0.32.0" + resolved "https://registry.yarnpkg.com/node-plop/-/node-plop-0.32.0.tgz#ec9952c3a8f7e47733a9e7b96b006d05369a5624" + integrity sha512-lKFSRSRuDHhwDKMUobdsvaWCbbDRbV3jMUSMiajQSQux1aNUevAZVxUHc2JERI//W8ABPRbi3ebYuSuIzkNIpQ== + dependencies: + "@types/inquirer" "^9.0.3" + change-case "^4.1.2" + del "^7.1.0" + globby "^13.2.2" + handlebars "^4.7.8" + inquirer "^9.2.10" + isbinaryfile "^5.0.0" + lodash.get "^4.4.2" + lower-case "^2.0.2" + mkdirp "^3.0.1" + resolve "^1.22.4" + title-case "^3.0.3" + upper-case "^2.0.2" + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +non-layered-tidy-tree-layout@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz#57d35d13c356643fc296a55fb11ac15e74da7804" + integrity sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +normalize-url@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.1.tgz#9b7d96af9836577c58f5883e939365fa15623a4a" + integrity sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +object-assign@^4.0.1, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +object-is@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" + integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.0, object.assign@^4.1.4: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.defaults@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + integrity sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA== + dependencies: + array-each "^1.0.1" + array-slice "^1.0.0" + for-own "^1.0.0" + isobject "^3.0.0" + +object.map@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + integrity sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w== + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + dependencies: + isobject "^3.0.1" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^8.0.9, open@^8.4.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +openapi-types@^12.1.3: + version "12.1.3" + resolved "https://registry.yarnpkg.com/openapi-types/-/openapi-types-12.1.3.tgz#471995eb26c4b97b7bd356aacf7b91b73e777dd3" + integrity sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw== + +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +ora@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-8.0.1.tgz#6dcb9250a629642cbe0d2df3a6331ad6f7a2af3e" + integrity sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ== + dependencies: + chalk "^5.3.0" + cli-cursor "^4.0.0" + cli-spinners "^2.9.2" + is-interactive "^2.0.0" + is-unicode-supported "^2.0.0" + log-symbols "^6.0.0" + stdin-discarder "^0.2.1" + string-width "^7.0.0" + strip-ansi "^7.1.0" + +os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-cancelable@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" + integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== + +p-limit@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-map@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-5.5.0.tgz#054ca8ca778dfa4cf3f8db6638ccb5b937266715" + integrity sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg== + dependencies: + aggregate-error "^4.0.0" + +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== + dependencies: + "@types/retry" "0.12.0" + retry "^0.13.1" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" + integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA== + dependencies: + got "^12.1.0" + registry-auth-token "^5.0.1" + registry-url "^6.0.0" + semver "^7.3.7" + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-entities@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.1.tgz#4e2a01111fb1c986549b944af39eeda258fc9e4e" + integrity sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w== + dependencies: + "@types/unist" "^2.0.0" + character-entities "^2.0.0" + character-entities-legacy "^3.0.0" + character-reference-invalid "^2.0.0" + decode-named-character-reference "^1.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" + +parse-filepath@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q== + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + 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" + +parse-ms@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-3.0.0.tgz#3ea24a934913345fcc3656deda72df921da3a70e" + integrity sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw== + +parse-numeric-range@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz#7c63b61190d61e4d53a1197f0c83c47bb670ffa3" + integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ== + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== + +parse5-htmlparser2-tree-adapter@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" + integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== + dependencies: + domhandler "^5.0.2" + parse5 "^7.0.0" + +parse5@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + dependencies: + entities "^4.4.0" + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" + integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-is-inside@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ== + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg== + dependencies: + path-root-regex "^0.1.0" + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-to-regexp@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45" + integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== + +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + +periscopic@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/periscopic/-/periscopic-3.1.0.tgz#7e9037bf51c5855bd33b48928828db4afa79d97a" + integrity sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^3.0.0" + is-reference "^3.0.0" + +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pirates@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" + integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== + dependencies: + find-up "^6.3.0" + +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +plop-helper-date@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/plop-helper-date/-/plop-helper-date-1.0.0.tgz#c795542b8a130b91494f65ea46387c266efa5ec4" + integrity sha512-JxRJKUICQndhuxfuJL/z7ZWL+muct8FwNK3o0Lm6EWLcoSNRP3sTIh4E86zpNvBmKUg/2Jl30NKt0NXsZ88u+Q== + dependencies: + date-fns "^2.15.0" + +plop@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/plop/-/plop-4.0.1.tgz#85d8a6e9d6d4dbcb1ec811f0d3220ae869539dd2" + integrity sha512-5n8QU93kvL/ObOzBcPAB1siVFtAH1TZM6TntJ3JK5kXT0jIgnQV+j+uaOWWFJlg1cNkzLYm8klgASF65K36q9w== + dependencies: + "@types/liftoff" "^4.0.3" + chalk "^5.3.0" + interpret "^3.1.1" + liftoff "^4.0.0" + minimist "^1.2.8" + node-plop "^0.32.0" + ora "^8.0.0" + v8flags "^4.0.1" + +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + +postcss-calc@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-9.0.1.tgz#a744fd592438a93d6de0f1434c572670361eb6c6" + integrity sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ== + dependencies: + postcss-selector-parser "^6.0.11" + postcss-value-parser "^4.2.0" + +postcss-colormin@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.1.0.tgz#076e8d3fb291fbff7b10e6b063be9da42ff6488d" + integrity sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw== + dependencies: + browserslist "^4.23.0" + caniuse-api "^3.0.0" + colord "^2.9.3" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz#3498387f8efedb817cbc63901d45bd1ceaa40f48" + integrity sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w== + dependencies: + browserslist "^4.23.0" + postcss-value-parser "^4.2.0" + +postcss-discard-comments@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz#e768dcfdc33e0216380623652b0a4f69f4678b6c" + integrity sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw== + +postcss-discard-duplicates@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz#d121e893c38dc58a67277f75bb58ba43fce4c3eb" + integrity sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw== + +postcss-discard-empty@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz#ee39c327219bb70473a066f772621f81435a79d9" + integrity sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ== + +postcss-discard-overridden@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz#4e9f9c62ecd2df46e8fdb44dc17e189776572e2d" + integrity sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ== + +postcss-discard-unused@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz#c1b0e8c032c6054c3fbd22aaddba5b248136f338" + integrity sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA== + dependencies: + postcss-selector-parser "^6.0.16" + +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-js@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" + integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== + dependencies: + camelcase-css "^2.0.1" + +postcss-load-config@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== + dependencies: + lilconfig "^3.0.0" + yaml "^2.3.4" + +postcss-loader@^7.3.3: + version "7.3.4" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.4.tgz#aed9b79ce4ed7e9e89e56199d25ad1ec8f606209" + integrity sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A== + dependencies: + cosmiconfig "^8.3.5" + jiti "^1.20.0" + semver "^7.5.4" + +postcss-merge-idents@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz#7b9c31c7bc823c94bec50f297f04e3c2b838ea65" + integrity sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g== + dependencies: + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-merge-longhand@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz#ba8a8d473617c34a36abbea8dda2b215750a065a" + integrity sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^6.1.1" + +postcss-merge-rules@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz#7aa539dceddab56019469c0edd7d22b64c3dea9d" + integrity sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ== + dependencies: + browserslist "^4.23.0" + caniuse-api "^3.0.0" + cssnano-utils "^4.0.2" + postcss-selector-parser "^6.0.16" + +postcss-minify-font-values@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz#a0e574c02ee3f299be2846369211f3b957ea4c59" + integrity sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz#ca3eb55a7bdb48a1e187a55c6377be918743dbd6" + integrity sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q== + dependencies: + colord "^2.9.3" + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz#54551dec77b9a45a29c3cb5953bf7325a399ba08" + integrity sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA== + dependencies: + browserslist "^4.23.0" + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz#197f7d72e6dd19eed47916d575d69dc38b396aff" + integrity sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ== + dependencies: + postcss-selector-parser "^6.0.16" + +postcss-modules-extract-imports@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz#b4497cb85a9c0c4b5aabeb759bb25e8d89f15002" + integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== + +postcss-modules-local-by-default@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz#f1b9bd757a8edf4d8556e8d0f4f894260e3df78f" + integrity sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz#a43d28289a169ce2c15c00c4e64c0858e43457d5" + integrity sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-nested@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" + integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== + dependencies: + postcss-selector-parser "^6.0.11" + +postcss-normalize-charset@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz#1ec25c435057a8001dac942942a95ffe66f721e1" + integrity sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ== + +postcss-normalize-display-values@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz#54f02764fed0b288d5363cbb140d6950dbbdd535" + integrity sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz#e982d284ec878b9b819796266f640852dbbb723a" + integrity sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz#f8006942fd0617c73f049dd8b6201c3a3040ecf3" + integrity sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz#e3cc6ad5c95581acd1fc8774b309dd7c06e5e363" + integrity sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz#40cb8726cef999de984527cbd9d1db1f3e9062c0" + integrity sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz#aaf8bbd34c306e230777e80f7f12a4b7d27ce06e" + integrity sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg== + dependencies: + browserslist "^4.23.0" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz#292792386be51a8de9a454cb7b5c58ae22db0f79" + integrity sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz#fbb009e6ebd312f8b2efb225c2fcc7cf32b400cd" + integrity sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-ordered-values@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz#366bb663919707093451ab70c3f99c05672aaae5" + integrity sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q== + dependencies: + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-reduce-idents@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz#b0d9c84316d2a547714ebab523ec7d13704cd486" + integrity sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-reduce-initial@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz#4401297d8e35cb6e92c8e9586963e267105586ba" + integrity sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw== + dependencies: + browserslist "^4.23.0" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz#6fa2c586bdc091a7373caeee4be75a0f3e12965d" + integrity sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.16, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz#49694cb4e7c649299fea510a29fa6577104bcf53" + integrity sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-sort-media-queries@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz#4556b3f982ef27d3bac526b99b6c0d3359a6cf97" + integrity sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA== + dependencies: + sort-css-media-queries "2.2.0" + +postcss-svgo@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.3.tgz#1d6e180d6df1fa8a3b30b729aaa9161e94f04eaa" + integrity sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^3.2.0" + +postcss-unique-selectors@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz#983ab308896b4bf3f2baaf2336e14e52c11a2088" + integrity sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg== + dependencies: + postcss-selector-parser "^6.0.16" + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss-zindex@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-6.0.2.tgz#e498304b83a8b165755f53db40e2ea65a99b56e1" + integrity sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg== + +postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.24, postcss@^8.4.26, postcss@^8.4.33, postcss@^8.4.38: + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.2.0" + +postcss@^8.4.39: + version "8.4.40" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.40.tgz#eb81f2a4dd7668ed869a6db25999e02e9ad909d8" + integrity sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.1" + source-map-js "^1.2.0" + +preact@^10.0.0: + version "10.22.1" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.22.1.tgz#6a3589973fe0c6e53211091607d31f4b7b27334d" + integrity sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A== + +pretty-bytes@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-6.1.1.tgz#38cd6bb46f47afbf667c202cfc754bffd2016a3b" + integrity sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ== + +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +pretty-format@^27.0.2: + version "27.5.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +pretty-ms@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-8.0.0.tgz#a35563b2a02df01e595538f86d7de54ca23194a3" + integrity sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q== + dependencies: + parse-ms "^3.0.0" + +pretty-time@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" + integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== + +prism-react-renderer@^2.0.6, prism-react-renderer@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-2.3.1.tgz#e59e5450052ede17488f6bc85de1553f584ff8d5" + integrity sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw== + dependencies: + "@types/prismjs" "^1.26.0" + clsx "^2.0.0" + +prismjs@^1.29.0: + version "1.29.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" + integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +prompts@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types@^15.6.2, prop-types@^15.7.2: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +property-information@^6.0.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec" + integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +punycode.js@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" + integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== + +punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +pupa@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579" + integrity sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug== + dependencies: + escape-goat "^4.0.0" + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +qs@^6.10.0: + version "6.12.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" + integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== + dependencies: + side-channel "^1.0.6" + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +queue@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65" + integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== + dependencies: + inherits "~2.0.3" + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +ramda@0.29.0: + version "0.29.0" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.29.0.tgz#fbbb67a740a754c8a4cbb41e2a6e0eb8507f55fb" + integrity sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A== + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-dev-utils@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" + integrity sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ== + dependencies: + "@babel/code-frame" "^7.16.0" + address "^1.1.2" + browserslist "^4.18.1" + chalk "^4.1.2" + cross-spawn "^7.0.3" + detect-port-alt "^1.1.6" + escape-string-regexp "^4.0.0" + filesize "^8.0.6" + find-up "^5.0.0" + fork-ts-checker-webpack-plugin "^6.5.0" + global-modules "^2.0.0" + globby "^11.0.4" + gzip-size "^6.0.0" + immer "^9.0.7" + is-root "^2.1.0" + loader-utils "^3.2.0" + open "^8.4.0" + pkg-up "^3.1.0" + prompts "^2.4.2" + react-error-overlay "^6.0.11" + recursive-readdir "^2.2.2" + shell-quote "^1.7.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +react-device-detect@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/react-device-detect/-/react-device-detect-2.2.3.tgz#97a7ae767cdd004e7c3578260f48cf70c036e7ca" + integrity sha512-buYY3qrCnQVlIFHrC5UcUoAj7iANs/+srdkwsnNjI7anr3Tt7UY6MqNxtMLlr0tMBied0O49UZVK8XKs3ZIiPw== + dependencies: + ua-parser-js "^1.0.33" + +react-dom@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.2" + +react-error-overlay@^6.0.11: + version "6.0.11" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" + integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== + +react-fast-compare@^3.2.0, react-fast-compare@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" + integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== + +react-helmet-async@*: + version "2.0.5" + resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-2.0.5.tgz#cfc70cd7bb32df7883a8ed55502a1513747223ec" + integrity sha512-rYUYHeus+i27MvFE+Jaa4WsyBKGkL6qVgbJvSBoX8mbsWoABJXdEO0bZyi0F6i+4f0NuIb8AvqPMj3iXFHkMwg== + dependencies: + invariant "^2.2.4" + react-fast-compare "^3.2.2" + shallowequal "^1.1.0" + +react-helmet-async@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-1.3.0.tgz#7bd5bf8c5c69ea9f02f6083f14ce33ef545c222e" + integrity sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg== + dependencies: + "@babel/runtime" "^7.12.5" + invariant "^2.2.4" + prop-types "^15.7.2" + react-fast-compare "^3.2.0" + shallowequal "^1.1.0" + +react-hook-form@^7.52.0: + version "7.52.2" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.52.2.tgz#ff40f4776250b86ddfcde6be68d34aa82b1c60fe" + integrity sha512-pqfPEbERnxxiNMPd0bzmt1tuaPcVccywFDpyk2uV5xCIBphHV5T8SVnX9/o3kplPE1zzKt77+YIoq+EMwJp56A== + +react-icons@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-5.2.1.tgz#28c2040917b2a2eda639b0f797bff1888e018e4a" + integrity sha512-zdbW5GstTzXaVKvGSyTaBalt7HSfuK5ovrzlpyiWHAFXndXTdd/1hdDHI4xBM1Mn7YriT6aqESucFl9kEXzrdw== + +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-is@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +react-json-view-lite@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/react-json-view-lite/-/react-json-view-lite-1.4.0.tgz#0ff493245f4550abe5e1f1836f170fa70bb95914" + integrity sha512-wh6F6uJyYAmQ4fK0e8dSQMEWuvTs2Wr3el3sLD9bambX1+pSWUVXIz1RFaoy3TI1mZ0FqdpKq9YgbgTTgyrmXA== + +react-live@^4.1.6: + version "4.1.6" + resolved "https://registry.yarnpkg.com/react-live/-/react-live-4.1.6.tgz#6d9b7d381bd2b359ca859767501135112b6bab33" + integrity sha512-2oq3MADi3rupqZcdoHMrV9p+Eg/92BDds278ZuoOz8d68qw6ct0xZxX89MRxeChrnFHy1XPr8BVknDJNJNdvVw== + dependencies: + prism-react-renderer "^2.0.6" + sucrase "^3.31.0" + use-editable "^2.3.3" + +react-loadable-ssr-addon-v5-slorber@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz#2cdc91e8a744ffdf9e3556caabeb6e4278689883" + integrity sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A== + dependencies: + "@babel/runtime" "^7.10.3" + +"react-loadable@npm:@docusaurus/react-loadable@6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz#de6c7f73c96542bd70786b8e522d535d69069dc4" + integrity sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ== + dependencies: + "@types/react" "*" + +react-remove-scroll-bar@^2.3.4: + version "2.3.6" + resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz#3e585e9d163be84a010180b18721e851ac81a29c" + integrity sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g== + dependencies: + react-style-singleton "^2.2.1" + tslib "^2.0.0" + +react-remove-scroll@2.5.7: + version "2.5.7" + resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz#15a1fd038e8497f65a695bf26a4a57970cac1ccb" + integrity sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA== + dependencies: + react-remove-scroll-bar "^2.3.4" + react-style-singleton "^2.2.1" + tslib "^2.1.0" + use-callback-ref "^1.3.0" + use-sidecar "^1.1.2" + +react-router-config@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988" + integrity sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg== + dependencies: + "@babel/runtime" "^7.1.2" + +react-router-dom@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" + integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.3.4" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@5.3.4, react-router@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" + integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-style-singleton@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.2.1.tgz#f99e420492b2d8f34d38308ff660b60d0b1205b4" + integrity sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g== + dependencies: + get-nonce "^1.0.0" + invariant "^2.2.4" + tslib "^2.0.0" + +react@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== + dependencies: + loose-envify "^1.1.0" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + +readable-stream@^2.0.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +reading-time@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.5.0.tgz#d2a7f1b6057cb2e169beaf87113cc3411b5bc5bb" + integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg== + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + +rechoir@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== + dependencies: + resolve "^1.20.0" + +recursive-readdir@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" + integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== + dependencies: + minimatch "^3.0.5" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== + dependencies: + regenerate "^1.4.2" + +regenerate-unicode-properties@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz#54d09c7115e1f53dc2314a974b32c1c344efe326" + integrity sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" + +regexp.prototype.flags@^1.5.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + +regexpu-core@^4.5.4: + version "4.8.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.8.0.tgz#e5605ba361b67b1718478501327502f4479a98f0" + integrity sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^9.0.0" + regjsgen "^0.5.2" + regjsparser "^0.7.0" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.0.0" + +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +registry-auth-token@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" + integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== + dependencies: + "@pnpm/npm-conf" "^2.1.0" + +registry-url@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" + integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== + dependencies: + rc "1.2.8" + +regjsgen@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.7.0.tgz#a6b667b54c885e18b52554cb4960ef71187e9968" + integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ== + dependencies: + jsesc "~0.5.0" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + +rehype-external-links@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/rehype-external-links/-/rehype-external-links-3.0.0.tgz#2b28b5cda1932f83f045b6f80a3e1b15f168c6f6" + integrity sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw== + dependencies: + "@types/hast" "^3.0.0" + "@ungap/structured-clone" "^1.0.0" + hast-util-is-element "^3.0.0" + is-absolute-url "^4.0.0" + space-separated-tokens "^2.0.0" + unist-util-visit "^5.0.0" + +rehype-format@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/rehype-format/-/rehype-format-5.0.0.tgz#e51cc8edece2aee0e88e1efdd0625bc0cbef387b" + integrity sha512-kM4II8krCHmUhxrlvzFSptvaWh280Fr7UGNJU5DCMuvmAwGCNmGfi9CvFAQK6JDjsNoRMWQStglK3zKJH685Wg== + dependencies: + "@types/hast" "^3.0.0" + hast-util-embedded "^3.0.0" + hast-util-is-element "^3.0.0" + hast-util-phrasing "^3.0.0" + hast-util-whitespace "^3.0.0" + html-whitespace-sensitive-tag-names "^3.0.0" + rehype-minify-whitespace "^6.0.0" + unist-util-visit-parents "^6.0.0" + +rehype-highlight@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/rehype-highlight/-/rehype-highlight-7.0.0.tgz#f2fd0eaebea7d4d4ce2fca2e8d9e3aea9441aefc" + integrity sha512-QtobgRgYoQaK6p1eSr2SD1i61f7bjF2kZHAQHxeCHAuJf7ZUDMvQ7owDq9YTkmar5m5TSUol+2D3bp3KfJf/oA== + dependencies: + "@types/hast" "^3.0.0" + hast-util-to-text "^4.0.0" + lowlight "^3.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + +rehype-minify-whitespace@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/rehype-minify-whitespace/-/rehype-minify-whitespace-6.0.0.tgz#fe97c5e9e48c5629458166753f2249afaa2e1fd1" + integrity sha512-i9It4YHR0Sf3GsnlR5jFUKXRr9oayvEk9GKQUkwZv6hs70OH9q3OCZrq9PpLvIGKt3W+JxBOxCidNVpH/6rWdA== + dependencies: + "@types/hast" "^3.0.0" + hast-util-embedded "^3.0.0" + hast-util-is-element "^3.0.0" + hast-util-whitespace "^3.0.0" + unist-util-is "^6.0.0" + +rehype-raw@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/rehype-raw/-/rehype-raw-7.0.0.tgz#59d7348fd5dbef3807bbaa1d443efd2dd85ecee4" + integrity sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww== + dependencies: + "@types/hast" "^3.0.0" + hast-util-raw "^9.0.0" + vfile "^6.0.0" + +rehype-sanitize@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/rehype-sanitize/-/rehype-sanitize-6.0.0.tgz#16e95f4a67a69cbf0f79e113c8e0df48203db73c" + integrity sha512-CsnhKNsyI8Tub6L4sm5ZFsme4puGfc6pYylvXo1AeqaGbjOYyzNv3qZPwvs0oMJ39eryyeOdmxwUIo94IpEhqg== + dependencies: + "@types/hast" "^3.0.0" + hast-util-sanitize "^5.0.0" + +rehype-stringify@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/rehype-stringify/-/rehype-stringify-10.0.0.tgz#2031cf6fdd0355393706f0474ec794c75e5492f2" + integrity sha512-1TX1i048LooI9QoecrXy7nGFFbFSufxVRAfc6Y9YMRAi56l+oB0zP51mLSV312uRuvVLPV1opSlJmslozR1XHQ== + dependencies: + "@types/hast" "^3.0.0" + hast-util-to-html "^9.0.0" + unified "^11.0.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +remark-directive@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-directive/-/remark-directive-3.0.0.tgz#34452d951b37e6207d2e2a4f830dc33442923268" + integrity sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-directive "^3.0.0" + micromark-extension-directive "^3.0.0" + unified "^11.0.0" + +remark-emoji@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-emoji/-/remark-emoji-4.0.1.tgz#671bfda668047689e26b2078c7356540da299f04" + integrity sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg== + dependencies: + "@types/mdast" "^4.0.2" + emoticon "^4.0.1" + mdast-util-find-and-replace "^3.0.1" + node-emoji "^2.1.0" + unified "^11.0.4" + +remark-frontmatter@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz#b68d61552a421ec412c76f4f66c344627dc187a2" + integrity sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-frontmatter "^2.0.0" + micromark-extension-frontmatter "^2.0.0" + unified "^11.0.0" + +remark-gfm@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-4.0.0.tgz#aea777f0744701aa288b67d28c43565c7e8c35de" + integrity sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-gfm "^3.0.0" + micromark-extension-gfm "^3.0.0" + remark-parse "^11.0.0" + remark-stringify "^11.0.0" + unified "^11.0.0" + +remark-mdx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-3.0.1.tgz#8f73dd635c1874e44426e243f72c0977cf60e212" + integrity sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA== + dependencies: + mdast-util-mdx "^3.0.0" + micromark-extension-mdxjs "^3.0.0" + +remark-parse@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-11.0.0.tgz#aa60743fcb37ebf6b069204eb4da304e40db45a1" + integrity sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + micromark-util-types "^2.0.0" + unified "^11.0.0" + +remark-rehype@^11.0.0, remark-rehype@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-11.1.0.tgz#d5f264f42bcbd4d300f030975609d01a1697ccdc" + integrity sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + mdast-util-to-hast "^13.0.0" + unified "^11.0.0" + vfile "^6.0.0" + +remark-stringify@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-11.0.0.tgz#4c5b01dd711c269df1aaae11743eb7e2e7636fd3" + integrity sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-to-markdown "^2.0.0" + unified "^11.0.0" + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +"require-like@>= 0.1.1": + version "0.1.2" + resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa" + integrity sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resolve-alpn@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.2, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== + dependencies: + lowercase-keys "^3.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +robust-predicates@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" + integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== + +rollup@^4.13.0: + version "4.20.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.20.0.tgz#f9d602161d29e178f0bf1d9f35f0a26f83939492" + integrity sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw== + dependencies: + "@types/estree" "1.0.5" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.20.0" + "@rollup/rollup-android-arm64" "4.20.0" + "@rollup/rollup-darwin-arm64" "4.20.0" + "@rollup/rollup-darwin-x64" "4.20.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.20.0" + "@rollup/rollup-linux-arm-musleabihf" "4.20.0" + "@rollup/rollup-linux-arm64-gnu" "4.20.0" + "@rollup/rollup-linux-arm64-musl" "4.20.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.20.0" + "@rollup/rollup-linux-riscv64-gnu" "4.20.0" + "@rollup/rollup-linux-s390x-gnu" "4.20.0" + "@rollup/rollup-linux-x64-gnu" "4.20.0" + "@rollup/rollup-linux-x64-musl" "4.20.0" + "@rollup/rollup-win32-arm64-msvc" "4.20.0" + "@rollup/rollup-win32-ia32-msvc" "4.20.0" + "@rollup/rollup-win32-x64-msvc" "4.20.0" + fsevents "~2.3.2" + +rtl-detect@^1.0.4: + version "1.1.2" + resolved "https://registry.yarnpkg.com/rtl-detect/-/rtl-detect-1.1.2.tgz#ca7f0330af5c6bb626c15675c642ba85ad6273c6" + integrity sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ== + +rtlcss@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-4.1.1.tgz#f20409fcc197e47d1925996372be196fee900c0c" + integrity sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + postcss "^8.4.21" + strip-json-comments "^3.1.1" + +run-async@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-3.0.0.tgz#42a432f6d76c689522058984384df28be379daad" + integrity sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rw@1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== + +rxjs@^7.2.0, rxjs@^7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +sade@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sass-loader@^10.1.1: + version "10.5.2" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.5.2.tgz#1ca30534fff296417b853c7597ca3b0bbe8c37d0" + integrity sha512-vMUoSNOUKJILHpcNCCyD23X34gve1TS7Rjd9uXHeKqhvBG39x6XbswFDtpbTElj6XdMFezoWhkh5vtKudf2cgQ== + dependencies: + klona "^2.0.4" + loader-utils "^2.0.0" + neo-async "^2.6.2" + schema-utils "^3.0.0" + semver "^7.3.2" + +sass@^1.77.4: + version "1.77.8" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.8.tgz#9f18b449ea401759ef7ec1752a16373e296b52bd" + integrity sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +sax@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" + integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== + +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== + dependencies: + loose-envify "^1.1.0" + +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0, schema-utils@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" + integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +selfsigned@^2.1.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== + dependencies: + "@types/node-forge" "^1.3.0" + node-forge "^1" + +semver-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-4.0.0.tgz#3afcf5ed6d62259f5c72d0d5d50dffbdc9680df5" + integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA== + dependencies: + semver "^7.3.5" + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.4: + version "7.6.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +sentence-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" + integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + +serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +serve-handler@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.5.tgz#a4a0964f5c55c7e37a02a633232b6f0d6f068375" + integrity sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg== + dependencies: + bytes "3.0.0" + content-disposition "0.5.2" + fast-url-parser "1.1.3" + mime-types "2.1.18" + minimatch "3.1.2" + path-is-inside "1.0.2" + path-to-regexp "2.2.1" + range-parser "1.2.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.7.3, shell-quote@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +shelljs@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +side-channel@^1.0.4, side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +sirv@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0" + integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== + dependencies: + "@polka/url" "^1.0.0-next.24" + mrmime "^2.0.0" + totalist "^3.0.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +sitemap@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-7.1.2.tgz#6ce1deb43f6f177c68bc59cf93632f54e3ae6b72" + integrity sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw== + dependencies: + "@types/node" "^17.0.5" + "@types/sax" "^1.2.1" + arg "^5.0.0" + sax "^1.2.4" + +skin-tone@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/skin-tone/-/skin-tone-2.0.0.tgz#4e3933ab45c0d4f4f781745d64b9f4c208e41237" + integrity sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA== + dependencies: + unicode-emoji-modifier-base "^1.0.0" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +sockjs@^0.3.24: + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + +sort-css-media-queries@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz#aa33cf4a08e0225059448b6c40eddbf9f1c8334c" + integrity sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA== + +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.0: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +srcset@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/srcset/-/srcset-4.0.0.tgz#336816b665b14cd013ba545b6fe62357f86e65f4" + integrity sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +std-env@^3.0.1: + version "3.7.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2" + integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== + +stdin-discarder@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.2.2.tgz#390037f44c4ae1a1ae535c5fe38dc3aba8d997be" + integrity sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string-width@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" + integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== + dependencies: + emoji-regex "^10.3.0" + get-east-asian-width "^1.0.0" + strip-ansi "^7.1.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-entities@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.4.tgz#b3b79ef5f277cc4ac73caeb0236c5ba939b3a4f3" + integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" + +stringify-object@3.3.0, stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1, strip-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +style-mod@^4.0.0, style-mod@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/style-mod/-/style-mod-4.1.2.tgz#ca238a1ad4786520f7515a8539d5a63691d7bf67" + integrity sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw== + +style-to-object@^0.4.0: + version "0.4.4" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.4.tgz#266e3dfd56391a7eefb7770423612d043c3f33ec" + integrity sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg== + dependencies: + inline-style-parser "0.1.1" + +style-to-object@^1.0.0: + version "1.0.6" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-1.0.6.tgz#0c28aed8be1813d166c60d962719b2907c26547b" + integrity sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA== + dependencies: + inline-style-parser "0.2.3" + +stylehacks@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.1.1.tgz#543f91c10d17d00a440430362d419f79c25545a6" + integrity sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg== + dependencies: + browserslist "^4.23.0" + postcss-selector-parser "^6.0.16" + +stylis@^4.1.3: + version "4.3.2" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.2.tgz#8f76b70777dd53eb669c6f58c997bf0a9972e444" + integrity sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg== + +sucrase@^3.31.0, sucrase@^3.32.0: + version "3.35.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" + integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "^10.3.10" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-parser@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svgo@^3.0.2, svgo@^3.2.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.2.tgz#ad58002652dffbb5986fc9716afe52d869ecbda8" + integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw== + 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" + +tailwind-merge@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-2.3.0.tgz#27d2134fd00a1f77eca22bcaafdd67055917d286" + integrity sha512-vkYrLpIP+lgR0tQCG6AP7zZXCTLc1Lnv/CCRT3BqJ9CZ3ui2++GPaGb1x/ILsINIMSYqqvrpqjUFsMNLlW99EA== + dependencies: + "@babel/runtime" "^7.24.1" + +tailwindcss@^3.4.3: + version "3.4.7" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.7.tgz#6092f18767f5933f59375b9afe558e592fc77201" + integrity sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ== + 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" + +tapable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +telejson@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/telejson/-/telejson-7.2.0.tgz#3994f6c9a8f8d7f2dba9be2c7c5bbb447e876f32" + integrity sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ== + dependencies: + memoizerific "^1.11.3" + +terser-webpack-plugin@^5.3.10, terser-webpack-plugin@^5.3.9: + version "5.3.10" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== + dependencies: + "@jridgewell/trace-mapping" "^0.3.20" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.26.0" + +terser@^5.10.0, terser@^5.15.1, terser@^5.26.0: + version "5.31.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.0.tgz#06eef86f17007dbad4593f11a574c7f5eb02c6a1" + integrity sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +tiny-invariant@^1.0.2, tiny-invariant@^1.3.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" + integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== + +tiny-warning@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +tinyspy@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-2.2.1.tgz#117b2342f1f38a0dbdcc73a50a454883adf861d1" + integrity sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A== + +title-case@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/title-case/-/title-case-3.0.3.tgz#bc689b46f02e411f1d1e1d081f7c3deca0489982" + integrity sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA== + dependencies: + tslib "^2.0.3" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +totalist@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" + integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + +trough@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" + integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== + +ts-dedent@^2.0.0, ts-dedent@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" + integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== + +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + +tslib@^2.0.0, tslib@^2.1.0: + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + +tslib@^2.0.3, tslib@^2.4.0, tslib@^2.6.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +type-detect@^4.0.0, type-detect@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^1.0.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + +type-fest@^2.13.0, type-fest@^2.19.0, type-fest@^2.5.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typescript@~5.4.5: + version "5.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== + +ua-parser-js@^1.0.33: + version "1.0.38" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.38.tgz#66bb0c4c0e322fe48edfe6d446df6042e62f25e2" + integrity sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ== + +uc.micro@^2.0.0, uc.micro@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" + integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== + +uglify-js@^3.1.4: + version "3.19.2" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.2.tgz#319ae26a5fbd18d03c7dc02496cfa1d6f1cd4307" + integrity sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ== + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +unhead@^1.8.3: + version "1.9.12" + resolved "https://registry.yarnpkg.com/unhead/-/unhead-1.9.12.tgz#70f8c353ccd7c6539ce95283aafce863384a48a1" + integrity sha512-s6VxcTV45hy8c/IioKQOonFnAO+kBOSpgDfqEHhnU0YVSQYaRPEp9pzW1qSPf0lx+bg9RKeOQyNNbSGGUP26aQ== + dependencies: + "@unhead/dom" "1.9.12" + "@unhead/schema" "1.9.12" + "@unhead/shared" "1.9.12" + hookable "^5.5.3" + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-emoji-modifier-base@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz#dbbd5b54ba30f287e2a8d5a249da6c0cef369459" + integrity sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.0.0, unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +unified@^11.0.0, unified@^11.0.3, unified@^11.0.4: + version "11.0.4" + resolved "https://registry.yarnpkg.com/unified/-/unified-11.0.4.tgz#f4be0ac0fe4c88cb873687c07c64c49ed5969015" + integrity sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ== + dependencies: + "@types/unist" "^3.0.0" + bail "^2.0.0" + devlop "^1.0.0" + extend "^3.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^6.0.0" + +unique-string@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" + integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== + dependencies: + crypto-random-string "^4.0.0" + +unist-util-find-after@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz#3fccc1b086b56f34c8b798e1ff90b5c54468e896" + integrity sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + +unist-util-is@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9" + integrity sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-is@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" + integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position-from-estree@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz#d94da4df596529d1faa3de506202f0c9a23f2200" + integrity sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-5.0.0.tgz#678f20ab5ca1207a97d7ea8a388373c9cf896be4" + integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-remove-position@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz#fea68a25658409c9460408bc6b4991b965b52163" + integrity sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q== + dependencies: + "@types/unist" "^3.0.0" + unist-util-visit "^5.0.0" + +unist-util-stringify-position@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" + integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-stringify-position@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" + integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-visit-parents@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb" + integrity sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit-parents@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" + integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + +unist-util-visit@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" + integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.1.1" + +unist-util-visit@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" + integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +update-browserslist-db@^1.0.13: + version "1.0.16" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356" + integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.1" + +update-notifier@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-6.0.2.tgz#a6990253dfe6d5a02bd04fbb6a61543f55026b60" + integrity sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og== + dependencies: + boxen "^7.0.0" + chalk "^5.0.1" + configstore "^6.0.0" + has-yarn "^3.0.0" + import-lazy "^4.0.0" + is-ci "^3.0.1" + is-installed-globally "^0.4.0" + is-npm "^6.0.0" + is-yarn-global "^0.4.0" + latest-version "^7.0.0" + pupa "^3.1.0" + semver "^7.3.7" + semver-diff "^4.0.0" + xdg-basedir "^5.1.0" + +upper-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" + integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== + dependencies: + tslib "^2.0.3" + +upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" + integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== + dependencies: + tslib "^2.0.3" + +uri-js@^4.2.2, uri-js@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-loader@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +use-callback-ref@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.2.tgz#6134c7f6ff76e2be0b56c809b17a650c942b1693" + integrity sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA== + dependencies: + tslib "^2.0.0" + +use-editable@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/use-editable/-/use-editable-2.3.3.tgz#a292fe9ba4c291cd28d1cc2728c75a5fc8d9a33f" + integrity sha512-7wVD2JbfAFJ3DK0vITvXBdpd9JAz5BcKAAolsnLBuBn6UDDwBGuCIAGvR3yA2BNKm578vAMVHFCWaOcA+BhhiA== + +use-sidecar@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.1.2.tgz#2f43126ba2d7d7e117aa5855e5d8f0276dfe73c2" + integrity sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw== + dependencies: + detect-node-es "^1.1.0" + tslib "^2.0.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util@^0.12.4: + version "0.12.5" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + which-typed-array "^1.1.2" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utility-types@^3.10.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.11.0.tgz#607c40edb4f258915e901ea7995607fdf319424c" + integrity sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +uvu@^0.5.0: + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + +v8flags@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-4.0.1.tgz#98fe6c4308317c5f394d85a435eb192490f7e132" + integrity sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg== + +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +vfile-location@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-5.0.2.tgz#220d9ca1ab6f8b2504a4db398f7ebc149f9cb464" + integrity sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg== + dependencies: + "@types/unist" "^3.0.0" + vfile "^6.0.0" + +vfile-message@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.2.tgz#c883c9f677c72c166362fd635f21fc165a7d1181" + integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" + +vfile@^6.0.0, vfile@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.1.tgz#1e8327f41eac91947d4fe9d237a2dd9209762536" + integrity sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" + vfile-message "^4.0.0" + +vite@^5.1.6: + version "5.3.5" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.5.tgz#b847f846fb2b6cb6f6f4ed50a830186138cb83d8" + integrity sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA== + dependencies: + esbuild "^0.21.3" + postcss "^8.4.39" + rollup "^4.13.0" + optionalDependencies: + fsevents "~2.3.3" + +vue-demi@>=0.13.0: + version "0.14.8" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.8.tgz#00335e9317b45e4a68d3528aaf58e0cec3d5640a" + integrity sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q== + +vue-demi@>=0.14.8: + version "0.14.10" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04" + integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== + +w3c-keyname@^2.2.4: + version "2.2.8" + resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz#7b17c8c6883d4e8b86ac8aba79d39e880f8869c5" + integrity sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ== + +watchpack@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.1.tgz#29308f2cac150fa8e4c92f90e0ec954a9fed7fff" + integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +web-namespaces@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" + integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== + +web-streams-polyfill@4.0.0-beta.3: + version "4.0.0-beta.3" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz#2898486b74f5156095e473efe989dcf185047a38" + integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug== + +web-worker@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.3.0.tgz#e5f2df5c7fe356755a5fb8f8410d4312627e6776" + integrity sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webpack-bundle-analyzer@^4.9.0: + version "4.10.2" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz#633af2862c213730be3dbdf40456db171b60d5bd" + integrity sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw== + dependencies: + "@discoveryjs/json-ext" "0.5.7" + acorn "^8.0.4" + acorn-walk "^8.0.0" + commander "^7.2.0" + debounce "^1.2.1" + escape-string-regexp "^4.0.0" + gzip-size "^6.0.0" + html-escaper "^2.0.2" + opener "^1.5.2" + picocolors "^1.0.0" + sirv "^2.0.3" + ws "^7.3.1" + +webpack-dev-middleware@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" + integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== + dependencies: + colorette "^2.0.10" + memfs "^3.4.3" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-dev-server@^4.15.1: + version "4.15.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" + integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.5" + ansi-html-community "^0.0.8" + bonjour-service "^1.0.11" + chokidar "^3.5.3" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^2.0.0" + default-gateway "^6.0.3" + express "^4.17.3" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.0.1" + launch-editor "^2.6.0" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.1.1" + serve-index "^1.9.1" + sockjs "^0.3.24" + spdy "^4.0.2" + webpack-dev-middleware "^5.3.4" + ws "^8.13.0" + +webpack-merge@^5.9.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" + integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== + dependencies: + clone-deep "^4.0.1" + flat "^5.0.2" + wildcard "^2.0.0" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5.88.1: + version "5.91.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.91.0.tgz#ffa92c1c618d18c878f06892bbdc3373c71a01d9" + integrity sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.5" + "@webassemblyjs/ast" "^1.12.1" + "@webassemblyjs/wasm-edit" "^1.12.1" + "@webassemblyjs/wasm-parser" "^1.12.1" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" + browserslist "^4.21.10" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.16.0" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.11" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.2.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.1" + webpack-sources "^3.2.3" + +webpackbar@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-5.0.2.tgz#d3dd466211c73852741dfc842b7556dcbc2b0570" + integrity sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ== + dependencies: + chalk "^4.1.0" + consola "^2.15.3" + pretty-time "^1.1.0" + std-env "^3.0.1" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + +which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.2: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + +which@^1.2.14, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +widest-line@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" + integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== + dependencies: + string-width "^5.0.1" + +wildcard@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^7.3.1: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +ws@^8.13.0: + version "8.17.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea" + integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== + +xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" + integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== + +xml-js@^1.6.11: + version "1.6.11" + resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" + integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== + dependencies: + sax "^1.2.4" + +y-codemirror.next@^0.3.2: + version "0.3.4" + resolved "https://registry.yarnpkg.com/y-codemirror.next/-/y-codemirror.next-0.3.4.tgz#9ba551f51f1d7edb5ba8269ceff026fbaa9b4004" + integrity sha512-G4l0P0MA0v9LFYuBgQU5M5fwzcDSa6757mQ46iJCmU2rHC/iT+k9L6ufIp/DYFY5DfJ/QYNj66qGKQ6EL9WEtw== + dependencies: + lib0 "^0.2.42" + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yaml@^1.7.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yaml@^2.3.4: + version "2.4.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.3.tgz#0777516b8c7880bcaa0f426a5410e8d6b0be1f3d" + integrity sha512-sntgmxj8o7DE7g/Qi60cqpLBA3HG3STcDA0kO+WfB05jEKhZMbY7umNm2rBpQvsmZ16/lPXCJGW2672dgOUkrg== + +yaml@^2.4.1: + version "2.5.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.0.tgz#c6165a721cf8000e91c36490a41d7be25176cf5d" + integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== + +yoctocolors-cjs@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz#f4b905a840a37506813a7acaa28febe97767a242" + integrity sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA== + +zhead@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/zhead/-/zhead-2.2.4.tgz#87cd1e2c3d2f465fa9f43b8db23f9716dfe6bed7" + integrity sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag== + +zwitch@^2.0.0, zwitch@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==