diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 2fd4d7b2..4abac89d 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -5,7 +5,7 @@ on: types: - closed branches: - - master # Change to your default branch if different (e.g., master) + - master workflow_dispatch: jobs: @@ -14,25 +14,32 @@ jobs: if: github.event.pull_request.merged == true runs-on: ubuntu-latest permissions: - contents: write # Needed for creating releases + contents: write # Needed for creating releases steps: - - name: Checkout code - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v6 with: - fetch-depth: 0 # Fetch all history for proper versioning and commit messages - + fetch-depth: 0 # Fetch all history for proper versioning and commit messages + - name: Get latest release version id: get_version run: | # Get latest tag or set to v0.0.0 if none exists LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0") echo "LATEST_TAG=${LATEST_TAG}" >> $GITHUB_ENV - + # Extract version numbers - MAJOR=$(echo $LATEST_TAG | sed 's/v\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/') - MINOR=$(echo $LATEST_TAG | sed 's/v\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/') - PATCH=$(echo $LATEST_TAG | sed 's/v\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/') - + TAG_VERSION="${LATEST_TAG#v}" + if [[ "$TAG_VERSION" =~ ^([0-9]+)\.([0-9]+)\.([0-9]+)$ ]]; then + MAJOR="${BASH_REMATCH[1]}" + MINOR="${BASH_REMATCH[2]}" + PATCH="${BASH_REMATCH[3]}" + else + MAJOR=0 + MINOR=0 + PATCH=0 + fi + # Check PR labels to determine which version to increment if [[ "${{ contains(github.event.pull_request.labels.*.name, 'major') }}" == "true" ]]; then echo "Incrementing MAJOR version due to 'major' label" @@ -47,7 +54,7 @@ jobs: echo "Incrementing PATCH version (default)" PATCH=$((PATCH + 1)) fi - + NEW_TAG="v$MAJOR.$MINOR.$PATCH" echo "Bumping version from $LATEST_TAG to $NEW_TAG" echo "NEW_TAG=${NEW_TAG}" >> $GITHUB_ENV @@ -58,13 +65,13 @@ jobs: # Get commits since last tag echo "Generating commit list since $LATEST_TAG" COMMITS=$(git log --pretty=format:"- %s (%h)" ${{ env.LATEST_TAG }}..HEAD) - + # Extract PR details PR_TITLE="${{ github.event.pull_request.title }}" PR_NUMBER="${{ github.event.pull_request.number }}" PR_BODY="${{ github.event.pull_request.body }}" PR_USER="${{ github.event.pull_request.merged_by.login }}" - + # Save release notes to environment variable echo "RELEASE_NOTES<> $GITHUB_ENV echo "## Release ${{ env.NEW_TAG }}" >> $GITHUB_ENV @@ -73,25 +80,25 @@ jobs: echo "- #$PR_NUMBER: $PR_TITLE" >> $GITHUB_ENV echo "- Merged by @$PR_USER" >> $GITHUB_ENV echo "" >> $GITHUB_ENV - + if [[ -n "$PR_BODY" ]]; then echo "### 📝 Description" >> $GITHUB_ENV echo "$PR_BODY" >> $GITHUB_ENV echo "" >> $GITHUB_ENV fi - + echo "### 📦 Changes" >> $GITHUB_ENV echo "$COMMITS" >> $GITHUB_ENV echo "EOF" >> $GITHUB_ENV - name: Create Release - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 with: tag_name: ${{ env.NEW_TAG }} name: Release ${{ env.NEW_TAG }} body: ${{ env.RELEASE_NOTES }} - draft: false # Set to true if you want to review before publishing - prerelease: false # Set to true for pre-releases + draft: false # Set to true if you want to review before publishing + prerelease: false # Set to true for pre-releases # If you have build artifacts to include, uncomment and modify this: # files: | # dist/*.zip @@ -101,4 +108,4 @@ jobs: - name: Output Results run: | - echo "::notice::🎉 Created release ${{ env.NEW_TAG }} from PR #${{ github.event.pull_request.number }}" \ No newline at end of file + echo "::notice::🎉 Created release ${{ env.NEW_TAG }} from PR #${{ github.event.pull_request.number }}" diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 28ad27c6..37bfe08b 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -10,12 +10,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v6 - name: Setup Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v6 with: - node-version: '18' + node-version: "lts/*" - name: Install dependencies run: | @@ -29,10 +29,10 @@ jobs: - name: Create .nojekyll file run: | - touch docs-site/out/.nojekyll + touch docs-site/out/.nojekyll - name: Deploy uses: JamesIves/github-pages-deploy-action@v4 with: - folder: docs-site/out - branch: gh-pages \ No newline at end of file + folder: docs-site/out + branch: gh-pages diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index de2d74dd..d7ad7898 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -4,21 +4,27 @@ on: workflow_dispatch: jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.10' - - name: Install uv - run: pip install uv - - name: Create virtual environment - run: uv venv - - name: Install dependencies - run: | - uv pip install -e ".[dev]" - uv pip install black - - name: format - run: uv run black --check . \ No newline at end of file + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.10" + + - name: Install uv + run: pip install uv + + - name: Create virtual environment + run: uv venv + + - name: Install dependencies + run: | + uv pip install -e ".[dev]" + uv pip install black + + - name: format + run: uv run black --check . diff --git a/.github/workflows/install.yml b/.github/workflows/install.yml index d43be627..551a8798 100644 --- a/.github/workflows/install.yml +++ b/.github/workflows/install.yml @@ -1,23 +1,28 @@ name: Install on: push: - branches: [ "master" ] + branches: ["master"] pull_request: - branches: [ "master" ] + branches: ["master"] workflow_dispatch: jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.10' - - name: Install uv - run: pip install uv - - name: Create virtual environment - run: uv venv - - name: Install package - run: uv pip install -e . \ No newline at end of file + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.10" + + - name: Install uv + run: pip install uv + + - name: Create virtual environment + run: uv venv + + - name: Install package + run: uv pip install -e . diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 09eafd62..7c28b77f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -3,24 +3,30 @@ on: workflow_dispatch: jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.10' - - name: Install uv - run: pip install uv - - name: Create virtual environment - run: uv venv - - name: Install dependencies - run: | - uv pip install -e ".[dev]" - uv pip install ruff flake8 - - name: lint - run: | - uv run ruff check --fix . - uv run ruff check . - uv run flake8 yake/ \ No newline at end of file + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.10" + + - name: Install uv + run: pip install uv + + - name: Create virtual environment + run: uv venv + + - name: Install dependencies + run: | + uv pip install -e ".[dev]" + uv pip install ruff flake8 + + - name: lint + run: | + uv run ruff check --fix . + uv run ruff check . + uv run flake8 yake/ diff --git a/.github/workflows/publishpypi.yml b/.github/workflows/publishpypi.yml index 88a7bb35..3f440852 100644 --- a/.github/workflows/publishpypi.yml +++ b/.github/workflows/publishpypi.yml @@ -21,9 +21,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: Checkout + uses: actions/checkout@v6 - - uses: actions/setup-python@v5 + - name: Set up Python + uses: actions/setup-python@v6 with: python-version: "3.10" @@ -34,7 +36,7 @@ jobs: python -m build - name: Upload distributions - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: release-dists path: dist/ @@ -60,7 +62,7 @@ jobs: steps: - name: Retrieve release distributions - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: name: release-dists path: dist/ @@ -68,4 +70,4 @@ jobs: - name: Publish release distributions to PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: - packages-dir: dist/ \ No newline at end of file + packages-dir: dist/ diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index 13a39770..221890f6 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -5,19 +5,20 @@ on: [push] jobs: build: runs-on: ubuntu-latest - strategy: - matrix: - python-version: ["3.12"] steps: - - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install pylint>=3.3.0 - - name: Analysing the code with pylint - run: | - pylint $(git ls-files '*.py') --fail-under=9.0 + - name: Checkout + uses: actions/checkout@v6 + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.10" + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pylint>=3.3.0 + + - name: Analysing the code with pylint + run: | + pylint $(git ls-files '*.py') --fail-under=9.0 diff --git a/.github/workflows/resultados.yml b/.github/workflows/resultados.yml index 05794e50..b677734f 100644 --- a/.github/workflows/resultados.yml +++ b/.github/workflows/resultados.yml @@ -6,19 +6,18 @@ on: jobs: test: runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 + - name: Checkout + uses: actions/checkout@v6 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v6 with: - python-version: '3.10' + python-version: "3.10" - name: Install uv run: pip install uv - + - name: Create virtual environment run: uv venv @@ -43,7 +42,7 @@ jobs: - name: Upload test results (em caso de falha) if: failure() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: test-logs - path: test_output.log \ No newline at end of file + path: test_output.log diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4e37bf12..5f629305 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,30 +1,37 @@ name: Test on: push: - branches: [ "master" ] + branches: ["master"] pull_request: - branches: [ "master" ] + branches: ["master"] workflow_dispatch: jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.12' - - name: Install uv - run: pip install uv - - name: Create virtual environment - run: uv venv - - name: Install dependencies - run: | - uv pip install -e ".[dev,lemmatization,benchmark]" - - name: Download spaCy and NLTK models - run: | - uv pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.8.0/en_core_web_sm-3.8.0-py3-none-any.whl - uv run python -c "import nltk; nltk.download('wordnet', quiet=True); nltk.download('omw-1.4', quiet=True)" - - name: test - run: uv run pytest -vv --cov=yake tests/ \ No newline at end of file + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.10" + + - name: Install uv + run: pip install uv + + - name: Create virtual environment + run: uv venv + + - name: Install dependencies + run: | + uv pip install -e ".[dev,lemmatization,benchmark]" + + - name: Download spaCy and NLTK models + run: | + uv pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.8.0/en_core_web_sm-3.8.0-py3-none-any.whl + uv run python -c "import nltk; nltk.download('wordnet', quiet=True); nltk.download('omw-1.4', quiet=True)" + + - name: test + run: uv run pytest -vv --cov=yake tests/ diff --git a/.python-version b/.python-version deleted file mode 100644 index c8cfe395..00000000 --- a/.python-version +++ /dev/null @@ -1 +0,0 @@ -3.10 diff --git a/LICENSE b/LICENSE index 09de9bd6..13825c5f 100644 --- a/LICENSE +++ b/LICENSE @@ -2,7 +2,7 @@ YAKE! License Agreement Copyright (C) 2018, INESC TEC -YAKE! Collection-independent Automatic Keyword Extractor: a novel feature-based system for multi-lingual keyword extraction, which supports texts of different sizes, domain or languages. Unlike most of the systems, YAKE! does not rely on dictionaries nor thesauri, neither is trained against any corpora. Instead, we follow an unsupervised approach which builds upon features extracted from the text, making it thus applicable to documents written in different languages without the need for further knowledge. This can be beneficial for a large number of tasks and a plethora of situations where the access to training corpora is either limited or restricted. +YAKE! Collection-independent Automatic Keyword Extractor: a novel feature-based system for multi-lingual keyword extraction, which supports texts of different sizes, domain or languages. Unlike most of the systems, YAKE! does not rely on dictionaries nor thesauri, neither is trained against any corpora. Instead, we follow an unsupervised approach which builds upon features extracted from the text, making it thus applicable to documents written in different languages without the need for further knowledge. This can be beneficial for a large number of tasks and a plethora of situations where the access to training corpora is either limited or restricted. This software is authored by the following INESC TEC researchers: Ricardo Campos @@ -20,18 +20,18 @@ You should have received a copy of the GNU Affero General Public License along w A commercial license is also available for use in industrial projects and collaborations that do not wish to use the AGPL 3 license. -To obtain the commercial license please contact the INESC TEC Technology Licensing Office (TLO) at info.sal@inesctec.pt, or +To obtain the commercial license please contact the INESC TEC Technology Licensing Office (TLO) at info.sal@inesctec.pt, or -Campus da Faculdade de Engenharia da Universidade do Porto +Campus da Faculdade de Engenharia da Universidade do Porto -Rua Dr. Roberto Frias +Rua Dr. Roberto Frias -4200-465 Porto +4200-465 Porto -Portugal +Portugal -If you use "YAKE" in a work that leads to a scientific publication, we would appreciate it if you would kindly cite +If you use "YAKE" in a work that leads to a scientific publication, we would appreciate it if you would kindly cite it in your manuscript. Campos, R., Mangaravite, V., Pasquali, A., Jorge, A., Nunes, C. and Jatowt, A. (2020). YAKE! Keyword Extraction from Single Documents using Multiple Local Features. In Information Sciences Journal. Elsevier, Vol 509, pp 257-289, ISSN 0020-0255.” @@ -42,7 +42,7 @@ GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 -Copyright © 2007 Free Software Foundation, Inc. +Copyright © 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. diff --git a/docs-site/app/layout.config.tsx b/docs-site/app/layout.config.tsx index 25fbf162..bc495fba 100644 --- a/docs-site/app/layout.config.tsx +++ b/docs-site/app/layout.config.tsx @@ -1,4 +1,4 @@ -import type { BaseLayoutProps } from 'fumadocs-ui/layouts/shared';; +import type { BaseLayoutProps } from 'fumadocs-ui/layouts/shared'; import Image from 'next/image'; /** diff --git a/docs-site/app/layout.tsx b/docs-site/app/layout.tsx index 6b3a7b9a..83aab655 100644 --- a/docs-site/app/layout.tsx +++ b/docs-site/app/layout.tsx @@ -2,7 +2,7 @@ import { Metadata } from 'next'; import { basePath } from './config'; import './global.css'; -import { RootProvider } from 'fumadocs-ui/provider'; +import { RootProvider } from 'fumadocs-ui/provider/next'; import { Inter } from 'next/font/google'; const inter = Inter({ diff --git a/docs-site/content/docs/--home.mdx b/docs-site/content/docs/--home.mdx index 4c2416bf..e5d124af 100644 --- a/docs-site/content/docs/--home.mdx +++ b/docs-site/content/docs/--home.mdx @@ -1,6 +1,6 @@ --- title: Yet Another Keyword Extractor (YAKE!) -icon: GitCompareArrows +icon: House --- import { Callout } from 'fumadocs-ui/components/callout'; @@ -16,9 +16,9 @@ import { Tabs, Tab } from 'fumadocs-ui/components/tabs';

Unsupervised Automatic Keyword Extraction

-

+

YAKE! is a light-weight unsupervised automatic keyword extraction method which rests on text statistical features extracted from single documents to select the most important keywords of a text. -

+
@@ -27,17 +27,17 @@ import { Tabs, Tab } from 'fumadocs-ui/components/tabs';
🚀

No Training Required

-

Works without corpus or dictionaries

+
Works without corpus or dictionaries
🌍

Multilingual

-

Supports 25+ languages out-of-the-box

+
Supports 25+ languages out-of-the-box
📄

Single Document

-

No corpus comparison needed

+
No corpus comparison needed
@@ -65,30 +65,30 @@ Instead, it follows an **unsupervised approach** which builds upon features extr

🎯 Unsupervised Approach

-

+

No need for training data or labeled corpora. Works immediately on any text. -

+

📊 Corpus-Independent

-

+

Analyzes each document independently without requiring external reference corpora. -

+

🌐 Domain and Language Independent

-

+

Works across different domains and languages without configuration changes. -

+

📄 Single-Document Processing

-

+

Extracts keywords from individual documents with high accuracy. -

+
@@ -105,11 +105,11 @@ Instead, it follows an **unsupervised approach** which builds upon features extr

Information Sciences Journal (2020)

-

+

Campos, R., Mangaravite, V., Pasquali, A., Jatowt, A., Jorge, A., Nunes, C. and Jatowt, A. (2020). YAKE! Keyword Extraction from Single Documents using Multiple Local Features. Information Sciences Journal. Elsevier, Vol 509, pp 257-289. -

+
📥 Download PDF @@ -117,12 +117,12 @@ Instead, it follows an **unsupervised approach** which builds upon features extr

ECIR 2018 - Best Short Paper 🏆

-

+

Campos R., Mangaravite V., Pasquali A., Jorge A.M., Nunes C., and Jatowt A. (2018). A Text Feature Based Automatic Keyword Extraction Method for Single Documents. In: Pasi G., Piwowarski B., Azzopardi L., Hanbury A. (eds). Advances in Information Retrieval. ECIR 2018 (Grenoble, France. March 26 – 29). Lecture Notes in Computer Science, vol 10772, pp. 684 - 691. -

+
📥 Download PDF @@ -130,12 +130,12 @@ Instead, it follows an **unsupervised approach** which builds upon features extr

ECIR 2018 - Demo Paper

-

+

Campos R., Mangaravite V., Pasquali A., Jorge A.M., Nunes C., and Jatowt A. (2018). YAKE! Collection-independent Automatic Keyword Extractor. In: Pasi G., Piwowarski B., Azzopardi L., Hanbury A. (eds). Advances in Information Retrieval. ECIR 2018 (Grenoble, France. March 26 – 29). Lecture Notes in Computer Science, vol 10772, pp. 806 - 810. -

+
📥 Download PDF @@ -147,9 +147,9 @@ Instead, it follows an **unsupervised approach** which builds upon features extr ## 📜 License
-

+

Copyright (C) 2018, INESC TEC -

+
View License → @@ -222,7 +222,7 @@ If you are feeling nostalgic you can access the old site [here](http://yake.ines

Back to top

-

+

Copyright ©2018-{new Date().getFullYear()} INESC TEC. Distributed by an INESCTEC license. -

+
\ No newline at end of file diff --git a/docs-site/content/docs/-getting-started.mdx b/docs-site/content/docs/-getting-started.mdx index 33e4ede1..36e4a4c2 100644 --- a/docs-site/content/docs/-getting-started.mdx +++ b/docs-site/content/docs/-getting-started.mdx @@ -17,9 +17,9 @@ import { Tabs, Tab } from 'fumadocs-ui/components/tabs';

Quick Start Guide

-

+

Get YAKE! up and running in less than 5 minutes. Follow these simple steps to start extracting keywords from your texts. -

+
@@ -58,13 +58,13 @@ import { Tabs, Tab } from 'fumadocs-ui/components/tabs';

💡 Optional: Lemmatization Support

-

+

To use lemmatization features (aggregate keyword variations like "tree/trees"), install the optional dependencies: -

+
uv pip install yake[lemmatization]
-

Then download the required language models:

+
Then download the required language models:
# For spaCy (recommended)
python -m spacy download en_core_web_sm
@@ -218,9 +218,9 @@ YAKE uses three methods to compute string similarity during keyword deduplicatio leve
-

+

Measures edit distance between strings — operations needed to transform one string into another. -

+
@@ -236,9 +236,9 @@ YAKE uses three methods to compute string similarity during keyword deduplicatio
-

+

1 - distance / max_len -

+
@@ -254,9 +254,9 @@ YAKE uses three methods to compute string similarity during keyword deduplicatio jaro
-

+

Measures similarity based on matching characters and their relative positions. -

+
@@ -272,9 +272,9 @@ YAKE uses three methods to compute string similarity during keyword deduplicatio
-

+

jellyfish.jaro_similarity() -

+
@@ -290,9 +290,9 @@ YAKE uses three methods to compute string similarity during keyword deduplicatio seqm -

+

Uses Python's built-in difflib to find matching blocks in strings. -

+
@@ -308,9 +308,9 @@ YAKE uses three methods to compute string similarity during keyword deduplicatio
-

+

2 * matches / total_len -

+
@@ -569,7 +569,7 @@ The lower the score, the more relevant the keyword is.

Back to top

-

+

Copyright ©2018-{new Date().getFullYear()} INESC TEC. Distributed by an INESCTEC license. -

+
\ No newline at end of file diff --git a/docs-site/content/docs/-related-projects.mdx b/docs-site/content/docs/-related-projects.mdx index b4d4be49..6f54e232 100644 --- a/docs-site/content/docs/-related-projects.mdx +++ b/docs-site/content/docs/-related-projects.mdx @@ -15,9 +15,9 @@ import { Callout } from 'fumadocs-ui/components/callout';

🌐 Projects Using YAKE!

-

+

Discover how YAKE! is being used across different platforms, libraries, and applications worldwide. -

+
@@ -33,16 +33,16 @@ import { Callout } from 'fumadocs-ui/components/callout';

SparkNLP

-

by John Snow Labs

+
by John Snow Labs
NLP Framework -

+

Open source framework with full Python, Scala, and Java Support. -

+
@@ -69,16 +69,16 @@ import { Callout } from 'fumadocs-ui/components/callout';

PKE

-

Python Keyphrase Extraction

+
Python Keyphrase Extraction
Python Library -

+

Open source python-based keyphrase extraction toolkit providing an end-to-end pipeline where each component can be easily modified or extended. -

+
@@ -96,16 +96,16 @@ import { Callout } from 'fumadocs-ui/components/callout';

Textacy

-

NLP, before and after spaCy

+
NLP, before and after spaCy
Python Library -

+

Python library for performing a variety of natural language processing (NLP) tasks, built on the high-performance spaCy library. -

+
@@ -123,16 +123,16 @@ import { Callout } from 'fumadocs-ui/components/callout';

General Index

-

by Archive.org

+
by Archive.org
19B Keywords -

+

A catalogue of 19 billions of YAKE keywords extracted from 107 million papers. -

+
💾 Archive.org @@ -152,16 +152,16 @@ import { Callout } from 'fumadocs-ui/components/callout';

Annif

-

Automated Subject Indexing

+
Automated Subject Indexing
Tool -

+

Multi-algorithm automated subject indexing tool for libraries, archives and museums. -

+
@@ -182,16 +182,16 @@ import { Callout } from 'fumadocs-ui/components/callout';

Portulan Clarin

-

Language Technology Services

+
Language Technology Services
Platform -

+

Research Infrastructure for the Science and Technology of Language, part of the international research infrastructure CLARIN ERIC. -

+
🎭 Demo @@ -211,16 +211,16 @@ import { Callout } from 'fumadocs-ui/components/callout';

Tell me stories

-

Conta-me Histórias

+
Conta-me Histórias
Research Project -

+

Research project that allows users to automatically build news narratives based on news preserved by the Portuguese Web Archive. -

+
🌐 Visit @@ -238,7 +238,7 @@ import { Callout } from 'fumadocs-ui/components/callout';

Back to top

-

+

Copyright ©2018-{new Date().getFullYear()} INESC TEC. Distributed by an INESCTEC license. -

+
\ No newline at end of file diff --git a/docs-site/content/docs/Documentation/core/Levenshtein.mdx b/docs-site/content/docs/Documentation/core/Levenshtein.mdx index 1be48377..a59fc251 100644 --- a/docs-site/content/docs/Documentation/core/Levenshtein.mdx +++ b/docs-site/content/docs/Documentation/core/Levenshtein.mdx @@ -1,6 +1,8 @@ -import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion' +--- +title: 'Levenshtein' +--- -# Levenshtein +import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion' The `Levenshtein` class provides utilities for calculating edit distances and similarity ratios between strings using the Levenshtein algorithm. diff --git a/docs-site/content/docs/Documentation/core/highlight.mdx b/docs-site/content/docs/Documentation/core/highlight.mdx index 072b6a0f..3ee327ca 100644 --- a/docs-site/content/docs/Documentation/core/highlight.mdx +++ b/docs-site/content/docs/Documentation/core/highlight.mdx @@ -1,6 +1,8 @@ -import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion' +--- +title: 'TextHighlighter' +--- -# TextHighlighter +import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion' The `TextHighlighter` module provides functionality to highlight specific keywords in text, supporting both single-word and multi-word highlighting with customizable markers. diff --git a/docs-site/content/docs/Documentation/core/yake.mdx b/docs-site/content/docs/Documentation/core/yake.mdx index a9e44661..0b47d872 100644 --- a/docs-site/content/docs/Documentation/core/yake.mdx +++ b/docs-site/content/docs/Documentation/core/yake.mdx @@ -1,7 +1,9 @@ -import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion' -import { Callout } from 'fumadocs-ui/components/callout' +--- +title: 'KeywordExtractor' +--- -# KeywordExtractor Class +import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion' +import { Callout } from 'fumadocs-ui/components/callout'; The `KeywordExtractor` class is the main entry point for YAKE (Yet Another Keyword Extractor), providing a simple API to extract meaningful keywords from textual content. @@ -67,7 +69,6 @@ pipeline from raw text to ranked keywords. import os import logging import functools -from typing import List, Tuple, Optional, Set, Callable import jellyfish from yake.data import DataCore from .Levenshtein import Levenshtein @@ -92,8 +93,8 @@ The `KeywordExtractor` class handles the configuration, preprocessing, and extra dedup_func: str = "seqm", window_size: int = 1, top: int = 20, - features: Optional[List[str]] = None, - stopwords: Optional[Set[str]] = None, + features: list[str] | None = None, + stopwords: set[str] | None = None, lemmatize: bool = False, lemma_aggregation: str = "min", lemmatizer: str = "spacy", @@ -205,7 +206,7 @@ The `KeywordExtractor` class handles the configuration, preprocessing, and extra Returns: List of (keyword, score) tuples sorted by score (lower is better) - + """ # Handle empty input if not text: @@ -575,8 +576,8 @@ The `KeywordExtractor` class handles the configuration, preprocessing, and extra ```python def _lemmatize_keywords( self, - keywords: List[Tuple[str, float]] - ) -> List[Tuple[str, float]]: + keywords: list[tuple[str, float]] + ) -> list[tuple[str, float]]: """ Aggregate keywords by lemma. diff --git a/docs-site/content/docs/Documentation/data/composedword.mdx b/docs-site/content/docs/Documentation/data/composedword.mdx index b804fd7d..ad8bfc57 100644 --- a/docs-site/content/docs/Documentation/data/composedword.mdx +++ b/docs-site/content/docs/Documentation/data/composedword.mdx @@ -1,6 +1,8 @@ -import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion' +--- +title: 'ComposedWord' +--- -# ComposedWord +import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion' The `ComposedWord` class represents multi-word terms in YAKE (Yet Another Keyword Extractor), providing the foundation for analyzing and scoring potential keyword phrases. diff --git a/docs-site/content/docs/Documentation/data/datacore.mdx b/docs-site/content/docs/Documentation/data/datacore.mdx index 0676e8d8..69ad624a 100644 --- a/docs-site/content/docs/Documentation/data/datacore.mdx +++ b/docs-site/content/docs/Documentation/data/datacore.mdx @@ -1,6 +1,8 @@ -import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion' +--- +title: 'DataCore' +--- -# DataCore +import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion' The `DataCore` class is the foundation of YAKE (Yet Another Keyword Extractor), providing the core data representation for document analysis and keyword extraction. diff --git a/docs-site/content/docs/Documentation/data/features.mdx b/docs-site/content/docs/Documentation/data/features.mdx index b3291923..2fe30b2a 100644 --- a/docs-site/content/docs/Documentation/data/features.mdx +++ b/docs-site/content/docs/Documentation/data/features.mdx @@ -1,6 +1,8 @@ -import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion' +--- +title: 'Features' +--- -# Features Module +import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion' The `features` module contains pure functions for calculating statistical features used to score and rank keyword candidates in YAKE. @@ -21,7 +23,7 @@ Based on the modular architecture from the reference YAKE implementation. import logging import math -from typing import Dict, Any, Tuple +from typing import Any import numpy as np # Configure module logger @@ -45,7 +47,7 @@ This module provides stateless functions that calculate various statistical feat avg_tf: float, std_tf: float, number_of_sentences: int - ) -> Dict[str, float]: + ) -> dict[str, float]: """ Calculate all statistical features for a single term. @@ -134,7 +136,7 @@ This module provides stateless functions that calculate various statistical feat def calculate_composed_features( composed_word: Any, stopword_weight: str = 'bi' - ) -> Dict[str, float]: + ) -> dict[str, float]: """ Calculate features for multi-word expressions (n-grams). @@ -209,9 +211,9 @@ This module provides stateless functions that calculate various statistical feat ```python def normalize_features( - features: Dict[str, float], - max_vals: Dict[str, float] - ) -> Dict[str, float]: + features: dict[str, float], + max_vals: dict[str, float] + ) -> dict[str, float]: """ Normalize feature values to [0, 1] range. diff --git a/docs-site/content/docs/Documentation/data/singleword.mdx b/docs-site/content/docs/Documentation/data/singleword.mdx index 0ed6a492..b9619442 100644 --- a/docs-site/content/docs/Documentation/data/singleword.mdx +++ b/docs-site/content/docs/Documentation/data/singleword.mdx @@ -1,6 +1,8 @@ -import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion' +--- +title: 'SingleWord' +--- -# SingleWord +import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion' The `SingleWord` class represents individual terms in YAKE (Yet Another Keyword Extractor), providing the statistical features and measurements used in keyword extraction. diff --git a/docs-site/content/docs/Documentation/data/utils.mdx b/docs-site/content/docs/Documentation/data/utils.mdx index 8077eca2..17624f90 100644 --- a/docs-site/content/docs/Documentation/data/utils.mdx +++ b/docs-site/content/docs/Documentation/data/utils.mdx @@ -1,6 +1,8 @@ -import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion' +--- +title: 'Utils' +--- -# Utils +import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion' The `utils` module provides essential text processing functions for YAKE (Yet Another Keyword Extractor), handling tokenization, normalization, and classification of textual elements. diff --git a/docs-site/content/docs/about.mdx b/docs-site/content/docs/about.mdx index 4f9f734c..f0d97cbd 100644 --- a/docs-site/content/docs/about.mdx +++ b/docs-site/content/docs/about.mdx @@ -1,6 +1,6 @@ --- title: About -icon: CircleHelp +icon: CircleQuestionMark --- import { Callout } from 'fumadocs-ui/components/callout'; @@ -15,11 +15,11 @@ import { Callout } from 'fumadocs-ui/components/callout';

LIAAD - INESC TEC

-

+

This project was developed by LIAAD - Laboratory of Artificial Intelligence and Decision Support. LIAAD is an R&D laboratory at INESC TEC. It is one of the associated units of INESC Tec which is funded by Fundação para a Ciência e a Tecnologia (FCT, Portugal). -

+
@@ -37,10 +37,10 @@ import { Callout } from 'fumadocs-ui/components/callout';

Ricardo Campos

-

+

Assistant professor at the ICT Departmental Unit of the Polytechnic Institute of Tomar (IPT) and member of LIAAD-INESC TEC. PhD in Computer Science by the University of Porto. -

+
@@ -52,9 +52,9 @@ import { Callout } from 'fumadocs-ui/components/callout';

Vítor Mangaravite

-

+

Research intern of LIAAD/INESC TEC. MSc and BSc in Computer Science by Universidade Federal de Minas Gerais and Universidade Federal de Ouro Preto. -

+
@@ -66,10 +66,10 @@ import { Callout } from 'fumadocs-ui/components/callout';

Arian Pasquali

-

+

Researcher associated to University of Porto and LIAAD at INESC TEC. MSc in Computer Science by University of Porto with specialization in data mining. -

+
@@ -81,10 +81,10 @@ import { Callout } from 'fumadocs-ui/components/callout';

Alípio M. Jorge

-

+

Associate professor at the Department of Computer Science of U. Porto and coordinator of LIAAD/INESC TEC since 2012. PhD in Computer Science by U. Porto. -

+
@@ -96,10 +96,10 @@ import { Callout } from 'fumadocs-ui/components/callout';

Célia Nunes

-

+

Assistant Professor at the Department of Mathematics of the University of Beira Interior (UBI) and member of CMA. PhD in Mathematics by UBI. -

+
@@ -111,10 +111,10 @@ import { Callout } from 'fumadocs-ui/components/callout';

Adam Jatowt

-

+

Associate Professor at the Department of Computer Science, University of Innsbruck. Ph.D. in Information Science and Technology from the University of Tokyo, Japan (2005). -

+
@@ -133,7 +133,7 @@ import { Callout } from 'fumadocs-ui/components/callout';

Back to top

-

+

Copyright ©2018-{new Date().getFullYear()} INESC TEC. Distributed by an INESCTEC license. -

+
\ No newline at end of file diff --git a/docs-site/lib/source.ts b/docs-site/lib/source.ts index 9871c2fc..68ed29d3 100644 --- a/docs-site/lib/source.ts +++ b/docs-site/lib/source.ts @@ -1,11 +1,14 @@ -import { docs } from '@/.source'; +import { docs } from 'fumadocs-mdx:collections/server'; import { loader } from 'fumadocs-core/source'; -import { createMDXSource } from 'fumadocs-mdx'; -import { meta } from '@/.source'; +import { icons } from 'lucide-react'; +import { createElement } from 'react'; -// See https://fumadocs.vercel.app/docs/headless/source-api for more info +// See https://www.fumadocs.dev/docs/headless/source-api for more info export const source = loader({ - // it assigns a URL to your pages + source: docs.toFumadocsSource(), baseUrl: '/docs', - source: createMDXSource(docs, meta), + icon(icon) { + if (!icon) return; + if (icon in icons) return createElement(icons[icon as keyof typeof icons]); + }, }); diff --git a/docs-site/package-lock.json b/docs-site/package-lock.json index 502a5c55..53861d90 100644 --- a/docs-site/package-lock.json +++ b/docs-site/package-lock.json @@ -9,33 +9,33 @@ "version": "0.0.0", "hasInstallScript": true, "dependencies": { - "@radix-ui/react-accordion": "^1.2.8", + "@radix-ui/react-accordion": "^1.2.12", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "fumadocs-core": "15.2.9", - "fumadocs-mdx": "11.6.1", - "fumadocs-ui": "^15.2.9", - "lucide-react": "^0.503.0", - "next": "15.3.1", - "nextra": "^1.1.0", - "react": "^19.1.0", - "react-dom": "^19.1.0", - "tailwind-merge": "^3.2.0", - "tw-animate-css": "^1.2.8" + "fumadocs-core": "^16.5.2", + "fumadocs-mdx": "^14.2.7", + "fumadocs-ui": "^16.5.2", + "lucide-react": "^0.563.0", + "next": "^16.1.6", + "nextra": "^4.6.1", + "react": "^19.2.4", + "react-dom": "^19.2.4", + "tailwind-merge": "^3.4.0", + "tw-animate-css": "^1.4.0" }, "devDependencies": { - "@tailwindcss/postcss": "^4.1.4", + "@tailwindcss/postcss": "^4.1.18", "@types/mdx": "^2.0.13", - "@types/node": "22.14.1", - "@types/react": "^19.1.2", - "@types/react-dom": "^19.1.2", - "eslint": "^8", - "eslint-config-next": "15.3.1", - "glob": "^8.1.0", + "@types/node": "^24.10.12", + "@types/react": "^19.2.13", + "@types/react-dom": "^19.2.3", + "eslint": "^8.57.1", + "eslint-config-next": "^15.5.12", + "glob": "^13.0.1", "gray-matter": "^4.0.3", - "postcss": "^8.5.3", - "tailwindcss": "^4.1.4", - "typescript": "^5.8.3" + "postcss": "^8.5.6", + "tailwindcss": "^4.1.18", + "typescript": "^5.9.3" } }, "node_modules/@alloc/quick-lru": { @@ -43,6 +43,7 @@ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -50,43 +51,117 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@antfu/install-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", + "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", + "license": "MIT", + "dependencies": { + "package-manager-detector": "^1.3.0", + "tinyexec": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@braintree/sanitize-url": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.2.tgz", + "integrity": "sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==", + "license": "MIT" + }, + "node_modules/@chevrotain/cst-dts-gen": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz", + "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==", + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/gast": "11.0.3", + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/cst-dts-gen/node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, + "node_modules/@chevrotain/gast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz", + "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==", + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/gast/node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, + "node_modules/@chevrotain/regexp-to-ast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz", + "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==", + "license": "Apache-2.0" + }, + "node_modules/@chevrotain/types": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz", + "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==", + "license": "Apache-2.0" + }, + "node_modules/@chevrotain/utils": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz", + "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==", + "license": "Apache-2.0" + }, "node_modules/@emnapi/core": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz", - "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz", + "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.0.2", + "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", - "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", + "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", + "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz", - "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz", - "integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", + "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", "cpu": [ "ppc64" ], + "license": "MIT", "optional": true, "os": [ "aix" @@ -96,12 +171,13 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.3.tgz", - "integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", + "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", "cpu": [ "arm" ], + "license": "MIT", "optional": true, "os": [ "android" @@ -111,12 +187,13 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz", - "integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", + "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "android" @@ -126,12 +203,13 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.3.tgz", - "integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", + "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "android" @@ -141,12 +219,13 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz", - "integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", + "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -156,12 +235,13 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz", - "integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", + "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -171,12 +251,13 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz", - "integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", + "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -186,12 +267,13 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz", - "integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", + "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -201,12 +283,13 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz", - "integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", + "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", "cpu": [ "arm" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -216,12 +299,13 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz", - "integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", + "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -231,12 +315,13 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz", - "integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", + "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", "cpu": [ "ia32" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -246,12 +331,13 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz", - "integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", + "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", "cpu": [ "loong64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -261,12 +347,13 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz", - "integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", + "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", "cpu": [ "mips64el" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -276,12 +363,13 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz", - "integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", + "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", "cpu": [ "ppc64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -291,12 +379,13 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz", - "integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", + "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", "cpu": [ "riscv64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -306,12 +395,13 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz", - "integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", + "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", "cpu": [ "s390x" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -321,12 +411,13 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz", - "integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", + "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -336,12 +427,13 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz", - "integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", + "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "netbsd" @@ -351,12 +443,13 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz", - "integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", + "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "netbsd" @@ -366,12 +459,13 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz", - "integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", + "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "openbsd" @@ -381,12 +475,13 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz", - "integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", + "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "openbsd" @@ -395,13 +490,30 @@ "node": ">=18" } }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", + "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz", - "integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", + "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "sunos" @@ -411,12 +523,13 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz", - "integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", + "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -426,12 +539,13 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz", - "integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", + "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", "cpu": [ "ia32" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -441,12 +555,13 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz", - "integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", + "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -456,10 +571,11 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz", - "integrity": "sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.4.3" }, @@ -474,10 +590,11 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -487,6 +604,7 @@ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -510,33 +628,52 @@ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@floating-ui/core": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", - "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.4.tgz", + "integrity": "sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==", + "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.9" + "@floating-ui/utils": "^0.2.10" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.13", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", - "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.5.tgz", + "integrity": "sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.4", + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/react": { + "version": "0.26.28", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz", + "integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==", + "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.9" + "@floating-ui/react-dom": "^2.1.2", + "@floating-ui/utils": "^0.2.8", + "tabbable": "^6.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" } }, "node_modules/@floating-ui/react-dom": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", - "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.7.tgz", + "integrity": "sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==", + "license": "MIT", "dependencies": { - "@floating-ui/dom": "^1.0.0" + "@floating-ui/dom": "^1.7.5" }, "peerDependencies": { "react": ">=16.8.0", @@ -544,16 +681,65 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", - "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==" + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "license": "MIT" + }, + "node_modules/@formatjs/fast-memoize": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-3.1.0.tgz", + "integrity": "sha512-b5mvSWCI+XVKiz5WhnBCY3RJ4ZwfjAidU0yVlKa3d3MSgKmH1hC3tBGEAtYyN5mqL7N0G5x0BOUYyO8CEupWgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } }, "node_modules/@formatjs/intl-localematcher": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.1.tgz", - "integrity": "sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.8.1.tgz", + "integrity": "sha512-xwEuwQFdtSq1UKtQnyTZWC+eHdv7Uygoa+H2k/9uzBVQjDyp9r20LNDNKedWXll7FssT3GRHvqsdJGYSUWqYFA==", + "license": "MIT", "dependencies": { - "tslib": "^2.8.0" + "@formatjs/fast-memoize": "3.1.0", + "tslib": "^2.8.1" + } + }, + "node_modules/@fumadocs/tailwind": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@fumadocs/tailwind/-/tailwind-0.0.2.tgz", + "integrity": "sha512-4JrTJLRDKKdFF3gy07rAsakqGr17/0cJE042B1icCmMRrPA4a38cjR1qd4EqUiDJ+fzM0wgVN9QYiqds3HB2rg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.1.1" + }, + "peerDependencies": { + "tailwindcss": "^4.0.0" + }, + "peerDependenciesMeta": { + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@headlessui/react": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.2.9.tgz", + "integrity": "sha512-Mb+Un58gwBn0/yWZfyrCh0TJyurtT+dETj7YHleylHk5od3dv2XqETPGWMyQ5/7sYN7oWdyM1u9MvC0OC8UmzQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/react": "^0.26.16", + "@react-aria/focus": "^3.20.2", + "@react-aria/interactions": "^3.25.0", + "@tanstack/react-virtual": "^3.13.9", + "use-sync-external-store": "^1.5.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^18 || ^19 || ^19.0.0-rc", + "react-dom": "^18 || ^19 || ^19.0.0-rc" } }, "node_modules/@humanwhocodes/config-array": { @@ -562,6 +748,7 @@ "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", "deprecated": "Use @eslint/config-array instead", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^2.0.3", "debug": "^4.3.1", @@ -576,6 +763,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -589,15 +777,44 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "deprecated": "Use @eslint/object-schema instead", - "dev": true + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "license": "MIT" + }, + "node_modules/@iconify/utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.1.0.tgz", + "integrity": "sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==", + "license": "MIT", + "dependencies": { + "@antfu/install-pkg": "^1.1.0", + "@iconify/types": "^2.0.0", + "mlly": "^1.8.0" + } + }, + "node_modules/@img/colour": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", + "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" + } }, "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.1.tgz", - "integrity": "sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", "cpu": [ "arm64" ], + "license": "Apache-2.0", "optional": true, "os": [ "darwin" @@ -609,16 +826,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.1.0" + "@img/sharp-libvips-darwin-arm64": "1.2.4" } }, "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.1.tgz", - "integrity": "sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", "cpu": [ "x64" ], + "license": "Apache-2.0", "optional": true, "os": [ "darwin" @@ -630,16 +848,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.1.0" + "@img/sharp-libvips-darwin-x64": "1.2.4" } }, "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz", - "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", "cpu": [ "arm64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "darwin" @@ -649,12 +868,13 @@ } }, "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz", - "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", "cpu": [ "x64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "darwin" @@ -664,12 +884,13 @@ } }, "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz", - "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", "cpu": [ "arm" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -679,12 +900,13 @@ } }, "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz", - "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", "cpu": [ "arm64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -694,12 +916,29 @@ } }, "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz", - "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", "cpu": [ "ppc64" ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -709,12 +948,13 @@ } }, "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz", - "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", "cpu": [ "s390x" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -724,12 +964,13 @@ } }, "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz", - "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", "cpu": [ "x64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -739,12 +980,13 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz", - "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", "cpu": [ "arm64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -754,12 +996,13 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz", - "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", "cpu": [ "x64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -769,12 +1012,13 @@ } }, "node_modules/@img/sharp-linux-arm": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.1.tgz", - "integrity": "sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", "cpu": [ "arm" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -786,16 +1030,61 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.1.0" + "@img/sharp-libvips-linux-arm": "1.2.4" } }, "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.1.tgz", - "integrity": "sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", "cpu": [ "arm64" ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -807,16 +1096,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.1.0" + "@img/sharp-libvips-linux-riscv64": "1.2.4" } }, "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.1.tgz", - "integrity": "sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", "cpu": [ "s390x" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -828,16 +1118,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.1.0" + "@img/sharp-libvips-linux-s390x": "1.2.4" } }, "node_modules/@img/sharp-linux-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.1.tgz", - "integrity": "sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", "cpu": [ "x64" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -849,16 +1140,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.1.0" + "@img/sharp-libvips-linux-x64": "1.2.4" } }, "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.1.tgz", - "integrity": "sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", "cpu": [ "arm64" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -870,16 +1162,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.1.0" + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" } }, "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.1.tgz", - "integrity": "sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", "cpu": [ "x64" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -891,20 +1184,40 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.1.0" + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" } }, "node_modules/@img/sharp-wasm32": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.1.tgz", - "integrity": "sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", "cpu": [ "wasm32" ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { - "@emnapi/runtime": "^1.4.0" + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, @@ -913,12 +1226,13 @@ } }, "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.1.tgz", - "integrity": "sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", "cpu": [ "ia32" ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" @@ -931,12 +1245,13 @@ } }, "node_modules/@img/sharp-win32-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.1.tgz", - "integrity": "sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", "cpu": [ "x64" ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" @@ -948,1227 +1263,442 @@ "url": "https://opencollective.com/libvips" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "peer": true, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz", + "integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==", + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "@isaacs/balanced-match": "^4.0.1" }, "engines": { - "node": ">=6.0.0" + "node": "20 || >=22" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "peer": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "peer": true, + "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "peer": true + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "peer": true, + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@mdx-js/loader": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-2.3.0.tgz", - "integrity": "sha512-IqsscXh7Q3Rzb+f5DXYk0HU71PK+WuFsEhf+mSV3fOhpLcEpgsHvTQ2h0T6TlZ5gHOaBeFjkXwB52by7ypMyNg==", - "dependencies": { - "@mdx-js/mdx": "^2.0.0", - "source-map": "^0.7.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "webpack": ">=4" - } - }, - "node_modules/@mdx-js/loader/node_modules/@mdx-js/mdx": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-2.3.0.tgz", - "integrity": "sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==", + "node_modules/@mdx-js/mdx": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.1.tgz", + "integrity": "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==", + "license": "MIT", "dependencies": { + "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", "@types/mdx": "^2.0.0", - "estree-util-build-jsx": "^2.0.0", - "estree-util-is-identifier-name": "^2.0.0", - "estree-util-to-js": "^1.1.0", + "acorn": "^8.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", - "hast-util-to-estree": "^2.0.0", - "markdown-extensions": "^1.0.0", - "periscopic": "^3.0.0", - "remark-mdx": "^2.0.0", - "remark-parse": "^10.0.0", - "remark-rehype": "^10.0.0", - "unified": "^10.0.0", - "unist-util-position-from-estree": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "unist-util-visit": "^4.0.0", - "vfile": "^5.0.0" + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.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" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/@mdx-js/loader/node_modules/@types/hast": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", - "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", + "node_modules/@mermaid-js/parser": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.6.3.tgz", + "integrity": "sha512-lnjOhe7zyHjc+If7yT4zoedx2vo4sHaTmtkl1+or8BRTnCtDmcTpAjpzDSfCZrshM5bCoz0GyidzadJAH1xobA==", + "license": "MIT", "dependencies": { - "@types/unist": "^2" + "langium": "3.3.1" } }, - "node_modules/@mdx-js/loader/node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", - "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/@mdx-js/loader/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" - }, - "node_modules/@mdx-js/loader/node_modules/estree-util-attach-comments": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-2.1.1.tgz", - "integrity": "sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==", - "dependencies": { - "@types/estree": "^1.0.0" + "node_modules/@napi-rs/simple-git": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git/-/simple-git-0.1.22.tgz", + "integrity": "sha512-bMVoAKhpjTOPHkW/lprDPwv5aD4R4C3Irt8vn+SKA9wudLe9COLxOhurrKRsxmZccUbWXRF7vukNeGUAj5P8kA==", + "license": "MIT", + "engines": { + "node": ">= 10" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "optionalDependencies": { + "@napi-rs/simple-git-android-arm-eabi": "0.1.22", + "@napi-rs/simple-git-android-arm64": "0.1.22", + "@napi-rs/simple-git-darwin-arm64": "0.1.22", + "@napi-rs/simple-git-darwin-x64": "0.1.22", + "@napi-rs/simple-git-freebsd-x64": "0.1.22", + "@napi-rs/simple-git-linux-arm-gnueabihf": "0.1.22", + "@napi-rs/simple-git-linux-arm64-gnu": "0.1.22", + "@napi-rs/simple-git-linux-arm64-musl": "0.1.22", + "@napi-rs/simple-git-linux-ppc64-gnu": "0.1.22", + "@napi-rs/simple-git-linux-s390x-gnu": "0.1.22", + "@napi-rs/simple-git-linux-x64-gnu": "0.1.22", + "@napi-rs/simple-git-linux-x64-musl": "0.1.22", + "@napi-rs/simple-git-win32-arm64-msvc": "0.1.22", + "@napi-rs/simple-git-win32-ia32-msvc": "0.1.22", + "@napi-rs/simple-git-win32-x64-msvc": "0.1.22" + } + }, + "node_modules/@napi-rs/simple-git-android-arm-eabi": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm-eabi/-/simple-git-android-arm-eabi-0.1.22.tgz", + "integrity": "sha512-JQZdnDNm8o43A5GOzwN/0Tz3CDBQtBUNqzVwEopm32uayjdjxev1Csp1JeaqF3v9djLDIvsSE39ecsN2LhCKKQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@mdx-js/loader/node_modules/estree-util-build-jsx": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-2.2.2.tgz", - "integrity": "sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "estree-util-is-identifier-name": "^2.0.0", - "estree-walker": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/@napi-rs/simple-git-android-arm64": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm64/-/simple-git-android-arm64-0.1.22.tgz", + "integrity": "sha512-46OZ0SkhnvM+fapWjzg/eqbJvClxynUpWYyYBn4jAj7GQs1/Yyc8431spzDmkA8mL0M7Xo8SmbkzTDE7WwYAfg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@mdx-js/loader/node_modules/estree-util-is-identifier-name": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz", - "integrity": "sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/@napi-rs/simple-git-darwin-arm64": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-arm64/-/simple-git-darwin-arm64-0.1.22.tgz", + "integrity": "sha512-zH3h0C8Mkn9//MajPI6kHnttywjsBmZ37fhLX/Fiw5XKu84eHA6dRyVtMzoZxj6s+bjNTgaMgMUucxPn9ktxTQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@mdx-js/loader/node_modules/estree-util-to-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-1.2.0.tgz", - "integrity": "sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "astring": "^1.8.0", - "source-map": "^0.7.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/@napi-rs/simple-git-darwin-x64": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-x64/-/simple-git-darwin-x64-0.1.22.tgz", + "integrity": "sha512-GZN7lRAkGKB6PJxWsoyeYJhh85oOOjVNyl+/uipNX8bR+mFDCqRsCE3rRCFGV9WrZUHXkcuRL2laIRn7lLi3ag==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@mdx-js/loader/node_modules/estree-util-visit": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-1.2.1.tgz", - "integrity": "sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/@napi-rs/simple-git-freebsd-x64": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-freebsd-x64/-/simple-git-freebsd-x64-0.1.22.tgz", + "integrity": "sha512-xyqX1C5I0WBrUgZONxHjZH5a4LqQ9oki3SKFAVpercVYAcx3pq6BkZy1YUOP4qx78WxU1CCNfHBN7V+XO7D99A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@mdx-js/loader/node_modules/hast-util-to-estree": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-2.3.3.tgz", - "integrity": "sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^2.0.0", - "@types/unist": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "estree-util-attach-comments": "^2.0.0", - "estree-util-is-identifier-name": "^2.0.0", - "hast-util-whitespace": "^2.0.0", - "mdast-util-mdx-expression": "^1.0.0", - "mdast-util-mdxjs-esm": "^1.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.4.1", - "unist-util-position": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/@napi-rs/simple-git-linux-arm-gnueabihf": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm-gnueabihf/-/simple-git-linux-arm-gnueabihf-0.1.22.tgz", + "integrity": "sha512-4LOtbp9ll93B9fxRvXiUJd1/RM3uafMJE7dGBZGKWBMGM76+BAcCEUv2BY85EfsU/IgopXI6n09TycRfPWOjxA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@mdx-js/loader/node_modules/hast-util-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", - "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/@napi-rs/simple-git-linux-arm64-gnu": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-gnu/-/simple-git-linux-arm64-gnu-0.1.22.tgz", + "integrity": "sha512-GVOjP/JjCzbQ0kSqao7ctC/1sodVtv5VF57rW9BFpo2y6tEYPCqHnkQkTpieuwMNe+TVOhBUC1+wH0d9/knIHg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@mdx-js/loader/node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + "node_modules/@napi-rs/simple-git-linux-arm64-musl": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-musl/-/simple-git-linux-arm64-musl-0.1.22.tgz", + "integrity": "sha512-MOs7fPyJiU/wqOpKzAOmOpxJ/TZfP4JwmvPad/cXTOWYwwyppMlXFRms3i98EU3HOazI/wMU2Ksfda3+TBluWA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } }, - "node_modules/@mdx-js/loader/node_modules/markdown-extensions": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-1.1.1.tgz", - "integrity": "sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==", + "node_modules/@napi-rs/simple-git-linux-ppc64-gnu": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-ppc64-gnu/-/simple-git-linux-ppc64-gnu-0.1.22.tgz", + "integrity": "sha512-L59dR30VBShRUIZ5/cQHU25upNgKS0AMQ7537J6LCIUEFwwXrKORZKJ8ceR+s3Sr/4jempWVvMdjEpFDE4HYww==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.10.0" + "node": ">= 10" } }, - "node_modules/@mdx-js/loader/node_modules/mdast-util-from-markdown": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", - "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" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/@napi-rs/simple-git-linux-s390x-gnu": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-s390x-gnu/-/simple-git-linux-s390x-gnu-0.1.22.tgz", + "integrity": "sha512-4FHkPlCSIZUGC6HiADffbe6NVoTBMd65pIwcd40IDbtFKOgFMBA+pWRqKiQ21FERGH16Zed7XHJJoY3jpOqtmQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@mdx-js/loader/node_modules/mdast-util-mdx": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-2.0.1.tgz", - "integrity": "sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==", - "dependencies": { - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-mdx-expression": "^1.0.0", - "mdast-util-mdx-jsx": "^2.0.0", - "mdast-util-mdxjs-esm": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/@napi-rs/simple-git-linux-x64-gnu": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-gnu/-/simple-git-linux-x64-gnu-0.1.22.tgz", + "integrity": "sha512-Ei1tM5Ho/dwknF3pOzqkNW9Iv8oFzRxE8uOhrITcdlpxRxVrBVptUF6/0WPdvd7R9747D/q61QG/AVyWsWLFKw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@mdx-js/loader/node_modules/mdast-util-mdx-expression": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz", - "integrity": "sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/@napi-rs/simple-git-linux-x64-musl": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-musl/-/simple-git-linux-x64-musl-0.1.22.tgz", + "integrity": "sha512-zRYxg7it0p3rLyEJYoCoL2PQJNgArVLyNavHW03TFUAYkYi5bxQ/UFNVpgxMaXohr5yu7qCBqeo9j4DWeysalg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@mdx-js/loader/node_modules/mdast-util-mdx-jsx": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.4.tgz", - "integrity": "sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "ccount": "^2.0.0", - "mdast-util-from-markdown": "^1.1.0", - "mdast-util-to-markdown": "^1.3.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-remove-position": "^4.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/@napi-rs/simple-git-win32-arm64-msvc": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-arm64-msvc/-/simple-git-win32-arm64-msvc-0.1.22.tgz", + "integrity": "sha512-XGFR1fj+Y9cWACcovV2Ey/R2xQOZKs8t+7KHPerYdJ4PtjVzGznI4c2EBHXtdOIYvkw7tL5rZ7FN1HJKdD5Quw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@mdx-js/loader/node_modules/mdast-util-mdxjs-esm": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.1.tgz", - "integrity": "sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/@napi-rs/simple-git-win32-ia32-msvc": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-ia32-msvc/-/simple-git-win32-ia32-msvc-0.1.22.tgz", + "integrity": "sha512-Gqr9Y0gs6hcNBA1IXBpoqTFnnIoHuZGhrYqaZzEvGMLrTrpbXrXVEtX3DAAD2RLc1b87CPcJ49a7sre3PU3Rfw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@mdx-js/loader/node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/@napi-rs/simple-git-win32-x64-msvc": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-x64-msvc/-/simple-git-win32-x64-msvc-0.1.22.tgz", + "integrity": "sha512-hQjcreHmUcpw4UrtkOron1/TQObfe484lxiXFLLUj7aWnnnOVs1mnXq5/Bo9+3NYZldFpFRJPdPBeHCisXkKJg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@mdx-js/loader/node_modules/mdast-util-to-hast": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz", - "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==", + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-definitions": "^5.0.0", - "micromark-util-sanitize-uri": "^1.1.0", - "trim-lines": "^3.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" } }, - "node_modules/@mdx-js/loader/node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", + "node_modules/@next/env": { + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.1.6.tgz", + "integrity": "sha512-N1ySLuZjnAtN3kFnwhAwPvZah8RJxKasD7x1f8shFqhncnWZn4JMfg37diLNuoHsLAlrDfM3g4mawVdtAG8XLQ==", + "license": "MIT" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "15.5.12", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.5.12.tgz", + "integrity": "sha512-+ZRSDFTv4aC96aMb5E41rMjysx8ApkryevnvEYZvPZO52KvkqP5rNExLUXJFr9P4s0f3oqNQR6vopCZsPWKDcQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "fast-glob": "3.3.1" } }, - "node_modules/@mdx-js/loader/node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", - "dependencies": { - "@types/mdast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", - "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-core-commonmark": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", - "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-extension-mdx-expression": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-1.0.8.tgz", - "integrity": "sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "@types/estree": "^1.0.0", - "micromark-factory-mdx-expression": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-events-to-acorn": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-extension-mdx-jsx": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-1.0.5.tgz", - "integrity": "sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==", - "dependencies": { - "@types/acorn": "^4.0.0", - "@types/estree": "^1.0.0", - "estree-util-is-identifier-name": "^2.0.0", - "micromark-factory-mdx-expression": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-extension-mdx-md": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-1.0.1.tgz", - "integrity": "sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA==", - "dependencies": { - "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-extension-mdxjs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-1.0.1.tgz", - "integrity": "sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q==", - "dependencies": { - "acorn": "^8.0.0", - "acorn-jsx": "^5.0.0", - "micromark-extension-mdx-expression": "^1.0.0", - "micromark-extension-mdx-jsx": "^1.0.0", - "micromark-extension-mdx-md": "^1.0.0", - "micromark-extension-mdxjs-esm": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-extension-mdxjs-esm": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-1.0.5.tgz", - "integrity": "sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==", - "dependencies": { - "@types/estree": "^1.0.0", - "micromark-core-commonmark": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-events-to-acorn": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-position-from-estree": "^1.1.0", - "uvu": "^0.5.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-factory-destination": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", - "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-factory-label": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", - "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-factory-mdx-expression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-1.0.9.tgz", - "integrity": "sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "@types/estree": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-events-to-acorn": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-position-from-estree": "^1.0.0", - "uvu": "^0.5.0", - "vfile-message": "^3.0.0" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-factory-space": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", - "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-factory-title": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", - "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-factory-whitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", - "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-util-character": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", - "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-util-chunked": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", - "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-util-classify-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", - "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-util-combine-extensions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", - "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", - "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-util-decode-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", - "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-util-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", - "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/@mdx-js/loader/node_modules/micromark-util-events-to-acorn": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-1.2.3.tgz", - "integrity": "sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "@types/acorn": "^4.0.0", - "@types/estree": "^1.0.0", - "@types/unist": "^2.0.0", - "estree-util-visit": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0", - "vfile-message": "^3.0.0" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-util-html-tag-name": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", - "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/@mdx-js/loader/node_modules/micromark-util-normalize-identifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", - "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-util-resolve-all": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", - "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-util-sanitize-uri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", - "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-util-subtokenize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", - "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/@mdx-js/loader/node_modules/micromark-util-symbol": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", - "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/@mdx-js/loader/node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/@mdx-js/loader/node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/@mdx-js/loader/node_modules/remark-mdx": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-2.3.0.tgz", - "integrity": "sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==", - "dependencies": { - "mdast-util-mdx": "^2.0.0", - "micromark-extension-mdxjs": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/loader/node_modules/remark-parse": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz", - "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/loader/node_modules/remark-rehype": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", - "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-to-hast": "^12.1.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/loader/node_modules/style-to-object": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", - "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", - "dependencies": { - "inline-style-parser": "0.1.1" - } - }, - "node_modules/@mdx-js/loader/node_modules/unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/loader/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/loader/node_modules/unist-util-position": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", - "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/loader/node_modules/unist-util-position-from-estree": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-1.1.2.tgz", - "integrity": "sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/loader/node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/loader/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/loader/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/loader/node_modules/vfile": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", - "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/loader/node_modules/vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", - "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", - "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-is-identifier-name": "^3.0.0", - "estree-util-scope": "^1.0.0", - "estree-walker": "^3.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "markdown-extensions": "^2.0.0", - "recma-build-jsx": "^1.0.0", - "recma-jsx": "^1.0.0", - "recma-stringify": "^1.0.0", - "rehype-recma": "^1.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" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.9.tgz", - "integrity": "sha512-OKRBiajrrxB9ATokgEQoG87Z25c67pCpYcCwmXYX8PBftC9pBfN18gnm/fh1wurSLEKIAt+QRFLFCQISrb66Jg==", - "dev": true, - "optional": true, - "dependencies": { - "@emnapi/core": "^1.4.0", - "@emnapi/runtime": "^1.4.0", - "@tybys/wasm-util": "^0.9.0" - } - }, - "node_modules/@next/env": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.1.tgz", - "integrity": "sha512-cwK27QdzrMblHSn9DZRV+DQscHXRuJv6MydlJRpFSqJWZrTYMLzKDeyueJNN9MGd8NNiUKzDQADAf+dMLXX7YQ==" - }, - "node_modules/@next/eslint-plugin-next": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.3.1.tgz", - "integrity": "sha512-oEs4dsfM6iyER3jTzMm4kDSbrQJq8wZw5fmT6fg2V3SMo+kgG+cShzLfEV20senZzv8VF+puNLheiGPlBGsv2A==", - "dev": true, - "dependencies": { - "fast-glob": "3.3.1" - } - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.1.tgz", - "integrity": "sha512-hjDw4f4/nla+6wysBL07z52Gs55Gttp5Bsk5/8AncQLJoisvTBP0pRIBK/B16/KqQyH+uN4Ww8KkcAqJODYH3w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" + "node_modules/@next/swc-darwin-arm64": { + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.1.6.tgz", + "integrity": "sha512-wTzYulosJr/6nFnqGW7FrG3jfUUlEf8UjGA0/pyypJl42ExdVgC6xJgcXQ+V8QFn6niSG2Pb8+MIG1mZr2vczw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.1.tgz", - "integrity": "sha512-q+aw+cJ2ooVYdCEqZVk+T4Ni10jF6Fo5DfpEV51OupMaV5XL6pf3GCzrk6kSSZBsMKZtVC1Zm/xaNBFpA6bJ2g==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.1.6.tgz", + "integrity": "sha512-BLFPYPDO+MNJsiDWbeVzqvYd4NyuRrEYVB5k2N3JfWncuHAy2IVwMAOlVQDFjj+krkWzhY2apvmekMkfQR0CUQ==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -2178,12 +1708,13 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.1.tgz", - "integrity": "sha512-wBQ+jGUI3N0QZyWmmvRHjXjTWFy8o+zPFLSOyAyGFI94oJi+kK/LIZFJXeykvgXUk1NLDAEFDZw/NVINhdk9FQ==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.1.6.tgz", + "integrity": "sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -2193,12 +1724,13 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.1.tgz", - "integrity": "sha512-IIxXEXRti/AulO9lWRHiCpUUR8AR/ZYLPALgiIg/9ENzMzLn3l0NSxVdva7R/VDcuSEBo0eGVCe3evSIHNz0Hg==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.1.6.tgz", + "integrity": "sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -2208,12 +1740,13 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.1.tgz", - "integrity": "sha512-bfI4AMhySJbyXQIKH5rmLJ5/BP7bPwuxauTvVEiJ/ADoddaA9fgyNNCcsbu9SlqfHDoZmfI6g2EjzLwbsVTr5A==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.1.6.tgz", + "integrity": "sha512-2eEBDkFlMMNQnkTyPBhQOAyn2qMxyG2eE7GPH2WIDGEpEILcBPI/jdSv4t6xupSP+ot/jkfrCShLAa7+ZUPcJQ==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -2223,12 +1756,13 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.1.tgz", - "integrity": "sha512-FeAbR7FYMWR+Z+M5iSGytVryKHiAsc0x3Nc3J+FD5NVbD5Mqz7fTSy8CYliXinn7T26nDMbpExRUI/4ekTvoiA==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.1.6.tgz", + "integrity": "sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -2238,12 +1772,13 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.1.tgz", - "integrity": "sha512-yP7FueWjphQEPpJQ2oKmshk/ppOt+0/bB8JC8svPUZNy0Pi3KbPx2Llkzv1p8CoQa+D2wknINlJpHf3vtChVBw==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.1.6.tgz", + "integrity": "sha512-gQmm8izDTPgs+DCWH22kcDmuUp7NyiJgEl18bcr8irXA5N2m2O+JQIr6f3ct42GOs9c0h8QF3L5SzIxcYAAXXw==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -2253,12 +1788,13 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.1.tgz", - "integrity": "sha512-3PMvF2zRJAifcRNni9uMk/gulWfWS+qVI/pagd+4yLF5bcXPZPPH2xlYRYOsUjmCJOXSTAC2PjRzbhsRzR2fDQ==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.1.6.tgz", + "integrity": "sha512-NRfO39AIrzBnixKbjuo2YiYhB6o9d8v/ymU9m/Xk8cyVk+k7XylniXkHwjs4s70wedVffc6bQNbufk5v0xEm0A==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -2271,6 +1807,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2283,6 +1820,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", "engines": { "node": ">= 8" } @@ -2291,6 +1829,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2304,41 +1843,46 @@ "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.4.0" } }, "node_modules/@orama/orama": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@orama/orama/-/orama-3.1.6.tgz", - "integrity": "sha512-qtSrqCqRU93SjEBedz987tvWao1YQSELjBhGkHYGVP7Dg0lBWP6d+uZEIt5gxTAYio/YWWlhivmRABvRfPLmnQ==", + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/@orama/orama/-/orama-3.1.18.tgz", + "integrity": "sha512-a61ljmRVVyG5MC/698C8/FfFDw5a8LOIvyOLW5fztgUXqUpc1jOfQzOitSCbge657OgXXThmY3Tk8fpiDb4UcA==", + "license": "Apache-2.0", "engines": { - "node": ">= 16.0.0" + "node": ">= 20.0.0" } }, "node_modules/@radix-ui/number": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", - "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==" + "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", + "license": "MIT" }, "node_modules/@radix-ui/primitive": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz", - "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "license": "MIT" }, "node_modules/@radix-ui/react-accordion": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.8.tgz", - "integrity": "sha512-c7OKBvO36PfQIUGIjj1Wko0hH937pYFU2tR5zbIJDUsmTzHoZVHHt4bmb7OOJbzTaWJtVELKWojBHa7OcnUHmQ==", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-collapsible": "1.1.8", - "@radix-ui/react-collection": "1.1.4", + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.12.tgz", + "integrity": "sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collapsible": "1.1.12", + "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { @@ -2357,11 +1901,12 @@ } }, "node_modules/@radix-ui/react-arrow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.4.tgz", - "integrity": "sha512-qz+fxrqgNxG0dYew5l7qR3c7wdgRu1XVUHGnGYX7rg5HM4p9SWaRmJwfgR3J0SgyUKayLmzQIun+N6rWRgiRKw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", + "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", + "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.0" + "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", @@ -2379,16 +1924,17 @@ } }, "node_modules/@radix-ui/react-collapsible": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.8.tgz", - "integrity": "sha512-hxEsLvK9WxIAPyxdDRULL4hcaSjMZCfP7fHB0Z1uUnDoDBat1Zh46hwYfa69DeZAbJrPckjf0AGAtEZyvDyJbw==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.12.tgz", + "integrity": "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==", + "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.2", + "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, @@ -2408,14 +1954,15 @@ } }, "node_modules/@radix-ui/react-collection": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.4.tgz", - "integrity": "sha512-cv4vSf7HttqXilDnAnvINd53OTl1/bjUYVZrkFnA7nwmY9Ob2POUy0WY0sfqBAe1s5FyKsyceQlqiEGPYNTadg==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", + "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.0", - "@radix-ui/react-slot": "1.2.0" + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", @@ -2436,6 +1983,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -2450,6 +1998,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "license": "MIT", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -2461,21 +2010,22 @@ } }, "node_modules/@radix-ui/react-dialog": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.11.tgz", - "integrity": "sha512-yI7S1ipkP5/+99qhSI6nthfo/tR6bL6Zgxi/+1UO6qPa6UeM6nlafWcQ65vB4rU2XjgjMfMhI3k9Y5MztA62VQ==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", + "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==", + "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.2", + "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.7", - "@radix-ui/react-focus-guards": "1.1.2", - "@radix-ui/react-focus-scope": "1.1.4", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-portal": "1.1.6", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.0", - "@radix-ui/react-slot": "1.2.0", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" @@ -2499,6 +2049,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "license": "MIT", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -2510,13 +2061,14 @@ } }, "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.7.tgz", - "integrity": "sha512-j5+WBUdhccJsmH5/H0K6RncjDtoALSEr6jbkaZu+bjw6hOPOhHycr6vEUujl+HBK8kjUfWcoCJXxP6e4lUlMZw==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", + "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", + "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.2", + "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-escape-keydown": "1.1.1" }, @@ -2536,9 +2088,10 @@ } }, "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.2.tgz", - "integrity": "sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", + "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", + "license": "MIT", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -2550,12 +2103,13 @@ } }, "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.4.tgz", - "integrity": "sha512-r2annK27lIW5w9Ho5NyQgqs0MmgZSTIKXWpVCJaLC1q2kZrZkcqnmHkCHMEmv8XLvsLlurKMPT+kbKkRkm/xVA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", + "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1" }, "peerDependencies": { @@ -2577,6 +2131,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "license": "MIT", "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, @@ -2591,24 +2146,25 @@ } }, "node_modules/@radix-ui/react-navigation-menu": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.10.tgz", - "integrity": "sha512-kGDqMVPj2SRB1vJmXN/jnhC66REAXNyDmDRubbbmJ+360zSIJUDmWGMKIJOf72PHMwPENrbtJVb3CMAUJDjEIA==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.14.tgz", + "integrity": "sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==", + "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-collection": "1.1.4", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.7", + "@radix-ui/react-dismissable-layer": "1.1.11", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-use-layout-effect": "1.1.1", "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-visually-hidden": "1.2.0" + "@radix-ui/react-visually-hidden": "1.2.3" }, "peerDependencies": { "@types/react": "*", @@ -2626,22 +2182,23 @@ } }, "node_modules/@radix-ui/react-popover": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.11.tgz", - "integrity": "sha512-yFMfZkVA5G3GJnBgb2PxrrcLKm1ZLWXrbYVgdyTl//0TYEIHS9LJbnyz7WWcZ0qCq7hIlJZpRtxeSeIG5T5oJw==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.15.tgz", + "integrity": "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==", + "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.2", + "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.7", - "@radix-ui/react-focus-guards": "1.1.2", - "@radix-ui/react-focus-scope": "1.1.4", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.4", - "@radix-ui/react-portal": "1.1.6", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.0", - "@radix-ui/react-slot": "1.2.0", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" @@ -2662,15 +2219,16 @@ } }, "node_modules/@radix-ui/react-popper": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.4.tgz", - "integrity": "sha512-3p2Rgm/a1cK0r/UVkx5F/K9v/EplfjAeIFCGOPYPO4lZ0jtg4iSQXt/YGTSLWaf4x7NG6Z4+uKFcylcTZjeqDA==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", + "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==", + "license": "MIT", "dependencies": { "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.4", + "@radix-ui/react-arrow": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-layout-effect": "1.1.1", "@radix-ui/react-use-rect": "1.1.1", @@ -2693,11 +2251,12 @@ } }, "node_modules/@radix-ui/react-portal": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.6.tgz", - "integrity": "sha512-XmsIl2z1n/TsYFLIdYam2rmFwf9OC/Sh2avkbmVMDuBZIe7hSpM0cYnWPAo7nHOVx8zTuwDZGByfcqLdnzp3Vw==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", + "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { @@ -2716,9 +2275,10 @@ } }, "node_modules/@radix-ui/react-presence": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.4.tgz", - "integrity": "sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-use-layout-effect": "1.1.1" @@ -2739,11 +2299,12 @@ } }, "node_modules/@radix-ui/react-primitive": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.0.tgz", - "integrity": "sha512-/J/FhLdK0zVcILOwt5g+dH4KnkonCtkVJsa2G6JmvbbtZfBEI1gMsO3QMjseL4F/SwfAMt1Vc/0XKYKq+xJ1sw==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", "dependencies": { - "@radix-ui/react-slot": "1.2.0" + "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", @@ -2761,17 +2322,18 @@ } }, "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.7.tgz", - "integrity": "sha512-C6oAg451/fQT3EGbWHbCQjYTtbyjNO1uzQgMzwyivcHT3GKNEmu1q3UuREhN+HzHAVtv3ivMVK08QlC+PkYw9Q==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", + "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", + "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-collection": "1.1.4", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-controllable-state": "1.2.2" }, @@ -2791,17 +2353,18 @@ } }, "node_modules/@radix-ui/react-scroll-area": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.6.tgz", - "integrity": "sha512-lj8OMlpPERXrQIHlEQdlXHJoRT52AMpBrgyPYylOhXYq5e/glsEdtOc/kCQlsTdtgN5U0iDbrrolDadvektJGQ==", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.10.tgz", + "integrity": "sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==", + "license": "MIT", "dependencies": { "@radix-ui/number": "1.1.1", - "@radix-ui/primitive": "1.1.2", + "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-layout-effect": "1.1.1" }, @@ -2821,9 +2384,10 @@ } }, "node_modules/@radix-ui/react-slot": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.0.tgz", - "integrity": "sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, @@ -2838,17 +2402,18 @@ } }, "node_modules/@radix-ui/react-tabs": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.9.tgz", - "integrity": "sha512-KIjtwciYvquiW/wAFkELZCVnaNLBsYNhTNcvl+zfMAbMhRkcvNuCLXDDd22L0j7tagpzVh/QwbFpwAATg7ILPw==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz", + "integrity": "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==", + "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.2", + "@radix-ui/primitive": "1.1.3", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.0", - "@radix-ui/react-roving-focus": "1.1.7", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { @@ -2870,6 +2435,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "license": "MIT", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -2884,6 +2450,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "license": "MIT", "dependencies": { "@radix-ui/react-use-effect-event": "0.0.2", "@radix-ui/react-use-layout-effect": "1.1.1" @@ -2902,6 +2469,7 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "license": "MIT", "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, @@ -2919,6 +2487,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", + "license": "MIT", "dependencies": { "@radix-ui/react-use-callback-ref": "1.1.1" }, @@ -2936,6 +2505,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -2950,6 +2520,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", + "license": "MIT", "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -2964,6 +2535,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", + "license": "MIT", "dependencies": { "@radix-ui/rect": "1.1.1" }, @@ -2981,6 +2553,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", + "license": "MIT", "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, @@ -2995,11 +2568,12 @@ } }, "node_modules/@radix-ui/react-visually-hidden": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.0.tgz", - "integrity": "sha512-rQj0aAWOpCdCMRbI6pLQm8r7S2BM3YhTa0SzOYD55k+hJA8oo9J+H+9wLM9oMlZWOX/wJWPTzfDfmZkf7LvCfg==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", + "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", + "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.0" + "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", @@ -3019,92 +2593,214 @@ "node_modules/@radix-ui/rect": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", - "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==" + "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", + "license": "MIT" + }, + "node_modules/@react-aria/focus": { + "version": "3.21.4", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.21.4.tgz", + "integrity": "sha512-6gz+j9ip0/vFRTKJMl3R30MHopn4i19HqqLfSQfElxJD+r9hBnYG1Q6Wd/kl/WRR1+CALn2F+rn06jUnf5sT8Q==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.27.0", + "@react-aria/utils": "^3.33.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/interactions": { + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.27.0.tgz", + "integrity": "sha512-D27pOy+0jIfHK60BB26AgqjjRFOYdvVSkwC31b2LicIzRCSPOSP06V4gMHuGmkhNTF4+YWDi1HHYjxIvMeiSlA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/ssr": "^3.9.10", + "@react-aria/utils": "^3.33.0", + "@react-stately/flags": "^3.1.2", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/ssr": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.10.tgz", + "integrity": "sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/utils": { + "version": "3.33.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.33.0.tgz", + "integrity": "sha512-yvz7CMH8d2VjwbSa5nGXqjU031tYhD8ddax95VzJsHSPyqHDEGfxul8RkhGV6oO7bVqZxVs6xY66NIgae+FHjw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/ssr": "^3.9.10", + "@react-stately/flags": "^3.1.2", + "@react-stately/utils": "^3.11.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/flags": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.2.tgz", + "integrity": "sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@react-stately/utils": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.11.0.tgz", + "integrity": "sha512-8LZpYowJ9eZmmYLpudbo/eclIRnbhWIJZ994ncmlKlouNzKohtM8qTC6B1w1pwUbiwGdUoyzLuQbeaIor5Dvcw==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/shared": { + "version": "3.33.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.33.0.tgz", + "integrity": "sha512-xuUpP6MyuPmJtzNOqF5pzFUIHH2YogyOQfUQHag54PRmWB7AbjuGWBUv0l1UDmz6+AbzAYGmDVAzcRDOu2PFpw==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } }, "node_modules/@rtsao/scc": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@rushstack/eslint-patch": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.11.0.tgz", - "integrity": "sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==", - "dev": true + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.15.0.tgz", + "integrity": "sha512-ojSshQPKwVvSMR8yT2L/QtUkV5SXi/IfDiJ4/8d6UbTPjiHVmxZzUAzGD8Tzks1b9+qQkZa0isUOvYObedITaw==", + "dev": true, + "license": "MIT" }, "node_modules/@shikijs/core": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.3.0.tgz", - "integrity": "sha512-CovkFL2WVaHk6PCrwv6ctlmD4SS1qtIfN8yEyDXDYWh4ONvomdM9MaFw20qHuqJOcb8/xrkqoWQRJ//X10phOQ==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.22.0.tgz", + "integrity": "sha512-iAlTtSDDbJiRpvgL5ugKEATDtHdUVkqgHDm/gbD2ZS9c88mx7G1zSYjjOxp5Qa0eaW0MAQosFRmJSk354PRoQA==", + "license": "MIT", "dependencies": { - "@shikijs/types": "3.3.0", + "@shikijs/types": "3.22.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "node_modules/@shikijs/engine-javascript": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.3.0.tgz", - "integrity": "sha512-XlhnFGv0glq7pfsoN0KyBCz9FJU678LZdQ2LqlIdAj6JKsg5xpYKay3DkazXWExp3DTJJK9rMOuGzU2911pg7Q==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.22.0.tgz", + "integrity": "sha512-jdKhfgW9CRtj3Tor0L7+yPwdG3CgP7W+ZEqSsojrMzCjD1e0IxIbwUMDDpYlVBlC08TACg4puwFGkZfLS+56Tw==", + "license": "MIT", "dependencies": { - "@shikijs/types": "3.3.0", + "@shikijs/types": "3.22.0", "@shikijs/vscode-textmate": "^10.0.2", - "oniguruma-to-es": "^4.2.0" + "oniguruma-to-es": "^4.3.4" } }, "node_modules/@shikijs/engine-oniguruma": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.3.0.tgz", - "integrity": "sha512-l0vIw+GxeNU7uGnsu6B+Crpeqf+WTQ2Va71cHb5ZYWEVEPdfYwY5kXwYqRJwHrxz9WH+pjSpXQz+TJgAsrkA5A==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.22.0.tgz", + "integrity": "sha512-DyXsOG0vGtNtl7ygvabHd7Mt5EY8gCNqR9Y7Lpbbd/PbJvgWrqaKzH1JW6H6qFkuUa8aCxoiYVv8/YfFljiQxA==", + "license": "MIT", "dependencies": { - "@shikijs/types": "3.3.0", + "@shikijs/types": "3.22.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "node_modules/@shikijs/langs": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.3.0.tgz", - "integrity": "sha512-zt6Kf/7XpBQKSI9eqku+arLkAcDQ3NHJO6zFjiChI8w0Oz6Jjjay7pToottjQGjSDCFk++R85643WbyINcuL+g==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.22.0.tgz", + "integrity": "sha512-x/42TfhWmp6H00T6uwVrdTJGKgNdFbrEdhaDwSR5fd5zhQ1Q46bHq9EO61SCEWJR0HY7z2HNDMaBZp8JRmKiIA==", + "license": "MIT", "dependencies": { - "@shikijs/types": "3.3.0" + "@shikijs/types": "3.22.0" } }, "node_modules/@shikijs/rehype": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/rehype/-/rehype-3.3.0.tgz", - "integrity": "sha512-m9clrxedJHyKDwYoAkIUJ7thWGSZwZbA0PeGDST7NHCTGeS227BFn8Hoq2olAtxXo14k5T1JcUCDgyaRZfI4Hw==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/rehype/-/rehype-3.22.0.tgz", + "integrity": "sha512-69b2VPc6XBy/VmAJlpBU5By+bJSBdE2nvgRCZXav7zujbrjXuT0F60DIrjKuutjPqNufuizE+E8tIZr2Yn8Z+g==", + "license": "MIT", "dependencies": { - "@shikijs/types": "3.3.0", + "@shikijs/types": "3.22.0", "@types/hast": "^3.0.4", "hast-util-to-string": "^3.0.1", - "shiki": "3.3.0", + "shiki": "3.22.0", "unified": "^11.0.5", - "unist-util-visit": "^5.0.0" + "unist-util-visit": "^5.1.0" } }, "node_modules/@shikijs/themes": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.3.0.tgz", - "integrity": "sha512-tXeCvLXBnqq34B0YZUEaAD1lD4lmN6TOHAhnHacj4Owh7Ptb/rf5XCDeROZt2rEOk5yuka3OOW2zLqClV7/SOg==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.22.0.tgz", + "integrity": "sha512-o+tlOKqsr6FE4+mYJG08tfCFDS+3CG20HbldXeVoyP+cYSUxDhrFf3GPjE60U55iOkkjbpY2uC3It/eeja35/g==", + "license": "MIT", "dependencies": { - "@shikijs/types": "3.3.0" + "@shikijs/types": "3.22.0" } }, "node_modules/@shikijs/transformers": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-3.3.0.tgz", - "integrity": "sha512-PIknEyxfkT7i7at/78ynVmuZEv4+7IcS37f6abxMjQ0pVIPEya8n+KNl7XtfbhNL+U9ElR3UzfSzuD5l5Iu+nw==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-3.22.0.tgz", + "integrity": "sha512-E7eRV7mwDBjueLF6852n2oYeJYxBq3NSsDk+uyruYAXONv4U8holGmIrT+mPRJQ1J1SNOH6L8G19KRzmBawrFw==", + "license": "MIT", "dependencies": { - "@shikijs/core": "3.3.0", - "@shikijs/types": "3.3.0" + "@shikijs/core": "3.22.0", + "@shikijs/types": "3.22.0" + } + }, + "node_modules/@shikijs/twoslash": { + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/twoslash/-/twoslash-3.22.0.tgz", + "integrity": "sha512-GO27UPN+kegOMQvC+4XcLt0Mttyg+n16XKjmoKjdaNZoW+sOJV7FLdv2QKauqUDws6nE3EQPD+TFHEdyyoUBDw==", + "license": "MIT", + "dependencies": { + "@shikijs/core": "3.22.0", + "@shikijs/types": "3.22.0", + "twoslash": "^0.3.6" + }, + "peerDependencies": { + "typescript": ">=5.5.0" } }, "node_modules/@shikijs/types": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.3.0.tgz", - "integrity": "sha512-KPCGnHG6k06QG/2pnYGbFtFvpVJmC3uIpXrAiPrawETifujPBv0Se2oUxm5qYgjCvGJS9InKvjytOdN+bGuX+Q==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.22.0.tgz", + "integrity": "sha512-491iAekgKDBFE67z70Ok5a8KBMsQ2IJwOWw3us/7ffQkIBCyOQfm/aNwVMBUriP02QshIfgHCBSIYAl3u2eWjg==", + "license": "MIT", "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" @@ -3113,77 +2809,73 @@ "node_modules/@shikijs/vscode-textmate": { "version": "10.0.2", "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", - "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==" - }, - "node_modules/@sindresorhus/is": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", - "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", - "engines": { - "node": ">=4" - } + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", + "license": "MIT" }, "node_modules/@standard-schema/spec": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", - "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==" - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" }, "node_modules/@swc/helpers": { "version": "0.5.15", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.8.0" } }, "node_modules/@tailwindcss/node": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.4.tgz", - "integrity": "sha512-MT5118zaiO6x6hNA04OWInuAiP1YISXql8Z+/Y8iisV5nuhM8VXlyhRuqc2PEviPszcXI66W44bCIk500Oolhw==", + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.18.tgz", + "integrity": "sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==", "dev": true, + "license": "MIT", "dependencies": { - "enhanced-resolve": "^5.18.1", - "jiti": "^2.4.2", - "lightningcss": "1.29.2", - "tailwindcss": "4.1.4" + "@jridgewell/remapping": "^2.3.4", + "enhanced-resolve": "^5.18.3", + "jiti": "^2.6.1", + "lightningcss": "1.30.2", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.18" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.4.tgz", - "integrity": "sha512-p5wOpXyOJx7mKh5MXh5oKk+kqcz8T+bA3z/5VWWeQwFrmuBItGwz8Y2CHk/sJ+dNb9B0nYFfn0rj/cKHZyjahQ==", + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.18.tgz", + "integrity": "sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.1.4", - "@tailwindcss/oxide-darwin-arm64": "4.1.4", - "@tailwindcss/oxide-darwin-x64": "4.1.4", - "@tailwindcss/oxide-freebsd-x64": "4.1.4", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.4", - "@tailwindcss/oxide-linux-arm64-gnu": "4.1.4", - "@tailwindcss/oxide-linux-arm64-musl": "4.1.4", - "@tailwindcss/oxide-linux-x64-gnu": "4.1.4", - "@tailwindcss/oxide-linux-x64-musl": "4.1.4", - "@tailwindcss/oxide-wasm32-wasi": "4.1.4", - "@tailwindcss/oxide-win32-arm64-msvc": "4.1.4", - "@tailwindcss/oxide-win32-x64-msvc": "4.1.4" + "@tailwindcss/oxide-android-arm64": "4.1.18", + "@tailwindcss/oxide-darwin-arm64": "4.1.18", + "@tailwindcss/oxide-darwin-x64": "4.1.18", + "@tailwindcss/oxide-freebsd-x64": "4.1.18", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.18", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.18", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.18", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.18", + "@tailwindcss/oxide-linux-x64-musl": "4.1.18", + "@tailwindcss/oxide-wasm32-wasi": "4.1.18", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.18", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.18" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.4.tgz", - "integrity": "sha512-xMMAe/SaCN/vHfQYui3fqaBDEXMu22BVwQ33veLc8ep+DNy7CWN52L+TTG9y1K397w9nkzv+Mw+mZWISiqhmlA==", + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.18.tgz", + "integrity": "sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -3193,13 +2885,14 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.4.tgz", - "integrity": "sha512-JGRj0SYFuDuAGilWFBlshcexev2hOKfNkoX+0QTksKYq2zgF9VY/vVMq9m8IObYnLna0Xlg+ytCi2FN2rOL0Sg==", + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.18.tgz", + "integrity": "sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -3209,13 +2902,14 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.4.tgz", - "integrity": "sha512-sdDeLNvs3cYeWsEJ4H1DvjOzaGios4QbBTNLVLVs0XQ0V95bffT3+scptzYGPMjm7xv4+qMhCDrkHwhnUySEzA==", + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.18.tgz", + "integrity": "sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -3225,13 +2919,14 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.4.tgz", - "integrity": "sha512-VHxAqxqdghM83HslPhRsNhHo91McsxRJaEnShJOMu8mHmEj9Ig7ToHJtDukkuLWLzLboh2XSjq/0zO6wgvykNA==", + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.18.tgz", + "integrity": "sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -3241,13 +2936,14 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.4.tgz", - "integrity": "sha512-OTU/m/eV4gQKxy9r5acuesqaymyeSCnsx1cFto/I1WhPmi5HDxX1nkzb8KYBiwkHIGg7CTfo/AcGzoXAJBxLfg==", + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.18.tgz", + "integrity": "sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -3257,13 +2953,14 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.4.tgz", - "integrity": "sha512-hKlLNvbmUC6z5g/J4H+Zx7f7w15whSVImokLPmP6ff1QqTVE+TxUM9PGuNsjHvkvlHUtGTdDnOvGNSEUiXI1Ww==", + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.18.tgz", + "integrity": "sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -3273,13 +2970,14 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.4.tgz", - "integrity": "sha512-X3As2xhtgPTY/m5edUtddmZ8rCruvBvtxYLMw9OsZdH01L2gS2icsHRwxdU0dMItNfVmrBezueXZCHxVeeb7Aw==", + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.18.tgz", + "integrity": "sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -3289,13 +2987,14 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.4.tgz", - "integrity": "sha512-2VG4DqhGaDSmYIu6C4ua2vSLXnJsb/C9liej7TuSO04NK+JJJgJucDUgmX6sn7Gw3Cs5ZJ9ZLrnI0QRDOjLfNQ==", + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.18.tgz", + "integrity": "sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -3305,13 +3004,14 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.4.tgz", - "integrity": "sha512-v+mxVgH2kmur/X5Mdrz9m7TsoVjbdYQT0b4Z+dr+I4RvreCNXyCFELZL/DO0M1RsidZTrm6O1eMnV6zlgEzTMQ==", + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.18.tgz", + "integrity": "sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -3321,9 +3021,9 @@ } }, "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.4.tgz", - "integrity": "sha512-2TLe9ir+9esCf6Wm+lLWTMbgklIjiF0pbmDnwmhR9MksVOq+e8aP3TSsXySnBDDvTTVd/vKu1aNttEGj3P6l8Q==", + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.18.tgz", + "integrity": "sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==", "bundleDependencies": [ "@napi-rs/wasm-runtime", "@emnapi/core", @@ -3336,147 +3036,465 @@ "wasm32" ], "dev": true, + "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.4.0", - "@emnapi/runtime": "^1.4.0", - "@emnapi/wasi-threads": "^1.0.1", - "@napi-rs/wasm-runtime": "^0.2.8", - "@tybys/wasm-util": "^0.9.0", - "tslib": "^2.8.0" + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.1.0", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.18.tgz", + "integrity": "sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.18.tgz", + "integrity": "sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.18.tgz", + "integrity": "sha512-Ce0GFnzAOuPyfV5SxjXGn0CubwGcuDB0zcdaPuCSzAa/2vII24JTkH+I6jcbXLb1ctjZMZZI6OjDaLPJQL1S0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "4.1.18", + "@tailwindcss/oxide": "4.1.18", + "postcss": "^8.4.41", + "tailwindcss": "4.1.18" + } + }, + "node_modules/@tanstack/react-virtual": { + "version": "3.13.18", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.18.tgz", + "integrity": "sha512-dZkhyfahpvlaV0rIKnvQiVoWPyURppl6w4m9IwMDpuIjcJ1sD9YGWrt0wISvgU7ewACXx2Ct46WPgI6qAD4v6A==", + "license": "MIT", + "dependencies": { + "@tanstack/virtual-core": "3.13.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@tanstack/virtual-core": { + "version": "3.13.18", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.18.tgz", + "integrity": "sha512-Mx86Hqu1k39icq2Zusq+Ey2J6dDWTjDvEv43PJtRCoEYTLyfaPnxIQ6iy7YAOK0NV/qOEmZQ/uCufrppZxTgcg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@theguild/remark-mermaid": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@theguild/remark-mermaid/-/remark-mermaid-0.3.0.tgz", + "integrity": "sha512-Fy1J4FSj8totuHsHFpaeWyWRaRSIvpzGTRoEfnNJc1JmLV9uV70sYE3zcT+Jj5Yw20Xq4iCsiT+3Ho49BBZcBQ==", + "license": "MIT", + "dependencies": { + "mermaid": "^11.0.0", + "unist-util-visit": "^5.0.0" + }, + "peerDependencies": { + "react": "^18.2.0 || ^19.0.0" + } + }, + "node_modules/@theguild/remark-npm2yarn": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@theguild/remark-npm2yarn/-/remark-npm2yarn-0.3.3.tgz", + "integrity": "sha512-ma6DvR03gdbvwqfKx1omqhg9May/VYGdMHvTzB4VuxkyS7KzfZ/lzrj43hmcsggpMje0x7SADA/pcMph0ejRnA==", + "license": "MIT", + "dependencies": { + "npm-to-yarn": "^3.0.0", + "unist-util-visit": "^5.0.0" + } + }, + "node_modules/@ts-morph/common": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.28.1.tgz", + "integrity": "sha512-W74iWf7ILp1ZKNYXY5qbddNaml7e9Sedv5lvU1V8lftlitkc9Pq1A+jlH23ltDgWYeZFFEqGCD1Ies9hqu3O+g==", + "license": "MIT", + "dependencies": { + "minimatch": "^10.0.1", + "path-browserify": "^1.0.1", + "tinyglobby": "^0.2.14" + } + }, + "node_modules/@ts-morph/common/node_modules/minimatch": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.2.tgz", + "integrity": "sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/brace-expansion": "^5.0.1" }, "engines": { - "node": ">=14.0.0" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.4.tgz", - "integrity": "sha512-VlnhfilPlO0ltxW9/BgfLI5547PYzqBMPIzRrk4W7uupgCt8z6Trw/tAj6QUtF2om+1MH281Pg+HHUJoLesmng==", - "cpu": [ - "arm64" - ], + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", "dev": true, + "license": "MIT", "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" + "dependencies": { + "tslib": "^2.4.0" } }, - "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.4.tgz", - "integrity": "sha512-+7S63t5zhYjslUGb8NcgLpFXD+Kq1F/zt5Xv5qTv7HaFTG/DHyHD9GA6ieNAxhgyA4IcKa/zy7Xx4Oad2/wuhw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" + "node_modules/@types/d3": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "license": "MIT", + "dependencies": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "license": "MIT" + }, + "node_modules/@types/d3-axis": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", + "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" } }, - "node_modules/@tailwindcss/postcss": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.4.tgz", - "integrity": "sha512-bjV6sqycCEa+AQSt2Kr7wpGF1bOZJ5wsqnLEkqSbM/JEHxx/yhMH8wHmdkPyApF9xhHeMSwnnkDUUMMM/hYnXw==", - "dev": true, + "node_modules/@types/d3-brush": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", + "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", + "license": "MIT", "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "4.1.4", - "@tailwindcss/oxide": "4.1.4", - "postcss": "^8.4.41", - "tailwindcss": "4.1.4" + "@types/d3-selection": "*" } }, - "node_modules/@tybys/wasm-util": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", - "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", - "dev": true, - "optional": true, + "node_modules/@types/d3-chord": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", + "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-contour": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", + "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", + "license": "MIT", "dependencies": { - "tslib": "^2.4.0" + "@types/d3-array": "*", + "@types/geojson": "*" } }, - "node_modules/@types/acorn": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", - "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", + "node_modules/@types/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", + "license": "MIT" + }, + "node_modules/@types/d3-dispatch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", + "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", + "license": "MIT" + }, + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "license": "MIT", "dependencies": { - "@types/estree": "*" + "@types/d3-selection": "*" } }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "node_modules/@types/d3-dsv": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-fetch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", + "license": "MIT", "dependencies": { - "@types/ms": "*" + "@types/d3-dsv": "*" } }, - "node_modules/@types/eslint": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "peer": true, + "node_modules/@types/d3-force": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", + "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", + "license": "MIT" + }, + "node_modules/@types/d3-format": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", + "license": "MIT" + }, + "node_modules/@types/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", + "license": "MIT", "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" + "@types/geojson": "*" } }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "peer": true, + "node_modules/@types/d3-hierarchy": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", + "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT" + }, + "node_modules/@types/d3-polygon": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", + "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", + "license": "MIT" + }, + "node_modules/@types/d3-quadtree": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", + "license": "MIT" + }, + "node_modules/@types/d3-random": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", + "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", + "license": "MIT" + }, + "node_modules/@types/d3-selection": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", + "license": "MIT" + }, + "node_modules/@types/d3-shape": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-time-format": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", + "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/d3-transition": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "license": "MIT", + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" } }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==" + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" }, "node_modules/@types/estree-jsx": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", "dependencies": { "@types/estree": "*" } }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "license": "MIT" + }, "node_modules/@types/hast": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", "dependencies": { "@types/unist": "*" } }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "peer": true - }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@types/katex": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.8.tgz", + "integrity": "sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==", + "license": "MIT" }, "node_modules/@types/mdast": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", "dependencies": { "@types/unist": "*" } @@ -3484,59 +3502,82 @@ "node_modules/@types/mdx": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", - "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==" + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "license": "MIT" }, "node_modules/@types/ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==" + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/nlcst": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz", + "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } }, "node_modules/@types/node": { - "version": "22.14.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.1.tgz", - "integrity": "sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==", + "version": "24.10.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.12.tgz", + "integrity": "sha512-68e+T28EbdmLSTkPgs3+UacC6rzmqrcWFPQs1C8mwJhI/r5Uxr0yEuQotczNRROd1gq30NGxee+fo0rSIxpyAw==", + "dev": true, + "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~7.16.0" } }, "node_modules/@types/react": { - "version": "19.1.2", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.2.tgz", - "integrity": "sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==", + "version": "19.2.13", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.13.tgz", + "integrity": "sha512-KkiJeU6VbYbUOp5ITMIc7kBfqlYkKA5KhEHVrGMmUUMt7NeaZg65ojdPk+FtNrBAOXNVM5QM72jnADjM+XVRAQ==", "devOptional": true, + "license": "MIT", "dependencies": { - "csstype": "^3.0.2" + "csstype": "^3.2.2" } }, "node_modules/@types/react-dom": { - "version": "19.1.2", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.2.tgz", - "integrity": "sha512-XGJkWF41Qq305SKWEILa1O8vzhb3aOo3ogBlSmiqNko/WmRb6QIaweuZCXjKygVDXpzXb5wyxKTSOsmkuqj+Qw==", + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", "devOptional": true, + "license": "MIT", "peerDependencies": { - "@types/react": "^19.0.0" + "@types/react": "^19.2.0" } }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, "node_modules/@types/unist": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==" + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.0.tgz", - "integrity": "sha512-evaQJZ/J/S4wisevDvC1KFZkPzRetH8kYZbkgcTRyql3mcKsf+ZFDV1BVWUGTCAW5pQHoqn5gK5b8kn7ou9aFQ==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.31.0", - "@typescript-eslint/type-utils": "8.31.0", - "@typescript-eslint/utils": "8.31.0", - "@typescript-eslint/visitor-keys": "8.31.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.54.0.tgz", + "integrity": "sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.54.0", + "@typescript-eslint/type-utils": "8.54.0", + "@typescript-eslint/utils": "8.54.0", + "@typescript-eslint/visitor-keys": "8.54.0", + "ignore": "^7.0.5", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.4.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3546,22 +3587,33 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "@typescript-eslint/parser": "^8.54.0", "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.31.0.tgz", - "integrity": "sha512-67kYYShjBR0jNI5vsf/c3WG4u+zDnCTHTPqVMQguffaWWFs7artgwKmfwdifl+r6XyM5LYLas/dInj2T0SgJyw==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.54.0.tgz", + "integrity": "sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.31.0", - "@typescript-eslint/types": "8.31.0", - "@typescript-eslint/typescript-estree": "8.31.0", - "@typescript-eslint/visitor-keys": "8.31.0", - "debug": "^4.3.4" + "@typescript-eslint/scope-manager": "8.54.0", + "@typescript-eslint/types": "8.54.0", + "@typescript-eslint/typescript-estree": "8.54.0", + "@typescript-eslint/visitor-keys": "8.54.0", + "debug": "^4.4.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3572,17 +3624,19 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.0.tgz", - "integrity": "sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw==", + "node_modules/@typescript-eslint/project-service": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.54.0.tgz", + "integrity": "sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.0", - "@typescript-eslint/visitor-keys": "8.31.0" + "@typescript-eslint/tsconfig-utils": "^8.54.0", + "@typescript-eslint/types": "^8.54.0", + "debug": "^4.4.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3590,18 +3644,20 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.31.0.tgz", - "integrity": "sha512-DJ1N1GdjI7IS7uRlzJuEDCgDQix3ZVYVtgeWEyhyn4iaoitpMBX6Ndd488mXSx0xah/cONAkEaYyylDyAeHMHg==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.54.0.tgz", + "integrity": "sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.31.0", - "@typescript-eslint/utils": "8.31.0", - "debug": "^4.3.4", - "ts-api-utils": "^2.0.1" + "@typescript-eslint/types": "8.54.0", + "@typescript-eslint/visitor-keys": "8.54.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3609,39 +3665,37 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/types": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.0.tgz", - "integrity": "sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==", + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.54.0.tgz", + "integrity": "sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw==", "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.0.tgz", - "integrity": "sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==", + "node_modules/@typescript-eslint/type-utils": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.54.0.tgz", + "integrity": "sha512-hiLguxJWHjjwL6xMBwD903ciAwd7DmK30Y9Axs/etOkftC3ZNN9K44IuRD/EB08amu+Zw6W37x9RecLkOo3pMA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.0", - "@typescript-eslint/visitor-keys": "8.31.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.0.1" + "@typescript-eslint/types": "8.54.0", + "@typescript-eslint/typescript-estree": "8.54.0", + "@typescript-eslint/utils": "8.54.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.4.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3651,44 +3705,60 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/@typescript-eslint/types": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.54.0.tgz", + "integrity": "sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.54.0.tgz", + "integrity": "sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA==", "dev": true, + "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" + "@typescript-eslint/project-service": "8.54.0", + "@typescript-eslint/tsconfig-utils": "8.54.0", + "@typescript-eslint/types": "8.54.0", + "@typescript-eslint/visitor-keys": "8.54.0", + "debug": "^4.4.3", + "minimatch": "^9.0.5", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.4.0" }, "engines": { - "node": ">=8.6.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" + "balanced-match": "^1.0.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { @@ -3696,6 +3766,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3707,15 +3778,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.0.tgz", - "integrity": "sha512-qi6uPLt9cjTFxAb1zGNgTob4x9ur7xC6mHQJ8GwEzGMGE9tYniublmJaowOJ9V2jUzxrltTPfdG2nKlWsq0+Ww==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.54.0.tgz", + "integrity": "sha512-9Cnda8GS57AQakvRyG0PTejJNlA2xhvyNtEVIMlDWOOeEyBkYWhGPnfrIAnqxLMTSTo6q8g12XVjjev5l1NvMA==", "dev": true, + "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.31.0", - "@typescript-eslint/types": "8.31.0", - "@typescript-eslint/typescript-estree": "8.31.0" + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.54.0", + "@typescript-eslint/types": "8.54.0", + "@typescript-eslint/typescript-estree": "8.54.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3726,17 +3798,18 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz", - "integrity": "sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.54.0.tgz", + "integrity": "sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.0", - "eslint-visitor-keys": "^4.2.0" + "@typescript-eslint/types": "8.54.0", + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3747,10 +3820,11 @@ } }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -3758,384 +3832,307 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@typescript/vfs": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.6.2.tgz", + "integrity": "sha512-hoBwJwcbKHmvd2QVebiytN1aELvpk9B74B4L1mFm/XT1Q/VOYAWl2vQ9AWRFtQq8zmz6enTpfTV8WRc4ATjW/g==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.1" + }, + "peerDependencies": { + "typescript": "*" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==" + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] }, "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.6.4.tgz", - "integrity": "sha512-ehtknxfSIlAIVFmQ9/yVbW4SzyjWuQpKAtRujNzuR0qS1avz4+BSmM0lVhl4OnU7nJaun/g+AM2FeaUY5KwZsg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@unrs/resolver-binding-darwin-x64": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.6.4.tgz", - "integrity": "sha512-CtPj8lqQNVaNjnURq4lCAsanQGN/zO8yFKbL8a7RKH4SU7EMYhOrK8JgW5mbcEDinB4hVuZdgsDCTA3x24CuVQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@unrs/resolver-binding-freebsd-x64": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.6.4.tgz", - "integrity": "sha512-N8UpCG5vis1srGACnJ03WG4N9YfkpzcF7Ooztv9uOE3IG7yjxT4wSVpfbTUof2kOM8TmVhgINoIDQ5wxo+CCxQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ] }, "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.6.4.tgz", - "integrity": "sha512-Hllz4okH+R2P0YdFivGhrA1gjDLjQrhLmfu37TidpQpcp6tcTK40T9mt7SF8frXuPjd2/YNxXIyowOvswwnfOg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.6.4.tgz", - "integrity": "sha512-Mem13rJYfFvBj4xlkuok0zH5qn8vTm9FEm+FyiZeRK/6AFVPc/y596HihKcHIk7djvJ4BYXs7yIZo2ezabE7IA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.6.4.tgz", - "integrity": "sha512-kgyNRMgN7Z2pF2GJBHGIxhkN9e0rMOZwWORH3RjGHZnjtdrThxyQSMUGjK5MDM6+V3waPL0Kv9Y6pJnYxlvcXA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@unrs/resolver-binding-linux-arm64-musl": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.6.4.tgz", - "integrity": "sha512-bLlGWp3Z7eiO6sytt5T3NFwiUfvIjYH9wGIVD01lnVOIBxHUjQQo+7Nv+SkZVP+Y7oySlyyrrzn5y9VFn1MLeQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.6.4.tgz", - "integrity": "sha512-Qt3g8MRemL9h51MCMh4BtQMNzK2JPo2CG8rVeTw8F2xKuUtLRqTsRGitOCbA6cuogv8EezBNyddKKT+bZ70W3g==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.6.4.tgz", - "integrity": "sha512-MFMn6TCZZkaOt90lTC+OzfGuGTcOyNDDB6gqgmHEiNUAz8sfljbhKIyms8e792J/Dsq0H1LSWcNhtMjnRZtv8g==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.6.4.tgz", - "integrity": "sha512-RGV8V4VjxH8WhcAqvVuHAv85nbdU87dbcJmarXYuAUPLWC76ptJ32eGY5CM4MmmdU8NA3m4EkiBilSvzSt+BMA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.6.4.tgz", - "integrity": "sha512-9SWe0F8kD7+4oD1dLvyHiVXN77PrBKbo46JVuwiCGtv3HnbSgNpjyl/9N4xqsXQScERwRWS6qjjA8fTaedwjRQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@unrs/resolver-binding-linux-x64-musl": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.6.4.tgz", - "integrity": "sha512-EJP5VyeRTPHqm1CEVoeAcGY7z6fmvAl8MGi06NFxdvczRRwazg0SZre+kzYis/Px4jZY6nZwBXMsHamyY0CELg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@unrs/resolver-binding-wasm32-wasi": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.6.4.tgz", - "integrity": "sha512-/Igzy4K6QTajH0m1PesWaYyor/USENYiX7PQQHHsVvewX9rx2mUwpH0ckOLXKpnLNghm+mzDcEufdgFsZQEK3A==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", "cpu": [ "wasm32" ], "dev": true, + "license": "MIT", "optional": true, "dependencies": { - "@napi-rs/wasm-runtime": "^0.2.9" + "@napi-rs/wasm-runtime": "^0.2.11" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.6.4.tgz", - "integrity": "sha512-MXx3CyX+XbNJm5HXgZrkiL1JbizaRbpEE1GnXYxIOjfBDFqzWl4tge5Fdp+sBtGeGPB42q6ZBnECEa/tzSWa6A==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.6.4.tgz", - "integrity": "sha512-ZDIZ4HMZI8GNEUfBaM844O0LfguwDBvpu7orTv+9kxPOAW/6Cxyh768f/qlHIl8Xp0AHZOSJKLc1UneMdt9O6w==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@unrs/resolver-binding-win32-x64-msvc": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.6.4.tgz", - "integrity": "sha512-jZIMKjruJy9ddDIZBLGzyi2rqfRzi3lNQkQTuaQkcpUMSy+HValMS/fvRHZIB0BGw/fdu2uCDfpxB6dNwB1Ung==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "peer": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "peer": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "peer": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "peer": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "peer": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "peer": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "peer": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "peer": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "peer": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" + "node_modules/@xmldom/xmldom": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.8.tgz", + "integrity": "sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==", + "license": "MIT", + "engines": { + "node": ">=14.6" } }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "peer": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "peer": true - }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -4147,70 +4144,34 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "peer": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "peer": true, + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "peer": true - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -4220,6 +4181,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -4230,35 +4192,23 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/archive-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", - "integrity": "sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==", - "dependencies": { - "file-type": "^4.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/archive-type/node_modules/file-type": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", - "integrity": "sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==", - "engines": { - "node": ">=4" - } + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "license": "Python-2.0" }, "node_modules/aria-hidden": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", - "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, @@ -4271,6 +4221,7 @@ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">= 0.4" } @@ -4280,6 +4231,7 @@ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" @@ -4292,17 +4244,20 @@ } }, "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -4311,11 +4266,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-iterate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", + "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/array.prototype.findlast": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -4336,6 +4302,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", @@ -4357,6 +4324,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -4375,6 +4343,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -4393,6 +4362,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -4409,6 +4379,7 @@ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", @@ -4429,12 +4400,14 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/astring": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", "bin": { "astring": "bin/astring" } @@ -4444,6 +4417,7 @@ "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -4453,6 +4427,7 @@ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "license": "MIT", "dependencies": { "possible-typed-array-names": "^1.0.0" }, @@ -4464,10 +4439,11 @@ } }, "node_modules/axe-core": { - "version": "4.10.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", - "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.1.tgz", + "integrity": "sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==", "dev": true, + "license": "MPL-2.0", "engines": { "node": ">=4" } @@ -4477,6 +4453,7 @@ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">= 0.4" } @@ -4485,6 +4462,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4494,49 +4472,36 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "dev": true, + "license": "MIT" }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "engines": { - "node": "*" + "node_modules/baseline-browser-mapping": { + "version": "2.9.19", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz", + "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" } }, - "node_modules/bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "node_modules/better-react-mathjax": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/better-react-mathjax/-/better-react-mathjax-2.3.0.tgz", + "integrity": "sha512-K0ceQC+jQmB+NLDogO5HCpqmYf18AU2FxDbLdduYgkHYWZApFggkHE4dIaXCV1NqeoscESYXXo1GSkY6fA295w==", + "license": "MIT", "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" + "mathjax-full": "^3.2.2" + }, + "peerDependencies": { + "react": ">=16.8" } }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4546,6 +4511,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -4553,153 +4519,12 @@ "node": ">=8" } }, - "node_modules/browserslist": { - "version": "4.24.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", - "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true, - "dependencies": { - "caniuse-lite": "^1.0.30001716", - "electron-to-chromium": "^1.5.149", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "engines": { - "node": "*" - } - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "peer": true - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/cacheable-request": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", - "integrity": "sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==", - "dependencies": { - "clone-response": "1.0.2", - "get-stream": "3.0.0", - "http-cache-semantics": "3.8.1", - "keyv": "3.0.0", - "lowercase-keys": "1.0.0", - "normalize-url": "2.0.1", - "responselike": "1.0.2" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/cacheable-request/node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" - }, - "node_modules/cacheable-request/node_modules/keyv": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", - "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dev": true, + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", @@ -4718,6 +4543,7 @@ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" @@ -4731,6 +4557,7 @@ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" @@ -4747,14 +4574,15 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001717", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz", - "integrity": "sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==", + "version": "1.0.30001769", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001769.tgz", + "integrity": "sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==", "funding": [ { "type": "opencollective", @@ -4768,12 +4596,14 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/ccount": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4784,6 +4614,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4799,6 +4630,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4808,6 +4640,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4817,6 +4650,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4826,38 +4660,64 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/chevrotain": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", + "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/cst-dts-gen": "11.0.3", + "@chevrotain/gast": "11.0.3", + "@chevrotain/regexp-to-ast": "11.0.3", + "@chevrotain/types": "11.0.3", + "@chevrotain/utils": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/chevrotain-allstar": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz", + "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==", + "license": "MIT", + "dependencies": { + "lodash-es": "^4.17.21" + }, + "peerDependencies": { + "chevrotain": "^11.0.0" + } + }, + "node_modules/chevrotain/node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "license": "MIT", "dependencies": { - "readdirp": "^4.0.1" + "readdirp": "^5.0.0" }, "engines": { - "node": ">= 14.16.0" + "node": ">= 20.19.0" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "peer": true, - "engines": { - "node": ">=6.0" - } - }, "node_modules/class-variance-authority": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", "dependencies": { "clsx": "^2.1.1" }, @@ -4868,51 +4728,57 @@ "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", + "node_modules/clipboardy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz", + "integrity": "sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==", + "license": "MIT", "dependencies": { - "mimic-response": "^1.0.0" + "execa": "^8.0.1", + "is-wsl": "^3.1.0", + "is64bit": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/code-block-writer": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz", + "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", + "license": "MIT" + }, "node_modules/collapse-white-space": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "optional": true, - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - }, - "engines": { - "node": ">=12.5.0" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "devOptional": true, + "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -4924,63 +4790,61 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "devOptional": true - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "optional": true, - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } + "dev": true, + "license": "MIT" }, "node_modules/comma-separated-tokens": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } }, "node_modules/compute-scroll-into-view": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", - "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==" + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" }, - "node_modules/core-util-is": { + "node_modules/cose-base": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz", + "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==", + "license": "MIT", + "dependencies": { + "layout-base": "^1.0.0" + } }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -4994,6 +4858,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -5002,610 +4867,573 @@ } }, "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "devOptional": true - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true - }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "devOptional": true, + "license": "MIT" }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, + "node_modules/cytoscape": { + "version": "3.33.1", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz", + "integrity": "sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==", + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" + "node": ">=0.10" } }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "dev": true, + "node_modules/cytoscape-cose-bilkent": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", + "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "cose-base": "^1.0.0" }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "cytoscape": "^3.2.0" } }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "node_modules/cytoscape-fcose": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", + "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", + "license": "MIT", "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" + "cose-base": "^2.2.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "peerDependencies": { + "cytoscape": "^3.2.0" } }, - "node_modules/decode-named-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz", - "integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==", + "node_modules/cytoscape-fcose/node_modules/cose-base": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", + "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", + "license": "MIT", "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "layout-base": "^2.0.0" } }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "node_modules/cytoscape-fcose/node_modules/layout-base": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", + "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==", + "license": "MIT" + }, + "node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "license": "ISC", + "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" + }, "engines": { - "node": ">=0.10" + "node": ">=12" } }, - "node_modules/decompress": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", - "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", "dependencies": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" + "internmap": "1 - 2" }, "engines": { - "node": ">=4" + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "license": "ISC", + "engines": { + "node": ">=12" } }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "license": "ISC", "dependencies": { - "mimic-response": "^1.0.0" + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/decompress-tar": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", - "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "license": "ISC", "dependencies": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" + "d3-path": "1 - 3" }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/decompress-tar/node_modules/file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/decompress-tarbz2": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", - "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "license": "ISC", "dependencies": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" + "d3-array": "^3.2.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tarbz2/node_modules/file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", - "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/decompress-targz": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", - "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "license": "ISC", "dependencies": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" + "delaunator": "5" }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/decompress-targz/node_modules/file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/decompress-unzip": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", "dependencies": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" + "d3-dispatch": "1 - 3", + "d3-selection": "3" }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/decompress-unzip/node_modules/file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/decompress-unzip/node_modules/get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", - "dependencies": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - }, + "node_modules/d3-dsv/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 10" } }, - "node_modules/decompress-unzip/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/decompress/node_modules/make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", "dependencies": { - "pify": "^3.0.0" + "d3-dsv": "1 - 3" }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/decompress/node_modules/make-dir/node_modules/pify": { + "node_modules/d3-force": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/decompress/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "node_modules/d3-format": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", + "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", + "license": "ISC", "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" + "d3-array": "2.5.0 - 3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "d3-color": "1 - 3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/detect-libc": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", - "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", - "devOptional": true, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "license": "ISC", "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", + "engines": { + "node": ">=12" + } }, - "node_modules/devlop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-sankey": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", + "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", + "license": "BSD-3-Clause", "dependencies": { - "dequal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "d3-array": "1 - 2", + "d3-shape": "^1.2.0" } }, - "node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", - "engines": { - "node": ">=0.3.1" + "node_modules/d3-sankey/node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "license": "BSD-3-Clause", + "dependencies": { + "internmap": "^1.0.0" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, + "node_modules/d3-sankey/node_modules/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-sankey/node_modules/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "license": "BSD-3-Clause", "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" + "d3-path": "1" } }, - "node_modules/download": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/download/-/download-8.0.0.tgz", - "integrity": "sha512-ASRY5QhDk7FK+XrQtQyvhpDKanLluEEQtWl/J7Lxuf/b+i8RYh997QeXvL85xitrmRKVlx9c7eTrcRdq2GS4eA==", + "node_modules/d3-sankey/node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "license": "ISC" + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", "dependencies": { - "archive-type": "^4.0.0", - "content-disposition": "^0.5.2", - "decompress": "^4.2.1", - "ext-name": "^5.0.0", - "file-type": "^11.1.0", - "filenamify": "^3.0.0", - "get-stream": "^4.1.0", - "got": "^8.3.1", - "make-dir": "^2.1.0", - "p-event": "^2.1.0", - "pify": "^4.0.1" + "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" }, "engines": { - "node": ">=10" + "node": ">=12" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" }, "engines": { - "node": ">= 0.4" + "node": ">=12" } }, - "node_modules/duplexer3": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", - "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.150", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.150.tgz", - "integrity": "sha512-rOOkP2ZUMx1yL4fCxXQKDHQ8ZXwisb2OycOQVKHgvB3ZI4CvehOd4y2tfnnLDieJ3Zs1RL1Dlp3cMkyIn7nnXA==", - "peer": true - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/emoji-regex-xs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", - "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==" - }, - "node_modules/emojis-list": { + "node_modules/d3-selection": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", "engines": { - "node": ">= 4" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" + "node": ">=12" } }, - "node_modules/enhanced-resolve": { - "version": "5.18.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", - "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "d3-path": "^3.1.0" }, "engines": { - "node": ">=10.13.0" + "node": ">=12" } }, - "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-regex": "^1.2.1", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, "engines": { - "node": ">= 0.4" + "node": ">=12" } }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", "engines": { - "node": ">= 0.4" + "node": ">=12" } }, - "node_modules/es-iterator-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", - "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", - "dev": true, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.6", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.4", - "safe-array-concat": "^1.1.3" + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" }, "engines": { - "node": ">= 0.4" + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" } }, - "node_modules/es-module-lexer": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", - "peer": true - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", "dependencies": { - "es-errors": "^1.3.0" + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" }, "engines": { - "node": ">= 0.4" + "node": ">=12" } }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "node_modules/dagre-d3-es": { + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.13.tgz", + "integrity": "sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q==", + "license": "MIT", + "dependencies": { + "d3": "^7.9.0", + "lodash-es": "^4.17.21" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, + "license": "MIT", "dependencies": { + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-shim-unscopables": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", - "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.2" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" } }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, + "license": "MIT", "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -5614,469 +5442,514 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/esast-util-from-estree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", - "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "node_modules/dayjs": { + "version": "1.11.19", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", + "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", "dependencies": { - "@types/estree-jsx": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-visit": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0" + "ms": "^2.1.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/esast-util-from-js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", - "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "node_modules/decode-named-character-reference": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", + "license": "MIT", "dependencies": { - "@types/estree-jsx": "^1.0.0", - "acorn": "^8.0.0", - "esast-util-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" + "character-entities": "^2.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/esbuild": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz", - "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==", - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.3", - "@esbuild/android-arm": "0.25.3", - "@esbuild/android-arm64": "0.25.3", - "@esbuild/android-x64": "0.25.3", - "@esbuild/darwin-arm64": "0.25.3", - "@esbuild/darwin-x64": "0.25.3", - "@esbuild/freebsd-arm64": "0.25.3", - "@esbuild/freebsd-x64": "0.25.3", - "@esbuild/linux-arm": "0.25.3", - "@esbuild/linux-arm64": "0.25.3", - "@esbuild/linux-ia32": "0.25.3", - "@esbuild/linux-loong64": "0.25.3", - "@esbuild/linux-mips64el": "0.25.3", - "@esbuild/linux-ppc64": "0.25.3", - "@esbuild/linux-riscv64": "0.25.3", - "@esbuild/linux-s390x": "0.25.3", - "@esbuild/linux-x64": "0.25.3", - "@esbuild/netbsd-arm64": "0.25.3", - "@esbuild/netbsd-x64": "0.25.3", - "@esbuild/openbsd-arm64": "0.25.3", - "@esbuild/openbsd-x64": "0.25.3", - "@esbuild/sunos-x64": "0.25.3", - "@esbuild/win32-arm64": "0.25.3", - "@esbuild/win32-ia32": "0.25.3", - "@esbuild/win32-x64": "0.25.3" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "peer": true, - "engines": { - "node": ">=6" - } + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, + "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delaunator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "license": "ISC", + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "devOptional": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" } }, - "node_modules/eslint-config-next": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.3.1.tgz", - "integrity": "sha512-GnmyVd9TE/Ihe3RrvcafFhXErErtr2jS0JDeCSp3vWvy86AXwHsRBt0E3MqP/m8ACS1ivcsi5uaqjbhsG18qKw==", - "dev": true, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "15.3.1", - "@rushstack/eslint-patch": "^1.10.3", - "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", - "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-import-resolver-typescript": "^3.5.2", - "eslint-plugin-import": "^2.31.0", - "eslint-plugin-jsx-a11y": "^6.10.0", - "eslint-plugin-react": "^7.37.0", - "eslint-plugin-react-hooks": "^5.0.0" - }, - "peerDependencies": { - "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", - "typescript": ">=3.3.1" + "dequal": "^2.0.0" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" + "node_modules/dompurify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz", + "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" } }, - "node_modules/eslint-import-resolver-typescript": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", - "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "dev": true, + "license": "MIT", "dependencies": { - "@nolyfill/is-core-module": "1.0.39", - "debug": "^4.4.0", - "get-tsconfig": "^4.10.0", - "is-bun-module": "^2.0.0", - "stable-hash": "^0.0.5", - "tinyglobby": "^0.2.13", - "unrs-resolver": "^1.6.2" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" }, "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-import-resolver-typescript" - }, - "peerDependencies": { - "eslint": "*", - "eslint-plugin-import": "*", - "eslint-plugin-import-x": "*" - }, - "peerDependenciesMeta": { - "eslint-plugin-import": { - "optional": true - }, - "eslint-plugin-import-x": { - "optional": true - } + "node": ">= 0.4" } }, - "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/enhanced-resolve": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz", + "integrity": "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==", "dev": true, + "license": "MIT", "dependencies": { - "debug": "^3.2.7" + "graceful-fs": "^4.2.4", + "tapable": "^2.3.0" }, "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "node": ">=10.13.0" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "node_modules/es-abstract": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", + "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", "dev": true, + "license": "MIT", "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", "hasown": "^2.0.2", - "is-core-module": "^2.15.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.0", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", - "tsconfig-paths": "^3.15.0" + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" }, "engines": { - "node": ">=4" + "node": ">= 0.4" }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", - "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "node_modules/es-iterator-helpers": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz", + "integrity": "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==", "dev": true, + "license": "MIT", "dependencies": { - "aria-query": "^5.3.2", - "array-includes": "^3.1.8", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "^4.10.0", - "axobject-query": "^4.1.0", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "hasown": "^2.0.2", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "safe-regex-test": "^1.0.3", - "string.prototype.includes": "^2.0.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.1", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.3.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.5", + "safe-array-concat": "^1.1.3" }, "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-react": { - "version": "7.37.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", - "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "dev": true, + "license": "MIT", "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.9", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" + "es-errors": "^1.3.0" }, "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-react-hooks": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", - "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + "engines": { + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", "dev": true, + "license": "MIT", "dependencies": { - "esutils": "^2.0.2" + "hasown": "^2.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" }, - "bin": { - "resolve": "bin/resolve" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "node_modules/esast-util-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", + "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, + "node_modules/esast-util-from-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", + "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "license": "MIT", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esbuild": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", + "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=18" }, - "funding": { - "url": "https://opencollective.com/eslint" + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.3", + "@esbuild/android-arm": "0.27.3", + "@esbuild/android-arm64": "0.27.3", + "@esbuild/android-x64": "0.27.3", + "@esbuild/darwin-arm64": "0.27.3", + "@esbuild/darwin-x64": "0.27.3", + "@esbuild/freebsd-arm64": "0.27.3", + "@esbuild/freebsd-x64": "0.27.3", + "@esbuild/linux-arm": "0.27.3", + "@esbuild/linux-arm64": "0.27.3", + "@esbuild/linux-ia32": "0.27.3", + "@esbuild/linux-loong64": "0.27.3", + "@esbuild/linux-mips64el": "0.27.3", + "@esbuild/linux-ppc64": "0.27.3", + "@esbuild/linux-riscv64": "0.27.3", + "@esbuild/linux-s390x": "0.27.3", + "@esbuild/linux-x64": "0.27.3", + "@esbuild/netbsd-arm64": "0.27.3", + "@esbuild/netbsd-x64": "0.27.3", + "@esbuild/openbsd-arm64": "0.27.3", + "@esbuild/openbsd-x64": "0.27.3", + "@esbuild/openharmony-arm64": "0.27.3", + "@esbuild/sunos-x64": "0.27.3", + "@esbuild/win32-arm64": "0.27.3", + "@esbuild/win32-ia32": "0.27.3", + "@esbuild/win32-x64": "0.27.3" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=10" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, + "license": "MIT", "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -6085,771 +5958,728 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "node_modules/eslint-config-next": { + "version": "15.5.12", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.5.12.tgz", + "integrity": "sha512-ktW3XLfd+ztEltY5scJNjxjHwtKWk6vU2iwzZqSN09UsbBmMeE/cVlJ1yESg6Yx5LW7p/Z8WzUAgYXGLEmGIpg==", "dev": true, + "license": "MIT", "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dependencies": { - "estraverse": "^5.2.0" + "@next/eslint-plugin-next": "15.5.12", + "@rushstack/eslint-patch": "^1.10.3", + "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^5.0.0" }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-util-attach-comments": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", - "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", - "dependencies": { - "@types/estree": "^1.0.0" + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", + "typescript": ">=3.3.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/estree-util-build-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", - "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", "dependencies": { - "@types/estree-jsx": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-walker": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, - "node_modules/estree-util-is-identifier-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", - "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/estree-util-scope": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", - "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "node_modules/eslint-import-resolver-typescript": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", + "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", + "dev": true, + "license": "ISC", "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0" + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.13", + "unrs-resolver": "^1.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } } }, - "node_modules/estree-util-to-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", - "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "node_modules/eslint-module-utils": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "dev": true, + "license": "MIT", "dependencies": { - "@types/estree-jsx": "^1.0.0", - "astring": "^1.8.0", - "source-map": "^0.7.0" + "debug": "^3.2.7" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/estree-util-value-to-estree": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.3.3.tgz", - "integrity": "sha512-Db+m1WSD4+mUO7UgMeKkAwdbfNWwIxLt48XF2oFU9emPfXkIu+k5/nlOj313v7wqtAPo0f9REhUvznFrPkG8CQ==", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/remcohaszing" + "ms": "^2.1.1" } }, - "node_modules/estree-util-visit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", - "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, + "license": "MIT", "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/unist": "^3.0.0" + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0" + "ms": "^2.1.1" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "peer": true, - "engines": { - "node": ">=0.8.x" + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/ext-list": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", - "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "license": "MIT", "dependencies": { - "mime-db": "^1.28.0" + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, - "node_modules/ext-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", - "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, + "license": "MIT", "dependencies": { - "ext-list": "^2.0.0", - "sort-keys-length": "^1.0.0" + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" }, "engines": { "node": ">=4" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dependencies": { - "is-extendable": "^0.1.0" }, - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "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" - }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.6.0" + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "is-glob": "^4.0.1" + "esutils": "^2.0.2" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "peer": true - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", "dependencies": { - "reusify": "^1.0.4" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dependencies": { - "pend": "~1.2.0" + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "flat-cache": "^3.0.4" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/file-type": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-11.1.0.tgz", - "integrity": "sha512-rM0UO7Qm9K7TWTtA6AShI/t7H5BPjDeGVDaNyg9BjHAj3PysKy7+8C8D137R88jnR3rFJZQB/tFgydl5sN5m7g==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/filename-reserved-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/filenamify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-3.0.0.tgz", - "integrity": "sha512-5EFZ//MsvJgXjBAFJ+Bh2YaCTRF/VP1YOmGrgt+KJ4SFRLjI87EIdwLLuT6wQX0I4F9W41xutobzczjsOKlI/g==", + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "filename-reserved-regex": "^2.0.0", - "strip-outer": "^1.0.0", - "trim-repeated": "^1.0.0" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">=6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dependencies": { - "to-regex-range": "^5.0.1" + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "estraverse": "^5.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10" } }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "estraverse": "^5.2.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=4.0" } }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true - }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "dependencies": { - "is-callable": "^1.2.7" - }, + "license": "BSD-2-Clause", "engines": { - "node": ">= 0.4" + "node": ">=4.0" + } + }, + "node_modules/estree-util-attach-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "node_modules/estree-util-build-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", + "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fumadocs-core": { - "version": "15.2.9", - "resolved": "https://registry.npmjs.org/fumadocs-core/-/fumadocs-core-15.2.9.tgz", - "integrity": "sha512-CMclwgXDDdqIA6ZZxEfFvFtkWTN5+X75vIvBlW7BAV4On8oCUOtBl5Whr02rpc7glyKQfOvdKXvHX5xbMHV5WA==", - "dependencies": { - "@formatjs/intl-localematcher": "^0.6.1", - "@orama/orama": "^3.1.6", - "@shikijs/rehype": "^3.2.2", - "@shikijs/transformers": "^3.2.2", - "github-slugger": "^2.0.0", - "hast-util-to-estree": "^3.1.3", - "hast-util-to-jsx-runtime": "^2.3.6", - "image-size": "^2.0.2", - "negotiator": "^1.0.0", - "react-remove-scroll": "^2.6.3", - "remark": "^15.0.0", - "remark-gfm": "^4.0.1", - "scroll-into-view-if-needed": "^3.1.0", - "shiki": "^3.2.2", - "unist-util-visit": "^5.0.0" - }, - "peerDependencies": { - "@oramacloud/client": "1.x.x || 2.x.x", - "algoliasearch": "4.24.0", - "next": "14.x.x || 15.x.x", - "react": "18.x.x || 19.x.x", - "react-dom": "18.x.x || 19.x.x" - }, - "peerDependenciesMeta": { - "@oramacloud/client": { - "optional": true - }, - "algoliasearch": { - "optional": true - }, - "next": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/fumadocs-mdx": { - "version": "11.6.1", - "resolved": "https://registry.npmjs.org/fumadocs-mdx/-/fumadocs-mdx-11.6.1.tgz", - "integrity": "sha512-z+H/eOJC4II0VW7rgf6btqeEkD9DEG1SNToNCYKMklCJAc9Y6l+NuQozKuknP2Ey6NK+Qqhvwhi2MOq38YLSeQ==", - "dependencies": { - "@mdx-js/mdx": "^3.1.0", - "@standard-schema/spec": "^1.0.0", - "chokidar": "^4.0.3", - "cross-spawn": "^7.0.6", - "esbuild": "^0.25.2", - "estree-util-value-to-estree": "^3.3.3", - "fast-glob": "^3.3.3", - "gray-matter": "^4.0.3", - "lru-cache": "^11.1.0", - "picocolors": "^1.1.1", - "unist-util-visit": "^5.0.0", - "zod": "^3.24.3" - }, - "bin": { - "fumadocs-mdx": "bin.js" - }, - "peerDependencies": { - "@fumadocs/mdx-remote": "^1.2.0", - "fumadocs-core": "^14.0.0 || ^15.0.0", - "next": "^15.3.0" - }, - "peerDependenciesMeta": { - "@fumadocs/mdx-remote": { - "optional": true - } + "node_modules/estree-util-scope": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", + "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/fumadocs-mdx/node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "node_modules/estree-util-to-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", + "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" }, - "engines": { - "node": ">=8.6.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/fumadocs-mdx/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/estree-util-value-to-estree": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.5.0.tgz", + "integrity": "sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ==", + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "@types/estree": "^1.0.0" }, - "engines": { - "node": ">= 6" + "funding": { + "url": "https://github.com/sponsors/remcohaszing" } }, - "node_modules/fumadocs-ui": { - "version": "15.2.9", - "resolved": "https://registry.npmjs.org/fumadocs-ui/-/fumadocs-ui-15.2.9.tgz", - "integrity": "sha512-6bCbWEFc19x6sMi1k+bEKWumOhaPN7N//ih0fNF5OUh6GY3Dfa7NUuGHCfyxFRNAz2dcQQ6YL89L9E35fxoHvg==", + "node_modules/estree-util-visit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "license": "MIT", "dependencies": { - "@radix-ui/react-accordion": "^1.2.4", - "@radix-ui/react-collapsible": "^1.1.4", - "@radix-ui/react-dialog": "^1.1.7", - "@radix-ui/react-direction": "^1.1.1", - "@radix-ui/react-navigation-menu": "^1.2.6", - "@radix-ui/react-popover": "^1.1.7", - "@radix-ui/react-scroll-area": "^1.2.4", - "@radix-ui/react-slot": "^1.2.0", - "@radix-ui/react-tabs": "^1.1.4", - "class-variance-authority": "^0.7.1", - "fumadocs-core": "15.2.9", - "lodash.merge": "^4.6.2", - "lucide-react": "^0.488.0", - "next-themes": "^0.4.6", - "postcss-selector-parser": "^7.1.0", - "react-medium-image-zoom": "^5.2.14", - "tailwind-merge": "^3.2.0" - }, - "peerDependencies": { - "next": "14.x.x || 15.x.x", - "react": "18.x.x || 19.x.x", - "react-dom": "18.x.x || 19.x.x", - "tailwindcss": "^3.4.14 || ^4.0.0" + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" }, - "peerDependenciesMeta": { - "tailwindcss": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/fumadocs-ui/node_modules/lucide-react": { - "version": "0.488.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.488.0.tgz", - "integrity": "sha512-ronlL0MyKut4CEzBY/ai2ZpKPxyWO4jUqdAkm2GNK5Zn3Rj+swDz+3lvyAUXN0PNqPKIX6XM9Xadwz/skLs/pQ==", - "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "dev": true, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=16.17" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" + "is-extendable": "^0.1.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "engines": { - "node": ">=6" - } + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, + "license": "MIT", "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": ">= 0.4" + "node": ">=8.6.0" } }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", "dependencies": { - "pump": "^3.0.0" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=6" + "node": ">= 6" } }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "reusify": "^1.0.4" } }, - "node_modules/get-tsconfig": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", - "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", - "dev": true, + "node_modules/fault": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", + "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", + "license": "MIT", "dependencies": { - "resolve-pkg-maps": "^1.0.0" + "format": "^0.2.0" }, "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/github-slugger": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", - "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==" - }, - "node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=12.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { - "is-glob": "^4.0.3" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "peer": true - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { - "type-fest": "^0.20.2" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, + "license": "MIT", "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, "engines": { "node": ">= 0.4" }, @@ -6857,133 +6687,309 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/got": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", - "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", - "dependencies": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.4.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/got/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/got/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", "engines": { - "node": ">=4" + "node": ">=0.4.x" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "node_modules/framer-motion": { + "version": "12.34.0", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.34.0.tgz", + "integrity": "sha512-+/H49owhzkzQyxtn7nZeF4kdH++I2FWrESQ184Zbcw5cEqNHYkE5yxWxcTLSj5lNx3NWdbIRy5FHqUvetD8FWg==", + "license": "MIT", "dependencies": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" + "motion-dom": "^12.34.0", + "motion-utils": "^12.29.2", + "tslib": "^2.4.0" }, - "engines": { - "node": ">=6.0" + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } } }, - "node_modules/gray-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fumadocs-core": { + "version": "16.5.2", + "resolved": "https://registry.npmjs.org/fumadocs-core/-/fumadocs-core-16.5.2.tgz", + "integrity": "sha512-qboEOEiWtL0E++ADaEpXwC4rAi/S3s9gzVzGexPRzds6s3Q8NaNt9NUXc1brRIqLVUrW1mv7fw41rol7ZqF9Xw==", + "license": "MIT", + "dependencies": { + "@formatjs/intl-localematcher": "^0.8.1", + "@orama/orama": "^3.1.18", + "@shikijs/rehype": "^3.22.0", + "@shikijs/transformers": "^3.22.0", + "estree-util-value-to-estree": "^3.5.0", + "github-slugger": "^2.0.0", + "hast-util-to-estree": "^3.1.3", + "hast-util-to-jsx-runtime": "^2.3.6", + "image-size": "^2.0.2", + "negotiator": "^1.0.0", + "npm-to-yarn": "^3.0.1", + "path-to-regexp": "^8.3.0", + "remark": "^15.0.1", + "remark-gfm": "^4.0.1", + "remark-rehype": "^11.1.2", + "scroll-into-view-if-needed": "^3.1.0", + "shiki": "^3.22.0", + "tinyglobby": "^0.2.15", + "unified": "^11.0.5", + "unist-util-visit": "^5.1.0", + "vfile": "^6.0.3" + }, + "peerDependencies": { + "@mdx-js/mdx": "*", + "@mixedbread/sdk": "^0.46.0", + "@orama/core": "1.x.x", + "@oramacloud/client": "2.x.x", + "@tanstack/react-router": "1.x.x", + "@types/estree-jsx": "*", + "@types/hast": "*", + "@types/mdast": "*", + "@types/react": "*", + "algoliasearch": "5.x.x", + "lucide-react": "*", + "mdast-util-mdx-jsx": "*", + "next": "16.x.x", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "react-router": "7.x.x", + "waku": "^0.26.0 || ^0.27.0 || ^1.0.0", + "zod": "4.x.x" + }, + "peerDependenciesMeta": { + "@mdx-js/mdx": { + "optional": true + }, + "@mixedbread/sdk": { + "optional": true + }, + "@orama/core": { + "optional": true + }, + "@oramacloud/client": { + "optional": true + }, + "@tanstack/react-router": { + "optional": true + }, + "@types/estree-jsx": { + "optional": true + }, + "@types/hast": { + "optional": true + }, + "@types/mdast": { + "optional": true + }, + "@types/react": { + "optional": true + }, + "algoliasearch": { + "optional": true + }, + "lucide-react": { + "optional": true + }, + "mdast-util-mdx-jsx": { + "optional": true + }, + "next": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "react-router": { + "optional": true + }, + "waku": { + "optional": true + }, + "zod": { + "optional": true + } } }, - "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "node_modules/fumadocs-mdx": { + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/fumadocs-mdx/-/fumadocs-mdx-14.2.7.tgz", + "integrity": "sha512-Q2W79F7wpwhq4HoYPw9GnMpf5ZmpdU7YzZND7EWwwOiWddfyzPh6EH/z7MFhhdhsTqRh9/kwwsu9XslWDRRPsg==", + "license": "MIT", + "dependencies": { + "@mdx-js/mdx": "^3.1.1", + "@standard-schema/spec": "^1.1.0", + "chokidar": "^5.0.0", + "esbuild": "^0.27.3", + "estree-util-value-to-estree": "^3.5.0", + "js-yaml": "^4.1.1", + "mdast-util-to-markdown": "^2.1.2", + "picocolors": "^1.1.1", + "picomatch": "^4.0.3", + "remark-mdx": "^3.1.1", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "unified": "^11.0.5", + "unist-util-remove-position": "^5.0.0", + "unist-util-visit": "^5.1.0", + "vfile": "^6.0.3", + "zod": "^4.3.6" }, "bin": { - "js-yaml": "bin/js-yaml.js" + "fumadocs-mdx": "dist/bin.js" + }, + "peerDependencies": { + "@fumadocs/mdx-remote": "^1.4.0", + "@types/mdast": "*", + "@types/mdx": "*", + "@types/react": "*", + "fumadocs-core": "^15.0.0 || ^16.0.0", + "mdast-util-directive": "*", + "mdast-util-mdx-jsx": "*", + "next": "^15.3.0 || ^16.0.0", + "react": "*", + "vite": "6.x.x || 7.x.x" + }, + "peerDependenciesMeta": { + "@fumadocs/mdx-remote": { + "optional": true + }, + "@types/mdast": { + "optional": true + }, + "@types/mdx": { + "optional": true + }, + "@types/react": { + "optional": true + }, + "mdast-util-directive": { + "optional": true + }, + "mdast-util-mdx-jsx": { + "optional": true + }, + "next": { + "optional": true + }, + "react": { + "optional": true + }, + "vite": { + "optional": true + } } }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "dev": true, - "engines": { - "node": ">= 0.4" + "node_modules/fumadocs-ui": { + "version": "16.5.2", + "resolved": "https://registry.npmjs.org/fumadocs-ui/-/fumadocs-ui-16.5.2.tgz", + "integrity": "sha512-CAugxxcmpTk2gxmFPWVGDTxCPUj0zsNkGyjmdYykLbF3El+ssJFOcj8TQFXTnpCpa8J09mYeCLOOponumQiLlw==", + "license": "MIT", + "dependencies": { + "@fumadocs/tailwind": "0.0.2", + "@radix-ui/react-accordion": "^1.2.12", + "@radix-ui/react-collapsible": "^1.1.12", + "@radix-ui/react-dialog": "^1.1.15", + "@radix-ui/react-direction": "^1.1.1", + "@radix-ui/react-navigation-menu": "^1.2.14", + "@radix-ui/react-popover": "^1.1.15", + "@radix-ui/react-presence": "^1.1.5", + "@radix-ui/react-scroll-area": "^1.2.10", + "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-tabs": "^1.1.13", + "class-variance-authority": "^0.7.1", + "lucide-react": "^0.563.0", + "motion": "^12.33.0", + "next-themes": "^0.4.6", + "react-medium-image-zoom": "^5.4.0", + "react-remove-scroll": "^2.7.2", + "scroll-into-view-if-needed": "^3.1.0", + "tailwind-merge": "^3.4.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@types/react": "*", + "fumadocs-core": "16.5.2", + "next": "16.x.x", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "tailwindcss": "^4.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "next": { + "optional": true + }, + "tailwindcss": { + "optional": true + } } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" + "node_modules/fumadocs-ui/node_modules/@radix-ui/react-slot": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz", + "integrity": "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, - "dependencies": { - "es-define-property": "^1.0.0" - }, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, + "license": "MIT", "dependencies": { - "dunder-proto": "^1.0.0" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -6992,44 +6998,43 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "engines": { - "node": "*" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, - "engines": { - "node": ">= 0.4" - }, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dependencies": { - "has-symbol-support-x": "^1.4.1" - }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">= 0.4" } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-symbols": "^1.0.3" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -7038,273 +7043,275 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.2" + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" } }, - "node_modules/hast-util-to-estree": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", - "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", - "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": "^7.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-js": "^1.0.0", - "unist-util-position": "^5.0.0", - "zwitch": "^2.0.0" + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "license": "MIT", + "engines": { + "node": ">=16" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/hast-util-to-html": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", - "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-whitespace": "^3.0.0", - "html-void-elements": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "property-information": "^7.0.0", - "space-separated-tokens": "^2.0.0", - "stringify-entities": "^4.0.0", - "zwitch": "^2.0.4" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", - "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "node_modules/get-tsconfig": { + "version": "4.13.6", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz", + "integrity": "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==", + "dev": true, + "license": "MIT", "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": "^7.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-js": "^1.0.0", - "unist-util-position": "^5.0.0", - "vfile-message": "^4.0.0" + "resolve-pkg-maps": "^1.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "node_modules/hast-util-to-string": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", - "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "license": "ISC" + }, + "node_modules/glob": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.1.tgz", + "integrity": "sha512-B7U/vJpE3DkJ5WXTgTpTRN63uV42DseiXXKMwG14LQBXmsdeIoHAPbU/MEo6II0k5ED74uc2ZGTC6MwHFQhF6w==", + "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "@types/hast": "^3.0.0" + "minimatch": "^10.1.2", + "minipass": "^7.1.2", + "path-scurry": "^2.0.0" + }, + "engines": { + "node": "20 || >=22" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", "dependencies": { - "@types/hast": "^3.0.0" + "is-glob": "^4.0.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=10.13.0" } }, - "node_modules/html-void-elements": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", - "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "node_modules/glob/node_modules/minimatch": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.2.tgz", + "integrity": "sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/brace-expansion": "^5.0.1" + }, + "engines": { + "node": "20 || >=22" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, "engines": { - "node": ">= 4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/image-size": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-2.0.2.tgz", - "integrity": "sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==", - "bin": { - "image-size": "bin/image-size.js" + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { - "node": ">=16.x" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", "dev": true, + "license": "MIT", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, "engines": { - "node": ">=0.8.19" + "node": ">=6.0" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "node_modules/gray-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "sprintf-js": "~1.0.2" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "node_modules/gray-matter/node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } }, - "node_modules/inline-style-parser": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", - "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==" + "node_modules/hachure-fill": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz", + "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==", + "license": "MIT" }, - "node_modules/internal-slot": { + "node_modules/has-bigints": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, + "license": "MIT", "engines": { "node": ">= 0.4" - } - }, - "node_modules/into-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", - "integrity": "sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==", - "dependencies": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" + "es-define-property": "^1.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" + "dunder-proto": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -7313,24 +7320,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "optional": true - }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -7338,13 +7333,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, + "license": "MIT", "dependencies": { - "has-bigints": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -7353,337 +7349,458 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" + "function-bind": "^1.1.2" }, "engines": { "node": ">= 0.4" + } + }, + "node_modules/hast-util-from-dom": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-5.0.1.tgz", + "integrity": "sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==", + "license": "ISC", + "dependencies": { + "@types/hast": "^3.0.0", + "hastscript": "^9.0.0", + "web-namespaces": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" + "node_modules/hast-util-from-html": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", + "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.1.0", + "hast-util-from-parse5": "^8.0.0", + "parse5": "^7.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-bun-module": { + "node_modules/hast-util-from-html-isomorphic": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", - "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", - "dev": true, + "resolved": "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz", + "integrity": "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==", + "license": "MIT", "dependencies": { - "semver": "^7.7.1" + "@types/hast": "^3.0.0", + "hast-util-from-dom": "^5.0.0", + "hast-util-from-html": "^2.0.0", + "unist-util-remove-position": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" + "node_modules/hast-util-from-parse5": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", + "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", + "license": "MIT", + "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": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "license": "MIT", "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "dev": true, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" + "@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": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "dev": true, + "node_modules/hast-util-to-parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz", + "integrity": "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==", + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "node_modules/hast-util-to-string": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", + "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "dev": true, + "node_modules/hast-util-to-text": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", + "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unist-util-find-after": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-generator-function": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", - "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", - "dev": true, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" + "@types/hast": "^3.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/hastscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "license": "MIT", "dependencies": { - "is-extglob": "^2.1.1" + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-hexadecimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-natural-number": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==" - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "license": "Apache-2.0", "engines": { - "node": ">=0.12.0" + "node": ">=16.17.0" } }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dev": true, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 4" } }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "engines": { - "node": ">=12" + "node_modules/image-size": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-2.0.2.tgz", + "integrity": "sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==", + "license": "MIT", + "bin": { + "image-size": "bin/image-size.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-reference": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", - "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", - "dependencies": { - "@types/estree": "^1.0.6" + "engines": { + "node": ">=16.x" } }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=0.8.19" } }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/inline-style-parser": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", + "license": "MIT" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3" + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, + "license": "MIT", "dependencies": { + "call-bind": "^1.0.8", "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -7692,14 +7809,17 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" }, "engines": { @@ -7709,13 +7829,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, + "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.16" + "has-bigints": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -7724,11 +7845,16 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, "engines": { "node": ">= 0.4" }, @@ -7736,14 +7862,22 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3" - }, + "semver": "^7.7.1" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -7751,14 +7885,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -7767,1166 +7901,1282 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/iterator.prototype": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", - "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dev": true, + "license": "MIT", "dependencies": { - "define-data-property": "^1.1.4", - "es-object-atoms": "^1.0.0", + "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", - "get-proto": "^1.0.0", - "has-symbols": "^1.1.0", - "set-function-name": "^2.0.2" + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "peer": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" }, - "engines": { - "node": ">= 10.13.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "peer": true, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jiti": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", - "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", - "dev": true, - "bin": { - "jiti": "lib/jiti-cli.mjs" + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", "bin": { - "js-yaml": "bin/js-yaml.js" + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "peer": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dev": true, + "license": "MIT", "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" + "call-bound": "^1.0.3" }, "engines": { - "node": ">=4.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", "dev": true, + "license": "MIT", "dependencies": { - "json-buffer": "3.0.1" + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "engines": { - "node": ">=6" + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/language-subtag-registry": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", - "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", - "dev": true - }, - "node_modules/language-tags": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", - "dev": true, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", "dependencies": { - "language-subtag-registry": "^0.3.20" + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" }, "engines": { - "node": ">=0.10" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "license": "MIT", + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lightningcss": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz", - "integrity": "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, + "license": "MIT", "dependencies": { - "detect-libc": "^2.0.3" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-darwin-arm64": "1.29.2", - "lightningcss-darwin-x64": "1.29.2", - "lightningcss-freebsd-x64": "1.29.2", - "lightningcss-linux-arm-gnueabihf": "1.29.2", - "lightningcss-linux-arm64-gnu": "1.29.2", - "lightningcss-linux-arm64-musl": "1.29.2", - "lightningcss-linux-x64-gnu": "1.29.2", - "lightningcss-linux-x64-musl": "1.29.2", - "lightningcss-win32-arm64-msvc": "1.29.2", - "lightningcss-win32-x64-msvc": "1.29.2" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz", - "integrity": "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==", - "cpu": [ - "arm64" - ], + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "license": "MIT", "engines": { - "node": ">= 12.0.0" + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz", - "integrity": "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==", - "cpu": [ - "x64" - ], + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, "engines": { - "node": ">= 12.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz", - "integrity": "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==", - "cpu": [ - "x64" - ], + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, - "optional": true, - "os": [ - "freebsd" - ], + "license": "MIT", "engines": { - "node": ">= 12.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz", - "integrity": "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==", - "cpu": [ - "arm" - ], + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, "engines": { - "node": ">= 12.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz", - "integrity": "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", "engines": { - "node": ">= 12.0.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz", - "integrity": "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==", - "cpu": [ - "arm64" - ], + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, "engines": { - "node": ">= 12.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz", - "integrity": "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==", - "cpu": [ - "x64" - ], + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, "engines": { - "node": ">= 12.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz", - "integrity": "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==", - "cpu": [ - "x64" - ], + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, "engines": { - "node": ">= 12.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz", - "integrity": "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==", - "cpu": [ - "arm64" - ], + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, - "optional": true, - "os": [ - "win32" - ], + "license": "MIT", "engines": { - "node": ">= 12.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz", - "integrity": "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==", - "cpu": [ - "x64" - ], + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "dev": true, - "optional": true, - "os": [ - "win32" - ], + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, "engines": { - "node": ">= 12.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "peer": true, - "engines": { - "node": ">=6.11.5" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/loader-utils": { + "node_modules/is-weakset": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { - "node": ">=8.9.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/loader-utils/node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "bin": { - "json5": "lib/cli.js" + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" }, "engines": { - "node": ">=6" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, + "node_modules/is64bit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz", + "integrity": "sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==", + "license": "MIT", "dependencies": { - "p-locate": "^5.0.0" + "system-architecture": "^0.1.0" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", "dev": true, + "license": "MIT", "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/lru-cache": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", - "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", - "engines": { - "node": "20 || >=22" + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" } }, - "node_modules/lucide-react": { - "version": "0.503.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.503.0.tgz", - "integrity": "sha512-HGGkdlPWQ0vTF8jJ5TdIqhQXZi6uh3LnNgfZ8MHiuxFfX3RZeA79r2MW2tHAZKlAVfoNE8esm3p+O6VkIvpj6w==", - "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "argparse": "^2.0.1" }, - "engines": { - "node": ">=6" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, "bin": { - "semver": "bin/semver" + "json5": "lib/cli.js" } }, - "node_modules/markdown-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", - "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, "engines": { - "node": ">=16" + "node": ">=4.0" + } + }, + "node_modules/katex": { + "version": "0.16.28", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.28.tgz", + "integrity": "sha512-YHzO7721WbmAL6Ov1uzN/l5mY5WWWhJBSW+jq4tkfZfsxmo1hu6frS0EOswvjBUnWE6NtjEs48SFn5CQESRLZg==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "katex": "cli.js" } }, - "node_modules/markdown-table": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", - "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" } }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "node_modules/khroma": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", + "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==" + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" } }, - "node_modules/mdast-util-definitions": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", - "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", + "node_modules/langium": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/langium/-/langium-3.3.1.tgz", + "integrity": "sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==", + "license": "MIT", "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "unist-util-visit": "^4.0.0" + "chevrotain": "~11.0.3", + "chevrotain-allstar": "~0.3.0", + "vscode-languageserver": "~9.0.1", + "vscode-languageserver-textdocument": "~1.0.11", + "vscode-uri": "~3.0.8" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/mdast-util-definitions/node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "license": "MIT", "dependencies": { - "@types/unist": "^2" + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" } }, - "node_modules/mdast-util-definitions/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" + "node_modules/layout-base": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", + "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==", + "license": "MIT" }, - "node_modules/mdast-util-definitions/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/mdast-util-definitions/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "node_modules/lightningcss": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", + "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==", + "dev": true, + "license": "MPL-2.0", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.30.2", + "lightningcss-darwin-arm64": "1.30.2", + "lightningcss-darwin-x64": "1.30.2", + "lightningcss-freebsd-x64": "1.30.2", + "lightningcss-linux-arm-gnueabihf": "1.30.2", + "lightningcss-linux-arm64-gnu": "1.30.2", + "lightningcss-linux-arm64-musl": "1.30.2", + "lightningcss-linux-x64-gnu": "1.30.2", + "lightningcss-linux-x64-musl": "1.30.2", + "lightningcss-win32-arm64-msvc": "1.30.2", + "lightningcss-win32-x64-msvc": "1.30.2" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz", + "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/parcel" } }, - "node_modules/mdast-util-find-and-replace": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", - "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", - "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" + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz", + "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/parcel" } }, - "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "node_modules/lightningcss-darwin-x64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz", + "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=12" + "node": ">= 12.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/mdast-util-from-markdown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", - "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", - "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" + "node_modules/lightningcss-freebsd-x64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz", + "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/parcel" } }, - "node_modules/mdast-util-gfm": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", - "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", - "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" + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz", + "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/parcel" } }, - "node_modules/mdast-util-gfm-autolink-literal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", - "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", - "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" + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz", + "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/parcel" } }, - "node_modules/mdast-util-gfm-footnote": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", - "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" + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz", + "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/parcel" } }, - "node_modules/mdast-util-gfm-strikethrough": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", - "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" + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz", + "integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/parcel" } }, - "node_modules/mdast-util-gfm-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", - "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" + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz", + "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/parcel" } }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", - "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" + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz", + "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/parcel" } }, - "node_modules/mdast-util-mdx": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", - "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" + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz", + "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/parcel" } }, - "node_modules/mdast-util-mdx-expression": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", - "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", "dependencies": { - "@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" + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mdast-util-mdx-jsx": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", - "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", - "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-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, + "node_modules/lodash-es": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.23.tgz", + "integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/mdast-util-mdxjs-esm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", - "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "license": "MIT", "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" + "js-tokens": "^3.0.0 || ^4.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "bin": { + "loose-envify": "cli.js" } }, - "node_modules/mdast-util-phrasing": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "node_modules/lru-cache": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz", + "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/lucide-react": { + "version": "0.563.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.563.0.tgz", + "integrity": "sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "license": "MIT", + "engines": { + "node": ">=16" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mdast-util-to-hast": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", - "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", - "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" - }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/mdast-util-to-markdown": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", - "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", - "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-classify-character": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" + "node_modules/marked": { + "version": "16.4.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-16.4.2.tgz", + "integrity": "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">= 20" } }, - "node_modules/mdast-util-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mathjax-full": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/mathjax-full/-/mathjax-full-3.2.2.tgz", + "integrity": "sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==", + "deprecated": "Version 4 replaces this package with the scoped package @mathjax/src", + "license": "Apache-2.0", "dependencies": { - "@types/mdast": "^4.0.0" + "esm": "^3.2.25", + "mhchemparser": "^4.1.0", + "mj-context-menu": "^0.6.1", + "speech-rule-engine": "^4.0.6" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", + "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" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "peer": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/micromark": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", - "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "license": "MIT", "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.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", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", + "micromark-util-decode-string": "^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" + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-core-commonmark": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", - "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/mdast-util-frontmatter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", + "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", + "license": "MIT", "dependencies": { - "decode-named-character-reference": "^1.0.0", + "@types/mdast": "^4.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" + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", - "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", "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" + "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" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", - "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", "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" + "@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" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-gfm-footnote": { + "node_modules/mdast-util-gfm-footnote": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", "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" + "@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" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-gfm-strikethrough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", - "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", "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" + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-gfm-table": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", - "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", "dependencies": { + "@types/mdast": "^4.0.0", "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" + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-gfm-tagfilter": { + "node_modules/mdast-util-gfm-task-list-item": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", - "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", "dependencies": { - "micromark-util-types": "^2.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" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-gfm-task-list-item": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", - "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "node_modules/mdast-util-math": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz", + "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==", + "license": "MIT", "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", "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" + "longest-streak": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.1.0", + "unist-util-remove-position": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-mdx-expression": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", - "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/mdast-util-mdx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "license": "MIT", "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" + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-mdx-jsx": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", - "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.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-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", + "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-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" }, "funding": { @@ -8934,226 +9184,146 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-mdx-md": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", - "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", "dependencies": { - "micromark-util-types": "^2.0.0" + "@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" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-mdxjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", - "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", "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" + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-mdxjs-esm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", - "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^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-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" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-factory-destination": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", - "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-label": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", - "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-mdx-expression": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", - "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.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", - "unist-util-position-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - } - }, - "node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", - "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", "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" + "@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-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-factory-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", - "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", "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" + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" }, - "node_modules/micromark-util-chunked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", - "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^2.0.0" + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" } }, - "node_modules/micromark-util-classify-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", - "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "node_modules/mermaid": { + "version": "11.12.2", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.12.2.tgz", + "integrity": "sha512-n34QPDPEKmaeCG4WDMGy0OT6PSyxKCfy2pJgShP+Qow2KLrvWjclwbc3yXfSIf4BanqWEhQEpngWwNp/XhZt6w==", + "license": "MIT", + "dependencies": { + "@braintree/sanitize-url": "^7.1.1", + "@iconify/utils": "^3.0.1", + "@mermaid-js/parser": "^0.6.3", + "@types/d3": "^7.4.3", + "cytoscape": "^3.29.3", + "cytoscape-cose-bilkent": "^4.1.0", + "cytoscape-fcose": "^2.2.0", + "d3": "^7.9.0", + "d3-sankey": "^0.12.3", + "dagre-d3-es": "7.0.13", + "dayjs": "^1.11.18", + "dompurify": "^3.2.5", + "katex": "^0.16.22", + "khroma": "^2.1.0", + "lodash-es": "^4.17.21", + "marked": "^16.2.1", + "roughjs": "^4.6.6", + "stylis": "^4.3.6", + "ts-dedent": "^2.2.0", + "uuid": "^11.1.0" + } + }, + "node_modules/mhchemparser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/mhchemparser/-/mhchemparser-4.2.1.tgz", + "integrity": "sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==", + "license": "Apache-2.0" + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", "funding": [ { "type": "GitHub Sponsors", @@ -9164,16 +9334,31 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "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" } }, - "node_modules/micromark-util-combine-extensions": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", - "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", "funding": [ { "type": "GitHub Sponsors", @@ -9184,164 +9369,186 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "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" } }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", - "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/micromark-extension-frontmatter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", + "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", + "license": "MIT", "dependencies": { - "micromark-util-symbol": "^2.0.0" + "fault": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-util-decode-string": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", - "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", "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-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-util-encode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", - "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/micromark-util-events-to-acorn": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", - "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0", - "@types/unist": "^3.0.0", "devlop": "^1.0.0", - "estree-util-visit": "^2.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", - "vfile-message": "^4.0.0" + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-util-html-tag-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", - "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", - "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", "dependencies": { - "micromark-util-symbol": "^2.0.0" + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-util-resolve-all": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", - "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", - "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/micromark-extension-math": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz", + "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==", + "license": "MIT", "dependencies": { + "@types/katex": "^0.16.0", + "devlop": "^1.0.0", + "katex": "^0.16.0", + "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-util-subtokenize": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", - "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "node_modules/micromark-extension-mdx-expression": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", + "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9352,540 +9559,507 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { + "@types/estree": "^1.0.0", "devlop": "^1.0.0", - "micromark-util-chunked": "^2.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" } }, - "node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", - "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", + "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", + "license": "MIT", "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" + "@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-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "engines": { - "node": ">= 0.6" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "peer": true, + "node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "license": "MIT", "dependencies": { - "mime-db": "1.52.0" + "micromark-util-types": "^2.0.0" }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "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" }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/napi-postinstall": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.1.5.tgz", - "integrity": "sha512-HI5bHONOUYqV+FJvueOSgjRxHTLB25a3xIv59ugAxFe7xRNbW96hyYbMbsKzl+QvFV9mN/SrtHwiU+vYhMwA7Q==", - "dev": true, - "bin": { - "napi-postinstall": "lib/cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + "node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "license": "MIT", + "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" }, "funding": { - "url": "https://opencollective.com/napi-postinstall" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", - "engines": { - "node": ">= 0.6" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "peer": true - }, - "node_modules/next": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/next/-/next-15.3.1.tgz", - "integrity": "sha512-8+dDV0xNLOgHlyBxP1GwHGVaNXsmp+2NhZEYrXr24GWLHtt27YrBPbPuHvzlhi7kZNYjeJNR93IF5zfFu5UL0g==", - "dependencies": { - "@next/env": "15.3.1", - "@swc/counter": "0.1.3", - "@swc/helpers": "0.5.15", - "busboy": "1.6.0", - "caniuse-lite": "^1.0.30001579", - "postcss": "8.4.31", - "styled-jsx": "5.1.6" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" - }, - "optionalDependencies": { - "@next/swc-darwin-arm64": "15.3.1", - "@next/swc-darwin-x64": "15.3.1", - "@next/swc-linux-arm64-gnu": "15.3.1", - "@next/swc-linux-arm64-musl": "15.3.1", - "@next/swc-linux-x64-gnu": "15.3.1", - "@next/swc-linux-x64-musl": "15.3.1", - "@next/swc-win32-arm64-msvc": "15.3.1", - "@next/swc-win32-x64-msvc": "15.3.1", - "sharp": "^0.34.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.1.0", - "@playwright/test": "^1.41.2", - "babel-plugin-react-compiler": "*", - "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", - "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "@opentelemetry/api": { - "optional": true - }, - "@playwright/test": { - "optional": true - }, - "babel-plugin-react-compiler": { - "optional": true + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" }, - "sass": { - "optional": true + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/next-themes": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz", - "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==", - "peerDependencies": { - "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" - } - }, - "node_modules/next/node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", "funding": [ { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" }, { - "type": "github", - "url": "https://github.com/sponsors/ai" + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/nextra": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/nextra/-/nextra-1.1.0.tgz", - "integrity": "sha512-WxD1c05gs4cyPHWvqOei9ofIQkLjtzQaDQo8+56f5ss7yJ6ZyI7Ohx7nyyjm6yTo1fO8gfj3v1l/AZmLnjh4FA==", + "node_modules/micromark-factory-mdx-expression": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", + "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "@mdx-js/loader": "^2.0.0-next.9", - "download": "^8.0.0", - "graceful-fs": "^4.2.6", - "gray-matter": "^4.0.3", - "loader-utils": "^2.0.0", - "remark": "^13.0.0", - "remark-gfm": "^1.0.0", - "slash": "^3.0.0", - "strip-markdown": "^4.0.0" - }, - "peerDependencies": { - "react": ">=16.13.1" + "@types/estree": "^1.0.0", + "devlop": "^1.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", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" } }, - "node_modules/nextra/node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/nextra/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" - }, - "node_modules/nextra/node_modules/bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/nextra/node_modules/ccount": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", - "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/nextra/node_modules/character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/nextra/node_modules/character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/nextra/node_modules/character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/nextra/node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/nextra/node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/nextra/node_modules/is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/nextra/node_modules/is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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" } }, - "node_modules/nextra/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "engines": { - "node": ">=8" + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/nextra/node_modules/longest-streak": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/nextra/node_modules/markdown-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "repeat-string": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/nextra/node_modules/mdast-util-find-and-replace": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz", - "integrity": "sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==", + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "escape-string-regexp": "^4.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/nextra/node_modules/mdast-util-from-markdown": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", - "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/nextra/node_modules/mdast-util-gfm": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz", - "integrity": "sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ==", + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "mdast-util-gfm-autolink-literal": "^0.1.0", - "mdast-util-gfm-strikethrough": "^0.2.0", - "mdast-util-gfm-table": "^0.1.0", - "mdast-util-gfm-task-list-item": "^0.1.0", - "mdast-util-to-markdown": "^0.6.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "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" } }, - "node_modules/nextra/node_modules/mdast-util-gfm-autolink-literal": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz", - "integrity": "sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A==", + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-events-to-acorn": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", + "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "ccount": "^1.0.0", - "mdast-util-find-and-replace": "^1.1.0", - "micromark": "^2.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "@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" } }, - "node_modules/nextra/node_modules/mdast-util-gfm-strikethrough": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz", - "integrity": "sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==", + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "mdast-util-to-markdown": "^0.6.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/nextra/node_modules/mdast-util-gfm-table": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz", - "integrity": "sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==", + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "markdown-table": "^2.0.0", - "mdast-util-to-markdown": "~0.6.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "micromark-util-types": "^2.0.0" } }, - "node_modules/nextra/node_modules/mdast-util-gfm-task-list-item": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz", - "integrity": "sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==", + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "mdast-util-to-markdown": "~0.6.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/nextra/node_modules/mdast-util-to-markdown": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", - "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0", - "longest-streak": "^2.0.0", - "mdast-util-to-string": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.0.0", - "zwitch": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/nextra/node_modules/mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" }, - "node_modules/nextra/node_modules/micromark": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", - "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", "funding": [ { "type": "GitHub Sponsors", @@ -9896,273 +10070,434 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", "dependencies": { - "debug": "^4.0.0", - "parse-entities": "^2.0.0" + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" } }, - "node_modules/nextra/node_modules/micromark-extension-gfm": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz", - "integrity": "sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A==", + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", "dependencies": { - "micromark": "~2.11.0", - "micromark-extension-gfm-autolink-literal": "~0.5.0", - "micromark-extension-gfm-strikethrough": "~0.6.5", - "micromark-extension-gfm-table": "~0.4.0", - "micromark-extension-gfm-tagfilter": "~0.3.0", - "micromark-extension-gfm-task-list-item": "~0.3.0" + "brace-expansion": "^1.1.7" }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/nextra/node_modules/micromark-extension-gfm-autolink-literal": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz", - "integrity": "sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==", - "dependencies": { - "micromark": "~2.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" } }, - "node_modules/nextra/node_modules/micromark-extension-gfm-strikethrough": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz", - "integrity": "sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==", + "node_modules/mj-context-menu": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/mj-context-menu/-/mj-context-menu-0.6.1.tgz", + "integrity": "sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==", + "license": "Apache-2.0" + }, + "node_modules/mlly": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", + "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", + "license": "MIT", "dependencies": { - "micromark": "~2.11.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "acorn": "^8.15.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.1" } }, - "node_modules/nextra/node_modules/micromark-extension-gfm-table": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz", - "integrity": "sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==", + "node_modules/motion": { + "version": "12.34.0", + "resolved": "https://registry.npmjs.org/motion/-/motion-12.34.0.tgz", + "integrity": "sha512-01Sfa/zgsD/di8zA/uFW5Eb7/SPXoGyUfy+uMRMW5Spa8j0z/UbfQewAYvPMYFCXRlyD6e5aLHh76TxeeJD+RA==", + "license": "MIT", "dependencies": { - "micromark": "~2.11.0" + "framer-motion": "^12.34.0", + "tslib": "^2.4.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/nextra/node_modules/micromark-extension-gfm-tagfilter": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz", - "integrity": "sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } } }, - "node_modules/nextra/node_modules/micromark-extension-gfm-task-list-item": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz", - "integrity": "sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==", + "node_modules/motion-dom": { + "version": "12.34.0", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.34.0.tgz", + "integrity": "sha512-Lql3NuEcScRDxTAO6GgUsRHBZOWI/3fnMlkMcH5NftzcN37zJta+bpbMAV9px4Nj057TuvRooMK7QrzMCgtz6Q==", + "license": "MIT", "dependencies": { - "micromark": "~2.11.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "motion-utils": "^12.29.2" } }, - "node_modules/nextra/node_modules/parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" + "node_modules/motion-utils": { + "version": "12.29.2", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.29.2.tgz", + "integrity": "sha512-G3kc34H2cX2gI63RqU+cZq+zWRRPSsNIOjpdl9TN4AQwC4sgwYPl/Q/Obf/d53nOm569T0fYK+tcoSV50BWx8A==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/nextra/node_modules/remark": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", - "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", - "dependencies": { - "remark-parse": "^9.0.0", - "remark-stringify": "^9.0.0", - "unified": "^9.1.0" + "node_modules/napi-postinstall": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/napi-postinstall" } }, - "node_modules/nextra/node_modules/remark-gfm": { + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz", - "integrity": "sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==", - "dependencies": { - "mdast-util-gfm": "^0.1.0", - "micromark-extension-gfm": "^0.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "node_modules/nextra/node_modules/remark-parse": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", - "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", + "node_modules/next": { + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/next/-/next-16.1.6.tgz", + "integrity": "sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw==", + "license": "MIT", "dependencies": { - "mdast-util-from-markdown": "^0.8.0" + "@next/env": "16.1.6", + "@swc/helpers": "0.5.15", + "baseline-browser-mapping": "^2.8.3", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/nextra/node_modules/remark-stringify": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", - "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", - "dependencies": { - "mdast-util-to-markdown": "^0.6.0" + "bin": { + "next": "dist/bin/next" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=20.9.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "16.1.6", + "@next/swc-darwin-x64": "16.1.6", + "@next/swc-linux-arm64-gnu": "16.1.6", + "@next/swc-linux-arm64-musl": "16.1.6", + "@next/swc-linux-x64-gnu": "16.1.6", + "@next/swc-linux-x64-musl": "16.1.6", + "@next/swc-win32-arm64-msvc": "16.1.6", + "@next/swc-win32-x64-msvc": "16.1.6", + "sharp": "^0.34.4" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.51.1", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } } }, - "node_modules/nextra/node_modules/trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/next-themes": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz", + "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" } }, - "node_modules/nextra/node_modules/unified": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", - "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": "^10 || ^12 || >=14" } }, - "node_modules/nextra/node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/nextra": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/nextra/-/nextra-4.6.1.tgz", + "integrity": "sha512-yz5WMJFZ5c58y14a6Rmwt+SJUYDdIgzWSxwtnpD4XAJTq3mbOqOg3VTaJqLiJjwRSxoFRHNA1yAhnhbvbw9zSg==", + "license": "MIT", + "dependencies": { + "@formatjs/intl-localematcher": "^0.6.0", + "@headlessui/react": "^2.1.2", + "@mdx-js/mdx": "^3.0.0", + "@napi-rs/simple-git": "^0.1.9", + "@shikijs/twoslash": "^3.2.1", + "@theguild/remark-mermaid": "^0.3.0", + "@theguild/remark-npm2yarn": "^0.3.2", + "better-react-mathjax": "^2.3.0", + "clsx": "^2.1.0", + "estree-util-to-js": "^2.0.0", + "estree-util-value-to-estree": "^3.3.3", + "fast-glob": "^3.3.2", + "github-slugger": "^2.0.0", + "hast-util-to-estree": "^3.1.0", + "katex": "^0.16.21", + "mdast-util-from-markdown": "^2.0.1", + "mdast-util-gfm": "^3.0.0", + "mdast-util-to-hast": "^13.2.0", + "negotiator": "^1.0.0", + "react-compiler-runtime": "^19.1.0-rc.2", + "react-medium-image-zoom": "^5.2.12", + "rehype-katex": "^7.0.0", + "rehype-pretty-code": "0.14.1", + "rehype-raw": "^7.0.0", + "remark-frontmatter": "^5.0.0", + "remark-gfm": "^4.0.0", + "remark-math": "^6.0.0", + "remark-reading-time": "^2.0.2", + "remark-smartypants": "^3.0.0", + "server-only": "^0.0.1", + "shiki": "^3.2.1", + "slash": "^5.1.0", + "title": "^4.0.1", + "ts-morph": "^27.0.0", + "unist-util-remove": "^4.0.0", + "unist-util-visit": "^5.0.0", + "unist-util-visit-children": "^3.0.0", + "yaml": "^2.3.2", + "zod": "^4.1.12" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "next": ">=14", + "react": ">=18", + "react-dom": ">=18" } }, - "node_modules/nextra/node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "node_modules/nextra/node_modules/@formatjs/intl-localematcher": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.2.tgz", + "integrity": "sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/nextra/node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", "dependencies": { - "@types/unist": "^2.0.2" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=8.6.0" } }, - "node_modules/nextra/node_modules/unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "node_modules/nextra/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" + "is-glob": "^4.0.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">= 6" } }, - "node_modules/nextra/node_modules/vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "node_modules/nlcst-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", + "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==", + "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" + "@types/nlcst": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/nextra/node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nextra/node_modules/zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "peer": true - }, - "node_modules/normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "dependencies": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" - }, + "node_modules/npm-to-yarn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-to-yarn/-/npm-to-yarn-3.0.1.tgz", + "integrity": "sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==", + "license": "MIT", "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/nebrelbug/npm-to-yarn?sponsor=1" } }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -10172,6 +10507,7 @@ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10184,6 +10520,7 @@ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -10193,6 +10530,7 @@ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -10213,6 +10551,7 @@ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", @@ -10228,6 +10567,7 @@ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -10246,6 +10586,7 @@ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -10260,6 +10601,7 @@ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -10277,22 +10619,40 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/oniguruma-parser": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.11.2.tgz", - "integrity": "sha512-F7Ld4oDZJCI5/wCZ8AOffQbqjSzIRpKH7I/iuSs1SkhZeCj0wS6PMZ4W6VA16TWHrAo0Y9bBKEJOe7tvwcTXnw==" + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz", + "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==", + "license": "MIT" }, "node_modules/oniguruma-to-es": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.2.0.tgz", - "integrity": "sha512-MDPs6KSOLS0tKQ7joqg44dRIRZUyotfTy0r+7oEEs6VwWWP0+E2PPDYWMFN0aqOjRyWHBYq7RfKw9GQk2S2z5g==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.4.tgz", + "integrity": "sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==", + "license": "MIT", "dependencies": { - "emoji-regex-xs": "^1.0.0", - "oniguruma-parser": "^0.11.0", + "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } @@ -10302,6 +10662,7 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -10319,6 +10680,7 @@ "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", @@ -10331,46 +10693,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/p-cancelable": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", - "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-event": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", - "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", - "dependencies": { - "p-timeout": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-is-promise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==", - "engines": { - "node": ">=4" - } - }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -10386,6 +10714,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -10396,22 +10725,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-timeout": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", - "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=4" - } + "node_modules/package-manager-detector": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", + "license": "MIT" }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -10423,6 +10748,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "character-entities-legacy": "^3.0.0", @@ -10440,13 +10766,63 @@ "node_modules/parse-entities/node_modules/@types/unist": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/parse-latin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz", + "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "@types/unist": "^3.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-modify-children": "^4.0.0", + "unist-util-visit-children": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-numeric-range": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", + "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==", + "license": "ISC" + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "license": "MIT" + }, + "node_modules/path-data-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz", + "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==", + "license": "MIT" }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -10456,6 +10832,7 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -10464,6 +10841,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", "engines": { "node": ">=8" } @@ -10472,64 +10850,85 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + "dev": true, + "license": "MIT" }, - "node_modules/periscopic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", - "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "node_modules/path-scurry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", + "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^3.0.0", - "is-reference": "^3.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-to-regexp": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", + "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" + "node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" } }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "engines": { - "node": ">=0.10.0" - } + "node_modules/points-on-curve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz", + "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==", + "license": "MIT" }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "node_modules/points-on-path": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz", + "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==", + "license": "MIT", "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "path-data-parser": "0.1.0", + "points-on-curve": "0.2.0" } }, "node_modules/possible-typed-array-names": { @@ -10537,14 +10936,15 @@ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, "funding": [ { @@ -10560,8 +10960,9 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "nanoid": "^3.3.8", + "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -10570,9 +10971,10 @@ } }, "node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -10586,28 +10988,17 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dev": true, + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -10615,45 +11006,25 @@ } }, "node_modules/property-information": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz", - "integrity": "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -10671,61 +11042,67 @@ "type": "consulting", "url": "https://feross.org/support" } - ] - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "peer": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } + ], + "license": "MIT" }, "node_modules/react": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", - "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", + "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/react-compiler-runtime": { + "version": "19.1.0-rc.3", + "resolved": "https://registry.npmjs.org/react-compiler-runtime/-/react-compiler-runtime-19.1.0-rc.3.tgz", + "integrity": "sha512-Cssogys2XZu6SqxRdX2xd8cQAf57BBvFbLEBlIa77161lninbKUn/EqbecCe7W3eqDQfg3rIoOwzExzgCh7h/g==", + "license": "MIT", + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^0.0.0-experimental" + } + }, "node_modules/react-dom": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", - "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "license": "MIT", "dependencies": { - "scheduler": "^0.26.0" + "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.1.0" + "react": "^19.2.4" } }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/react-medium-image-zoom": { - "version": "5.2.14", - "resolved": "https://registry.npmjs.org/react-medium-image-zoom/-/react-medium-image-zoom-5.2.14.tgz", - "integrity": "sha512-nfTVYcAUnBzXQpPDcZL+cG/e6UceYUIG+zDcnemL7jtAqbJjVVkA85RgneGtJeni12dTyiRPZVM6Szkmwd/o8w==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/react-medium-image-zoom/-/react-medium-image-zoom-5.4.0.tgz", + "integrity": "sha512-BsE+EnFVQzFIlyuuQrZ9iTwyKpKkqdFZV1ImEQN573QPqGrIUuNni7aF+sZwDcxlsuOMayCr6oO/PZR/yJnbRg==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/rpearce" } ], + "license": "BSD-3-Clause", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/react-remove-scroll": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", - "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", + "license": "MIT", "dependencies": { "react-remove-scroll-bar": "^2.3.7", "react-style-singleton": "^2.2.3", @@ -10750,6 +11127,7 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", "dependencies": { "react-style-singleton": "^2.2.2", "tslib": "^2.0.0" @@ -10771,6 +11149,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", "dependencies": { "get-nonce": "^1.0.0", "tslib": "^2.0.0" @@ -10788,46 +11167,30 @@ } } }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "license": "MIT", "engines": { - "node": ">= 14.18.0" + "node": ">= 20.19.0" }, "funding": { "type": "individual", "url": "https://paulmillr.com/funding/" } }, + "node_modules/reading-time": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", + "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==", + "license": "MIT" + }, "node_modules/recma-build-jsx": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-util-build-jsx": "^3.0.0", @@ -10839,9 +11202,10 @@ } }, "node_modules/recma-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", - "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.1.tgz", + "integrity": "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==", + "license": "MIT", "dependencies": { "acorn-jsx": "^5.0.0", "estree-util-to-js": "^2.0.0", @@ -10852,12 +11216,16 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/recma-parse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "esast-util-from-js": "^2.0.0", @@ -10873,6 +11241,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-util-to-js": "^2.0.0", @@ -10889,6 +11258,7 @@ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -10907,9 +11277,10 @@ } }, "node_modules/regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz", - "integrity": "sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", + "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", + "license": "MIT", "dependencies": { "regex-utilities": "^2.3.0" } @@ -10918,6 +11289,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", + "license": "MIT", "dependencies": { "regex-utilities": "^2.3.0" } @@ -10925,13 +11297,15 @@ "node_modules/regex-utilities": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", - "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==" + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "license": "MIT" }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -10947,10 +11321,80 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/rehype-katex": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-7.0.1.tgz", + "integrity": "sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/katex": "^0.16.0", + "hast-util-from-html-isomorphic": "^2.0.0", + "hast-util-to-text": "^4.0.0", + "katex": "^0.16.0", + "unist-util-visit-parents": "^6.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-parse": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.1.tgz", + "integrity": "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-from-html": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-pretty-code": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/rehype-pretty-code/-/rehype-pretty-code-0.14.1.tgz", + "integrity": "sha512-IpG4OL0iYlbx78muVldsK86hdfNoht0z63AP7sekQNW2QOTmjxB7RbTO+rhIYNGRljgHxgVZoPwUl6bIC9SbjA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.4", + "hast-util-to-string": "^3.0.0", + "parse-numeric-range": "^1.3.0", + "rehype-parse": "^9.0.0", + "unified": "^11.0.5", + "unist-util-visit": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "shiki": "^1.0.0 || ^2.0.0 || ^3.0.0" + } + }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/rehype-recma": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", @@ -10965,6 +11409,7 @@ "version": "15.0.1", "resolved": "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz", "integrity": "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "remark-parse": "^11.0.0", @@ -10976,10 +11421,27 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remark-frontmatter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", + "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-frontmatter": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/remark-gfm": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", @@ -10993,10 +11455,27 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remark-math": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz", + "integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-math": "^3.0.0", + "micromark-extension-math": "^3.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/remark-mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", - "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.1.tgz", + "integrity": "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==", + "license": "MIT", "dependencies": { "mdast-util-mdx": "^3.0.0", "micromark-extension-mdxjs": "^3.0.0" @@ -11006,15 +11485,86 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-reading-time": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/remark-reading-time/-/remark-reading-time-2.0.2.tgz", + "integrity": "sha512-ILjIuR0dQQ8pELPgaFvz7ralcSN62rD/L1pTUJgWb4gfua3ZwYEI8mnKGxEQCbrXSUF/OvycTkcUbifGOtOn5A==", + "license": "ISC", + "dependencies": { + "estree-util-is-identifier-name": "^2.0.0", + "estree-util-value-to-estree": "^3.3.3", + "reading-time": "^1.3.0", + "unist-util-visit": "^3.1.0" + } + }, + "node_modules/remark-reading-time/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/remark-reading-time/node_modules/estree-util-is-identifier-name": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz", + "integrity": "sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-reading-time/node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-reading-time/node_modules/unist-util-visit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz", + "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-reading-time/node_modules/unist-util-visit-parents": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", + "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", + "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unified": "^11.0.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" }, "funding": { "type": "opencollective", @@ -11025,6 +11575,7 @@ "version": "11.1.2", "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -11037,10 +11588,26 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remark-smartypants": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-3.0.2.tgz", + "integrity": "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==", + "license": "MIT", + "dependencies": { + "retext": "^9.0.0", + "retext-smartypants": "^6.0.0", + "unified": "^11.0.4", + "unist-util-visit": "^5.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/remark-stringify": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", @@ -11051,30 +11618,14 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.16.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -11093,6 +11644,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -11102,22 +11654,77 @@ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "node_modules/retext": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz", + "integrity": "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "retext-latin": "^4.0.0", + "retext-stringify": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-latin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-4.0.0.tgz", + "integrity": "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "parse-latin": "^7.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-smartypants": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz", + "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==", + "license": "MIT", "dependencies": { - "lowercase-keys": "^1.0.0" + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-stringify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz", + "integrity": "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -11129,6 +11736,7 @@ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -11143,8 +11751,9 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -11160,6 +11769,24 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", + "license": "Unlicense" + }, + "node_modules/roughjs": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz", + "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==", + "license": "MIT", + "dependencies": { + "hachure-fill": "^0.5.2", + "path-data-parser": "^0.1.0", + "points-on-curve": "^0.2.0", + "points-on-path": "^0.2.1" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -11178,26 +11805,23 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" }, "node_modules/safe-array-concat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -11212,30 +11836,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" @@ -11252,6 +11858,7 @@ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -11264,68 +11871,23 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==" - }, - "node_modules/schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "peer": true + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" }, "node_modules/scroll-into-view-if-needed": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "license": "MIT", "dependencies": { "compute-scroll-into-view": "^3.0.2" } @@ -11334,6 +11896,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dev": true, + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "kind-of": "^6.0.0" @@ -11342,23 +11906,12 @@ "node": ">=4" } }, - "node_modules/seek-bzip": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", - "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", - "dependencies": { - "commander": "^2.8.1" - }, - "bin": { - "seek-bunzip": "bin/seek-bunzip", - "seek-table": "bin/seek-bzip-table" - } - }, "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "devOptional": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -11366,20 +11919,18 @@ "node": ">=10" } }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "peer": true, - "dependencies": { - "randombytes": "^2.1.0" - } + "node_modules/server-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/server-only/-/server-only-0.0.1.tgz", + "integrity": "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==", + "license": "MIT" }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -11397,6 +11948,7 @@ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -11412,6 +11964,7 @@ "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", "dev": true, + "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", @@ -11422,15 +11975,16 @@ } }, "node_modules/sharp": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.1.tgz", - "integrity": "sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", "hasInstallScript": true, + "license": "Apache-2.0", "optional": true, "dependencies": { - "color": "^4.2.3", - "detect-libc": "^2.0.3", - "semver": "^7.7.1" + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" @@ -11439,32 +11993,37 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.34.1", - "@img/sharp-darwin-x64": "0.34.1", - "@img/sharp-libvips-darwin-arm64": "1.1.0", - "@img/sharp-libvips-darwin-x64": "1.1.0", - "@img/sharp-libvips-linux-arm": "1.1.0", - "@img/sharp-libvips-linux-arm64": "1.1.0", - "@img/sharp-libvips-linux-ppc64": "1.1.0", - "@img/sharp-libvips-linux-s390x": "1.1.0", - "@img/sharp-libvips-linux-x64": "1.1.0", - "@img/sharp-libvips-linuxmusl-arm64": "1.1.0", - "@img/sharp-libvips-linuxmusl-x64": "1.1.0", - "@img/sharp-linux-arm": "0.34.1", - "@img/sharp-linux-arm64": "0.34.1", - "@img/sharp-linux-s390x": "0.34.1", - "@img/sharp-linux-x64": "0.34.1", - "@img/sharp-linuxmusl-arm64": "0.34.1", - "@img/sharp-linuxmusl-x64": "0.34.1", - "@img/sharp-wasm32": "0.34.1", - "@img/sharp-win32-ia32": "0.34.1", - "@img/sharp-win32-x64": "0.34.1" + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" } }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -11476,21 +12035,23 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shiki": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.3.0.tgz", - "integrity": "sha512-j0Z1tG5vlOFGW8JVj0Cpuatzvshes7VJy5ncDmmMaYcmnGW0Js1N81TOW98ivTFNZfKRn9uwEg/aIm638o368g==", - "dependencies": { - "@shikijs/core": "3.3.0", - "@shikijs/engine-javascript": "3.3.0", - "@shikijs/engine-oniguruma": "3.3.0", - "@shikijs/langs": "3.3.0", - "@shikijs/themes": "3.3.0", - "@shikijs/types": "3.3.0", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.22.0.tgz", + "integrity": "sha512-LBnhsoYEe0Eou4e1VgJACes+O6S6QC0w71fCSp5Oya79inkwkm15gQ1UF6VtQ8j/taMDh79hAB49WUk8ALQW3g==", + "license": "MIT", + "dependencies": { + "@shikijs/core": "3.22.0", + "@shikijs/engine-javascript": "3.22.0", + "@shikijs/engine-oniguruma": "3.22.0", + "@shikijs/langs": "3.22.0", + "@shikijs/themes": "3.22.0", + "@shikijs/types": "3.22.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } @@ -11500,6 +12061,7 @@ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", @@ -11519,6 +12081,7 @@ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" @@ -11535,6 +12098,7 @@ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -11553,6 +12117,7 @@ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -11567,103 +12132,44 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "optional": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", - "dependencies": { - "is-plain-obj": "^1.0.0" - }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", "engines": { - "node": ">=4" - } - }, - "node_modules/sort-keys-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", - "integrity": "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==", - "dependencies": { - "sort-keys": "^1.0.0" + "node": ">=14" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/sort-keys-length/node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "license": "MIT", "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sort-keys-length/node_modules/sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", - "dependencies": { - "is-plain-obj": "^1.0.0" + "node": ">=14.16" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sort-keys/node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", "engines": { - "node": ">= 8" + "node": ">= 12" } }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "peer": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "peer": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -11672,56 +12178,69 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/speech-rule-engine": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/speech-rule-engine/-/speech-rule-engine-4.1.2.tgz", + "integrity": "sha512-S6ji+flMEga+1QU79NDbwZ8Ivf0S/MpupQQiIC0rTpU/ZTKgcajijJJb1OcByBQDjrXCN1/DJtGz4ZJeBMPGJw==", + "license": "Apache-2.0", + "dependencies": { + "@xmldom/xmldom": "0.9.8", + "commander": "13.1.0", + "wicked-good-xpath": "1.3.0" + }, + "bin": { + "sre": "bin/sre" + } + }, + "node_modules/speech-rule-engine/node_modules/commander": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/stable-hash": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", - "dev": true - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "engines": { - "node": ">=10.0.0" - } + "dev": true, + "license": "MIT" }, - "node_modules/strict-uri-encode": { + "node_modules/stop-iteration-iterator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, "node_modules/string.prototype.includes": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -11736,6 +12255,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -11763,6 +12283,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" @@ -11773,6 +12294,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -11794,6 +12316,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -11812,6 +12335,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -11828,6 +12352,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" @@ -11842,6 +12367,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -11854,6 +12380,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -11862,16 +12389,22 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/strip-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", - "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "dependencies": { - "is-natural-number": "^4.0.1" + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/strip-json-comments": { @@ -11879,6 +12412,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -11886,54 +12420,29 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-markdown": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/strip-markdown/-/strip-markdown-4.2.0.tgz", - "integrity": "sha512-sZYHI1KoKOOBfIq78R3E62NHg7kk6aKtZSqiH7wWxFB6Ak6PTZe4N88aJnzjV00Lbfw91oyLpy3baYfTTqNYBA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-outer/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/style-to-js": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz", - "integrity": "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", + "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", + "license": "MIT", "dependencies": { - "style-to-object": "1.0.8" + "style-to-object": "1.0.14" } }, "node_modules/style-to-object": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", - "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", + "license": "MIT", "dependencies": { - "inline-style-parser": "0.2.4" + "inline-style-parser": "0.2.7" } }, "node_modules/styled-jsx": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", "dependencies": { "client-only": "0.0.1" }, @@ -11952,11 +12461,18 @@ } } }, + "node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -11969,6 +12485,7 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11976,125 +12493,79 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tailwind-merge": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.2.0.tgz", - "integrity": "sha512-FQT/OVqCD+7edmmJpsgCsY820RTD5AkBryuG5IUqR5YQZSdj5xlH5nLgH7YPths7WsLPSpSBNneJdM8aS8aeFA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } - }, - "node_modules/tailwindcss": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.4.tgz", - "integrity": "sha512-1ZIUqtPITFbv/DxRmDr5/agPqJwF69d24m9qmM1939TJehgY539CtzeZRjbLt5G6fSy/7YqqYsfvoTEw9xUI2A==", - "devOptional": true - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "node_modules/system-architecture": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz", + "integrity": "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==", + "license": "MIT", "engines": { - "node": ">=6" - } - }, - "node_modules/tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dependencies": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" + "node": ">=18" }, - "engines": { - "node": ">= 0.8.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/terser": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", - "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", - "peer": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" + "node_modules/tabbable": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz", + "integrity": "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==", + "license": "MIT" + }, + "node_modules/tailwind-merge": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.4.0.tgz", + "integrity": "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.14", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", - "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", - "terser": "^5.31.1" - }, + "node_modules/tailwindcss": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.18.tgz", + "integrity": "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 10.13.0" + "node": ">=6" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } } }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + "dev": true, + "license": "MIT" }, - "node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", + "node_modules/tinyexec": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=18" } }, "node_modules/tinyglobby": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", - "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", - "dev": true, + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "license": "MIT", "dependencies": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" }, "engines": { "node": ">=12.0.0" @@ -12103,41 +12574,37 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", - "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", - "dev": true, - "peerDependencies": { - "picomatch": "^3 || ^4" + "node_modules/title": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/title/-/title-4.0.1.tgz", + "integrity": "sha512-xRnPkJx9nvE5MF6LkB5e8QJjE2FW8269wTu/LQdf7zZqBgPly0QJPf/CWAo7srj5so4yXfoLEdCFgurlpi47zg==", + "license": "MIT", + "dependencies": { + "arg": "^5.0.0", + "chalk": "^5.0.0", + "clipboardy": "^4.0.0" }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } + "bin": { + "title": "dist/esm/bin.js" } }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, + "node_modules/title/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "license": "MIT", "engines": { - "node": ">=12" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -12149,44 +12616,28 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/trim-repeated/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/trough": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18.12" }, @@ -12194,11 +12645,31 @@ "typescript": ">=4.8.4" } }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "license": "MIT", + "engines": { + "node": ">=6.10" + } + }, + "node_modules/ts-morph": { + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-27.0.2.tgz", + "integrity": "sha512-fhUhgeljcrdZ+9DZND1De1029PrE+cMkIP7ooqkLRTrRLTqcki2AstsyJm0vRNbTbVCNJ0idGlbBrfqc7/nA8w==", + "license": "MIT", + "dependencies": { + "@ts-morph/common": "~0.28.1", + "code-block-writer": "^13.0.3" + } + }, "node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -12209,21 +12680,43 @@ "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/tw-animate-css": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.2.8.tgz", - "integrity": "sha512-AxSnYRvyFnAiZCUndS3zQZhNfV/B77ZhJ+O7d3K6wfg/jKJY+yv6ahuyXwnyaYA9UdLqnpCwhTRv9pPTBnPR2g==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.4.0.tgz", + "integrity": "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/Wombosvideo" } }, + "node_modules/twoslash": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/twoslash/-/twoslash-0.3.6.tgz", + "integrity": "sha512-VuI5OKl+MaUO9UIW3rXKoPgHI3X40ZgB/j12VY6h98Ae1mCBihjPvhOPeJWlxCYcmSbmeZt5ZKkK0dsVtp+6pA==", + "license": "MIT", + "dependencies": { + "@typescript/vfs": "^1.6.2", + "twoslash-protocol": "0.3.6" + }, + "peerDependencies": { + "typescript": "^5.5.0" + } + }, + "node_modules/twoslash-protocol": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/twoslash-protocol/-/twoslash-protocol-0.3.6.tgz", + "integrity": "sha512-FHGsJ9Q+EsNr5bEbgG3hnbkvEBdW5STgPU824AHUjB4kw0Dn4p8tABT7Ncg1Ie6V0+mDg3Qpy41VafZXcQhWMA==", + "license": "MIT" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -12236,6 +12729,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -12248,6 +12742,7 @@ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -12262,6 +12757,7 @@ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", @@ -12281,6 +12777,7 @@ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -12302,6 +12799,7 @@ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -12318,10 +12816,10 @@ } }, "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", - "dev": true, + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -12330,11 +12828,18 @@ "node": ">=14.17" } }, + "node_modules/ufo": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", + "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", + "license": "MIT" + }, "node_modules/unbox-primitive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", @@ -12348,24 +12853,18 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==" + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true, + "license": "MIT" }, "node_modules/unified": { "version": "11.0.5", "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", @@ -12380,19 +12879,25 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-generated": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz", - "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==", + "node_modules/unist-util-find-after": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", + "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -12401,10 +12906,25 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-modify-children": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz", + "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "array-iterate": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/unist-util-position": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -12417,6 +12937,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -12425,57 +12946,29 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-remove-position": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-4.0.2.tgz", - "integrity": "sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove-position/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" - }, - "node_modules/unist-util-remove-position/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove-position/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "node_modules/unist-util-remove": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-4.0.0.tgz", + "integrity": "sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==", + "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-remove-position/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "node_modules/unist-util-remove-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", + "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" }, "funding": { "type": "opencollective", @@ -12486,6 +12979,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -12495,9 +12989,10 @@ } }, "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", @@ -12508,10 +13003,24 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-visit-children": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz", + "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" @@ -12522,64 +13031,38 @@ } }, "node_modules/unrs-resolver": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.6.4.tgz", - "integrity": "sha512-Fb6KH4pQK0XjR5PdRW8BEzsQmbYjkeRHF3IIIZtOVXVFM6Nh+Gb2fQh23Ba7qaYloDp+Aa8/JeNqyImJ8xHlkQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", "dev": true, "hasInstallScript": true, + "license": "MIT", "dependencies": { - "napi-postinstall": "^0.1.5" + "napi-postinstall": "^0.3.0" }, "funding": { - "url": "https://github.com/sponsors/JounQin" + "url": "https://opencollective.com/unrs-resolver" }, "optionalDependencies": { - "@unrs/resolver-binding-darwin-arm64": "1.6.4", - "@unrs/resolver-binding-darwin-x64": "1.6.4", - "@unrs/resolver-binding-freebsd-x64": "1.6.4", - "@unrs/resolver-binding-linux-arm-gnueabihf": "1.6.4", - "@unrs/resolver-binding-linux-arm-musleabihf": "1.6.4", - "@unrs/resolver-binding-linux-arm64-gnu": "1.6.4", - "@unrs/resolver-binding-linux-arm64-musl": "1.6.4", - "@unrs/resolver-binding-linux-ppc64-gnu": "1.6.4", - "@unrs/resolver-binding-linux-riscv64-gnu": "1.6.4", - "@unrs/resolver-binding-linux-s390x-gnu": "1.6.4", - "@unrs/resolver-binding-linux-x64-gnu": "1.6.4", - "@unrs/resolver-binding-linux-x64-musl": "1.6.4", - "@unrs/resolver-binding-wasm32-wasi": "1.6.4", - "@unrs/resolver-binding-win32-arm64-msvc": "1.6.4", - "@unrs/resolver-binding-win32-ia32-msvc": "1.6.4", - "@unrs/resolver-binding-win32-x64-msvc": "1.6.4" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true, - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" } }, "node_modules/uri-js": { @@ -12587,33 +13070,16 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==", - "engines": { - "node": ">= 4" - } - }, "node_modules/use-callback-ref": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, @@ -12634,6 +13100,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" @@ -12651,32 +13118,39 @@ } } }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, - "node_modules/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, + "node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", "bin": { - "uvu": "bin.js" - }, - "engines": { - "node": ">=8" + "uuid": "dist/esm/bin/uuid" } }, "node_modules/vfile": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" @@ -12686,114 +13160,98 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "node_modules/vfile-location": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", - "peer": true, + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack": { - "version": "5.99.8", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.8.tgz", - "integrity": "sha512-lQ3CPiSTpfOnrEGeXDwoq5hIGzSjmwD72GdfVzF7CQAI7t47rJG9eDWvcEkEn3CUQymAElVvDg3YNTlCYj+qUQ==", - "peer": true, - "dependencies": { - "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "@webassemblyjs/ast": "^1.14.1", - "@webassemblyjs/wasm-edit": "^1.14.1", - "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.14.0", - "browserslist": "^4.24.0", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^4.3.2", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.11", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } + "url": "https://opencollective.com/unified" } }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "peer": true, + "node_modules/vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "license": "MIT", "engines": { - "node": ">=10.13.0" + "node": ">=14.0.0" } }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "peer": true, + "node_modules/vscode-languageserver": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", + "license": "MIT", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "vscode-languageserver-protocol": "3.17.5" }, - "engines": { - "node": ">=8.0.0" + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" } }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "peer": true, - "engines": { - "node": ">=4.0" + "node_modules/vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "license": "MIT", + "dependencies": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", + "license": "MIT" + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "license": "MIT" + }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "license": "MIT" + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -12809,6 +13267,7 @@ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dev": true, + "license": "MIT", "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", @@ -12828,6 +13287,7 @@ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", @@ -12855,6 +13315,7 @@ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, + "license": "MIT", "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", @@ -12869,10 +13330,11 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.19", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", - "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -12889,11 +13351,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/wicked-good-xpath": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/wicked-good-xpath/-/wicked-good-xpath-1.3.0.tgz", + "integrity": "sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==", + "license": "MIT" + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12901,23 +13370,23 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, "engines": { - "node": ">=0.4" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" } }, "node_modules/yocto-queue": { @@ -12925,6 +13394,7 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -12933,9 +13403,10 @@ } }, "node_modules/zod": { - "version": "3.24.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.4.tgz", - "integrity": "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } @@ -12944,6 +13415,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" diff --git a/docs-site/package.json b/docs-site/package.json index 98de417c..0963c5e5 100644 --- a/docs-site/package.json +++ b/docs-site/package.json @@ -10,32 +10,32 @@ "postinstall": "fumadocs-mdx" }, "dependencies": { - "@radix-ui/react-accordion": "^1.2.8", + "@radix-ui/react-accordion": "^1.2.12", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "fumadocs-core": "15.2.9", - "fumadocs-mdx": "11.6.1", - "fumadocs-ui": "^15.2.9", - "lucide-react": "^0.503.0", - "next": "15.3.1", - "nextra": "^1.1.0", - "react": "^19.1.0", - "react-dom": "^19.1.0", - "tailwind-merge": "^3.2.0", - "tw-animate-css": "^1.2.8" + "fumadocs-core": "^16.5.2", + "fumadocs-mdx": "^14.2.7", + "fumadocs-ui": "^16.5.2", + "lucide-react": "^0.563.0", + "next": "^16.1.6", + "nextra": "^4.6.1", + "react": "^19.2.4", + "react-dom": "^19.2.4", + "tailwind-merge": "^3.4.0", + "tw-animate-css": "^1.4.0" }, "devDependencies": { - "@tailwindcss/postcss": "^4.1.4", + "@tailwindcss/postcss": "^4.1.18", "@types/mdx": "^2.0.13", - "@types/node": "22.14.1", - "@types/react": "^19.1.2", - "@types/react-dom": "^19.1.2", - "eslint": "^8", - "eslint-config-next": "15.3.1", - "glob": "^8.1.0", + "@types/node": "^24.10.12", + "@types/react": "^19.2.13", + "@types/react-dom": "^19.2.3", + "eslint": "^8.57.1", + "eslint-config-next": "^15.5.12", + "glob": "^13.0.1", "gray-matter": "^4.0.3", - "postcss": "^8.5.3", - "tailwindcss": "^4.1.4", - "typescript": "^5.8.3" + "postcss": "^8.5.6", + "tailwindcss": "^4.1.18", + "typescript": "^5.9.3" } } diff --git a/docs-site/public/1YAKE.ipynb b/docs-site/public/1YAKE.ipynb index 86e6db60..0656f75c 100644 --- a/docs-site/public/1YAKE.ipynb +++ b/docs-site/public/1YAKE.ipynb @@ -1,804 +1,833 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "
YAKE
\n", - "
" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Notebook Developed by**: [Ricardo Campos](http://www.ccc.ipt.pt/~ricardo)
\n", - "**email:** ricardo.campos@ubi.pt
\n", - "**Affiliation:** *Assistant Professor* @ [University of Beira Interior](http://www.ubi.pt);\n", - "*Researcher* @ [LIAAD](https://www.inesctec.pt/en/centres/liaad)-[INESC TEC](https://www.inesctec.pt/en)\n", - "\n", - "
\n", - "\n", - "\n", - "

\"Download

\n", - "

 

\n", - "

 

\n", - "\n", - "
" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "toc": true - }, - "source": [ - "

Table of Contents

\n", - "
  • 1  YAKE - Yet Another Keyword Extractor
  • 2  Package
    • 2.1  Installation
    • 2.2  Usage (Python)
    • 2.3  Usage (Command Line)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## YAKE - Yet Another Keyword Extractor" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
      " - ], - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from IPython.display import HTML\n", - "HTML('
      ')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Unsupervised Approach for Automatic Keyword Extraction using Text Features." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "YAKE! is a light-weight unsupervised automatic keyword extraction method which rests on text statistical features extracted from single documents to select the most important keywords of a text. Our system does not need to be trained on a particular set of documents, neither it depends on dictionaries, external-corpus, size of the text, language or domain. To demonstrate the merits and the significance of our proposal, we compare it against ten state-of-the-art unsupervised approaches (TF.IDF, KP-Miner, RAKE, TextRank, SingleRank, ExpandRank, TopicRank, TopicalPageRank, PositionRank and MultipartiteRank), and one supervised method (KEA). Experimental results carried out on top of twenty datasets show that our methods significantly outperform state-of-the-art methods under a number of collections of different sizes, languages or domains. In addition to the python package, we also make available a [demo](http://yake.inesctec.pt) an [API](http://yake.inesctec.pt/apidocs/#!/available_methods/post_yake_v2_extract_keywords) and a [mobile app](https://play.google.com/store/apps/details?id=com.yake.yake)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Main Features" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "* Unsupervised approach\n", - "* Corpus-Independent\n", - "* Domain and Language Independent\n", - "* Single-Document" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Rationale" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Extracting keywords from texts has become a challenge for individuals and organizations as the information grows in complexity and size. The need to automate this task so that texts can be processed in a timely and adequate manner has led to the emergence of automatic keyword extraction tools. Despite the advances, there is a clear lack of multilingual online tools to automatically extract keywords from single documents. Yake! is a novel feature-based system for multi-lingual keyword extraction, which supports texts of different sizes, domain or languages. Unlike other approaches, Yake! does not rely on dictionaries nor thesauri, neither is trained against any corpora. Instead, it follows an unsupervised approach which builds upon features extracted from the text, making it thus applicable to documents written in different languages without the need for further knowledge. This can be beneficial for a large number of tasks and a plethora of situations where the access to training corpora is either limited or restricted." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Where can I find YAKE?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "YAKE! is available online [http://yake.inesctec.pt]and as an open source Python package [https://github.com/INESCTEC/yake]." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Package" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Installation" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "#!pip install git+http://github.com/INESCTEC/yake\n", - "!uv pip install yake\n", - "\n", - "#no caso de já ter instalado o package previamente e quiser fazer um update\n", - "#!pip install git+http://github.com/INESCTEC/yake --upgrade" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Usage (Python)" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "text = '''\n", - "Google is acquiring data science community Kaggle. Sources tell us that Google is acquiring Kaggle, a platform that hosts data science and machine learning competitions. Details about the transaction remain somewhat vague , but given that Google is hosting its Cloud Next conference in San Francisco this week, the official announcement could come as early as tomorrow. Reached by phone, Kaggle co-founder CEO Anthony Goldbloom declined to deny that the acquisition is happening. Google itself declined 'to comment on rumors'. Kaggle, which has about half a million data scientists on its platform, was founded by Goldbloom and Ben Hamner in 2010. The service got an early start and even though it has a few competitors like DrivenData, TopCoder and HackerRank, it has managed to stay well ahead of them by focusing on its specific niche. The service is basically the de facto home for running data science and machine learning competitions. With Kaggle, Google is buying one of the largest and most active communities for data scientists - and with that, it will get increased mindshare in this community, too (though it already has plenty of that thanks to Tensorflow and other projects). Kaggle has a bit of a history with Google, too, but that's pretty recent. Earlier this month, Google and Kaggle teamed up to host a $100,000 machine learning competition around classifying YouTube videos. That competition had some deep integrations with the Google Cloud Platform, too. Our understanding is that Google will keep the service running - likely under its current name. While the acquisition is probably more about Kaggle's community than technology, Kaggle did build some interesting tools for hosting its competition and 'kernels', too. On Kaggle, kernels are basically the source code for analyzing data sets and developers can share this code on the platform (the company previously called them 'scripts'). Like similar competition-centric sites, Kaggle also runs a job board, too. It's unclear what Google will do with that part of the service. According to Crunchbase, Kaggle raised $12.5 million (though PitchBook says it's $12.75) since its launch in 2010. Investors in Kaggle include Index Ventures, SV Angel, Max Levchin, Naval Ravikant, Google chief economist Hal Varian, Khosla Ventures and Yuri Milner'''" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "('Google', 0.02509259635302287)\n", - "('Kaggle', 0.027297150442917317)\n", - "('CEO Anthony Goldbloom', 0.04834891465259988)\n", - "('data science', 0.05499112888517541)\n", - "('acquiring data science', 0.06029572445726576)\n", - "('Google Cloud Platform', 0.07461585862381104)\n", - "('data', 0.07999958986489127)\n", - "('San Francisco', 0.0913829662674319)\n", - "('Anthony Goldbloom declined', 0.09740885820462175)\n", - "('science', 0.09834167930168546)\n", - "('science community Kaggle', 0.1014394718805728)\n", - "('machine learning', 0.10754988562466912)\n", - "('Google Cloud', 0.1136787749431024)\n", - "('Google is acquiring', 0.114683257931042)\n", - "('acquiring Kaggle', 0.12012386507741751)\n", - "('Anthony Goldbloom', 0.1213027418574554)\n", - "('platform', 0.12404419723925647)\n", - "('co-founder CEO Anthony', 0.12411964553586782)\n", - "('CEO Anthony', 0.12462950727635251)\n", - "('service', 0.1316357590449064)\n" - ] - } - ], - "source": [ - "import yake\n", - "\n", - "# assuming default parameters\n", - "kw_extractor = yake.KeywordExtractor()\n", - "keywords = kw_extractor.extract_keywords(text)\n", - "\n", - "for kw in keywords:\n", - " print(kw)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Playing with the parameters:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "('Google', 0.02509259635302287)\n", - "('Kaggle', 0.027297150442917317)\n", - "('CEO Anthony Goldbloom', 0.04834891465259988)\n", - "('data science', 0.05499112888517541)\n", - "('acquiring data science', 0.06029572445726576)\n", - "('Google Cloud Platform', 0.07461585862381104)\n", - "('data', 0.07999958986489127)\n", - "('San Francisco', 0.0913829662674319)\n", - "('Anthony Goldbloom declined', 0.09740885820462175)\n", - "('science', 0.09834167930168546)\n", - "('science community Kaggle', 0.1014394718805728)\n", - "('machine learning', 0.10754988562466912)\n", - "('Google Cloud', 0.1136787749431024)\n", - "('Google is acquiring', 0.114683257931042)\n", - "('acquiring Kaggle', 0.12012386507741751)\n", - "('Anthony Goldbloom', 0.1213027418574554)\n", - "('platform', 0.12404419723925647)\n", - "('co-founder CEO Anthony', 0.12411964553586782)\n", - "('CEO Anthony', 0.12462950727635251)\n", - "('service', 0.1316357590449064)\n" - ] - } - ], - "source": [ - "import yake\n", - "\n", - "language = \"en\"\n", - "max_ngram_size = 3\n", - "deduplication_thresold = 0.9\n", - "deduplication_algo = 'seqm'\n", - "windowSize = 1\n", - "numOfKeywords = 20\n", - "\n", - "custom_kw_extractor = yake.KeywordExtractor(lan=language, n=max_ngram_size, dedupLim=deduplication_thresold, dedupFunc=deduplication_algo, windowsSize=windowSize, top=numOfKeywords, features=None)\n", - "keywords = custom_kw_extractor.extract_keywords(text)\n", - "\n", - "for kw in keywords:\n", - " print(kw)" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "('Google', 0.02509259635302287)\n", - "('Kaggle', 0.027297150442917317)\n", - "('CEO Anthony Goldbloom', 0.04834891465259988)\n", - "('data science', 0.05499112888517541)\n", - "('acquiring data science', 0.06029572445726576)\n", - "('Google Cloud Platform', 0.07461585862381104)\n", - "('data', 0.07999958986489127)\n", - "('San Francisco', 0.0913829662674319)\n", - "('Anthony Goldbloom declined', 0.09740885820462175)\n", - "('science', 0.09834167930168546)\n", - "('science community Kaggle', 0.1014394718805728)\n", - "('machine learning', 0.10754988562466912)\n", - "('Google Cloud', 0.1136787749431024)\n", - "('Google is acquiring', 0.114683257931042)\n", - "('acquiring Kaggle', 0.12012386507741751)\n", - "('Anthony Goldbloom', 0.1213027418574554)\n", - "('platform', 0.12404419723925647)\n", - "('co-founder CEO Anthony', 0.12411964553586782)\n", - "('CEO Anthony', 0.12462950727635251)\n", - "('service', 0.1316357590449064)\n" - ] - } - ], - "source": [ - "import yake\n", - "\n", - "language = \"en\"\n", - "max_ngram_size = 3\n", - "deduplication_thresold = 0.9\n", - "deduplication_algo = 'seqm'\n", - "windowSize = 1\n", - "numOfKeywords = 20\n", - "\n", - "custom_kw_extractor = yake.KeywordExtractor(lan=language, n=max_ngram_size, dedupLim=deduplication_thresold, dedupFunc=deduplication_algo, windowsSize=windowSize, top=numOfKeywords, features=None)\n", - "keywords = custom_kw_extractor.extract_keywords(text)\n", - "\n", - "for kw in keywords:\n", - " print(kw)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Highlighting feature will tag every keyword in the text with the default tag ``." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "\"Google is acquiring data science community Kaggle. Sources tell us that Google is acquiring Kaggle, a platform that hosts data science and machine learning competitions. Details about the transaction remain somewhat vague , but given that Google is hosting its Cloud Next conference in San Francisco this week, the official announcement could come as early as tomorrow. Reached by phone, Kaggle co-founder CEO Anthony Goldbloom declined to deny that the acquisition is happening. Google itself declined 'to comment on rumors'. Kaggle, which has about half a million data scientists on its platform, was founded by Goldbloom and Ben Hamner in 2010. The service got an early start and even though it has a few competitors like DrivenData, TopCoder and HackerRank, it has managed to stay well ahead of them by focusing on its specific niche. The service is basically the de facto home for running data science and machine learning competitions. With Kaggle, Google is buying one of the largest and most active communities for data scientists - and with that, it will get increased mindshare in this community, too (though it already has plenty of that thanks to Tensorflow and other projects). Kaggle has a bit of a history with Google, too, but that's pretty recent. Earlier this month, Google and Kaggle teamed up to host a $100,000 machine learning competition around classifying YouTube videos. That competition had some deep integrations with the Google Cloud Platform, too. Our understanding is that Google will keep the service running - likely under its current name. While the acquisition is probably more about Kaggle's community than technology, Kaggle did build some interesting tools for hosting its competition and 'kernels', too. On Kaggle, kernels are basically the source code for analyzing data sets and developers can share this code on the platform (the company previously called them 'scripts'). Like similar competition-centric sites, Kaggle also runs a job board, too. It's unclear what Google will do with that part of the service. According to Crunchbase, Kaggle raised $12.5 million (though PitchBook says it's $12.75) since its launch in 2010. Investors in Kaggle include Index Ventures, SV Angel, Max Levchin, Naval Ravikant, Google chief economist Hal Varian, Khosla Ventures and Yuri Milner\"" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from yake.core.highlight import TextHighlighter\n", - "\n", - "th = TextHighlighter(max_ngram_size = 3)\n", - "th.highlight(text, keywords)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Besides tagging a text with the default tag, users can also specify their own custom highlight. In the following text, the tag `` makes use of an hyphotetical function `my_class` whose purpose would be to highlight in white colour or the relevant keywords." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "\"Google is acquiring data science community Kaggle. Sources tell us that Google is acquiring Kaggle, a platform that hosts data science and machine learning competitions. Details about the transaction remain somewhat vague , but given that Google is hosting its Cloud Next conference in San Francisco this week, the official announcement could come as early as tomorrow. Reached by phone, Kaggle co-founder CEO Anthony Goldbloom declined to deny that the acquisition is happening. Google itself declined 'to comment on rumors'. Kaggle, which has about half a million data scientists on its platform, was founded by Goldbloom and Ben Hamner in 2010. The service got an early start and even though it has a few competitors like DrivenData, TopCoder and HackerRank, it has managed to stay well ahead of them by focusing on its specific niche. The service is basically the de facto home for running data science and machine learning competitions. With Kaggle, Google is buying one of the largest and most active communities for data scientists - and with that, it will get increased mindshare in this community, too (though it already has plenty of that thanks to Tensorflow and other projects). Kaggle has a bit of a history with Google, too, but that's pretty recent. Earlier this month, Google and Kaggle teamed up to host a $100,000 machine learning competition around classifying YouTube videos. That competition had some deep integrations with the Google Cloud Platform, too. Our understanding is that Google will keep the service running - likely under its current name. While the acquisition is probably more about Kaggle's community than technology, Kaggle did build some interesting tools for hosting its competition and 'kernels', too. On Kaggle, kernels are basically the source code for analyzing data sets and developers can share this code on the platform (the company previously called them 'scripts'). Like similar competition-centric sites, Kaggle also runs a job board, too. It's unclear what Google will do with that part of the service. According to Crunchbase, Kaggle raised $12.5 million (though PitchBook says it's $12.75) since its launch in 2010. Investors in Kaggle include Index Ventures, SV Angel, Max Levchin, Naval Ravikant, Google chief economist Hal Varian, Khosla Ventures and Yuri Milner\"" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from yake.core.highlight import TextHighlighter\n", - "th = TextHighlighter(max_ngram_size = 3, highlight_pre = \"\", highlight_post= \"\")\n", - "th.highlight(text, keywords)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "While English (`en`) is the default language, users can use YAKE! to extract keywords from whatever language they want to by specifying the the corresponding language universal code. The below example shows how to extract keywords from a portuguese text." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "('Conta-me Histórias', 0.006225012963810038)\n", - "('LIAAD do INESC', 0.01899063587015275)\n", - "('INESC TEC', 0.01995432290332246)\n", - "('Conta-me', 0.04513273690417472)\n", - "('Histórias', 0.04513273690417472)\n", - "('Prémio Arquivo.pt', 0.05749361520927859)\n", - "('LIAAD', 0.07738867367929901)\n", - "('INESC', 0.07738867367929901)\n", - "('TEC', 0.08109398065524037)\n", - "('Xutos inspiram projeto', 0.08720742489353424)\n", - "('inspiram projeto premiado', 0.08720742489353424)\n", - "('Adam Jatwot docente', 0.09407053486771558)\n", - "('Arquivo.pt', 0.10261392141666957)\n", - "('Alípio Jorge', 0.12190479662535166)\n", - "('Ciências da Universidade', 0.12368384021490342)\n", - "('Ricardo Campos investigador', 0.12789997272332762)\n", - "('Politécnico de Tomar', 0.13323587141127738)\n", - "('Arian Pasquali', 0.13323587141127738)\n", - "('Vitor Mangaravite', 0.13323587141127738)\n", - "('preservados da Web', 0.13596322680882506)\n" - ] - } - ], - "source": [ - "import yake\n", - "\n", - "text = '''\n", - "\"Conta-me Histórias.\" Xutos inspiram projeto premiado. A plataforma \"Conta-me Histórias\" foi distinguida com o Prémio Arquivo.pt, atribuído a trabalhos inovadores de investigação ou aplicação de recursos preservados da Web, através dos serviços de pesquisa e acesso disponibilizados publicamente pelo Arquivo.pt . Nesta plataforma em desenvolvimento, o utilizador pode pesquisar sobre qualquer tema e ainda executar alguns exemplos predefinidos. Como forma de garantir a pluralidade e diversidade de fontes de informação, esta são utilizadas 24 fontes de notícias eletrónicas, incluindo a TSF. Uma versão experimental (beta) do \"Conta-me Histórias\" está disponível aqui.\n", - "A plataforma foi desenvolvida por Ricardo Campos investigador do LIAAD do INESC TEC e docente do Instituto Politécnico de Tomar, Arian Pasquali e Vitor Mangaravite, também investigadores do LIAAD do INESC TEC, Alípio Jorge, coordenador do LIAAD do INESC TEC e docente na Faculdade de Ciências da Universidade do Porto, e Adam Jatwot docente da Universidade de Kyoto.\n", - "'''\n", - "\n", - "custom_kw_extractor = yake.KeywordExtractor(lan=\"pt\")\n", - "keywords = custom_kw_extractor.extract_keywords(text)\n", - "\n", - "for kw in keywords:\n", - " print(kw)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### WordCloud" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the following we are going to constuct a word cloud. To begin, we need to adapt the \"content\" structure to a dictionary consisting of the keyword and of the score. In addition to that, we resort to a normalization function that bounds the values into a range between [0,1]." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'Conta-me Histórias': 1.0,\n", - " 'LIAAD do INESC': 0.9016047583205323,\n", - " 'INESC TEC': 0.8941768232148362,\n", - " 'Conta-me': 0.7001059072167914,\n", - " 'Histórias': 0.7001059072167914,\n", - " 'Prémio Arquivo.pt': 0.6048303678150379,\n", - " 'LIAAD': 0.4514826541353427,\n", - " 'INESC': 0.4514826541353427,\n", - " 'TEC': 0.4229227806321687,\n", - " 'Xutos inspiram projeto': 0.37580139629126075,\n", - " 'inspiram projeto premiado': 0.37580139629126075,\n", - " 'Adam Jatwot docente': 0.3229017164607676,\n", - " 'Arquivo.pt': 0.25705075169290126,\n", - " 'Alípio Jorge': 0.10835997942955777,\n", - " 'Ciências da Universidade': 0.09464741520636755,\n", - " 'Ricardo Campos investigador': 0.06215018572037523,\n", - " 'Politécnico de Tomar': 0.021021989718509326,\n", - " 'Arian Pasquali': 0.021021989718509326,\n", - " 'Vitor Mangaravite': 0.021021989718509326,\n", - " 'preservados da Web': 0.0}" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "def normalize_scores(keywords):\n", - " if len(keywords) == 0:\n", - " return {}\n", - " max_value = max([item[1] for item in keywords])\n", - " min_value = min([item[1] for item in keywords])\n", - " \n", - " result = {}\n", - " for item in keywords:\n", - " normalized_score = (item[1] - float(min_value))/(float(max_value) - float(min_value))\n", - " result[item[0]] = abs(1 - normalized_score)\n", - "\n", - " return result\n", - "\n", - "keyword2WordCloud = normalize_scores(keywords)\n", - "keyword2WordCloud" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "the following code is a normalizing fuction of the data. The results vary betweent [0,1] where the upper bound isn't necessarly 1 (it can be lower than 1)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "```python\n", - "def normalize_scores(keywords):\n", - " if len(keywords) == 0:\n", - " return {}\n", - " max_value = max([item[1] for\n", - " item in keywords])\n", - " \n", - " result = {}\n", - " for item in keywords:\n", - " normalized_score = 1 - item[1]/float(max_value)\n", - " result[item[0]] = abs(normalized_score)\n", - "\n", - " return result\n", - "\n", - "keyword2WordCloud = normalize_scores(keywords)\n", - "keyword2WordCloud\n", - "```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Later, its possible to build a word cloud using `matplotlib`. If, during installation, you receive an error message stating that Microsoft Visual C++ 14.0 (or higher) is required, you should proceed with its installation. See how to do it on this [web page](https://www.scivision.dev/python-windows-visual-c-14-required/) or in this [video](https://www.youtube.com/watch?v=_keTL9ymGjw)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!uv pip install matplotlib\n", - "!uv pip install wordcloud" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(-0.5, 999.5, 499.5, -0.5)" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
      " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "from wordcloud import WordCloud\n", - "import matplotlib.pyplot as plt\n", - "\n", - "wordcloud = WordCloud(max_font_size=100, max_words = 20, width = 1000, height = 500).generate_from_frequencies(keyword2WordCloud) #Objeto que permite gerar wordcloud a partir de texto\n", - "plt.figure(figsize=(16,9))\n", - "plt.imshow(wordcloud, interpolation=\"bilinear\") #imshow plota imagens que derivam de arrays\n", - "plt.axis(\"off\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now suppose you need to send this image through an API. To achieve this, you should convert the image to base64. The code below allows you to store the image in a buffer and shows its conversion to base64." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import base64\n", - "import io\n", - "from io import BytesIO\n", - "\n", - "buffer = io.BytesIO()\n", - "wordcloud.to_image().save(buffer, 'png')\n", - "b64 = str(base64.b64encode(buffer.getvalue()).decode(\"ascii\"))\n", - "b64" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "From the base64 string, it would then be possible to display the image again." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from io import BytesIO\n", - "from PIL import Image\n", - "\n", - "img1 = Image.open(io.BytesIO(base64.b64decode(b64)))\n", - "img1" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Usage (Command Line)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "```\n", - "Usage: yake [OPTIONS]\n", - "\n", - "Options:\n", - " --help Show this message and exit.\n", - " -ti, --text_input TEXT Input text, SURROUNDED by single quotes(')\n", - " -i, --input_file TEXT Input file\n", - " -l, --language TEXT Language\n", - " -n, --ngram-size INTEGER Max size of the ngram.\n", - " -df, --dedup-func [leve|jaro|seqm] Deduplication function.\n", - " -dl, --dedup-lim FLOAT Deduplication limiar.\n", - " -ws, --window-size INTEGER Window size.\n", - " -t, --top INTEGER Number of keyphrases to extract\n", - " -v, --verbose Gets detailed information (such as the score)\n", - "```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A few examples:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "```\n", - "yake -i text.txt -l en -n 3\n", - "```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Related Projects" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "- [Spark NLP](https://www.johnsnowlabs.com/spark-nlp-in-action/)\n", - "- [Spark NLP Keywords Extraction Demo](https://demo.johnsnowlabs.com/public/KEYPHRASE_EXTRACTION/)\n", - "- [kaggle](https://www.youtube.com/watch?v=6TBvZmg7AsA)\n", - "- [textacy](https://github.com/chartbeat-labs/textacy/search?q=yake)\n", - "- [pke - pyhton keyphrase extraction](https://github.com/boudinfl/pke)\n", - "- [dendro](http://dendro-stg.inesctec.pt/)\n", - "- [conta-me histórias](http://contamehistorias.pt)\n", - "- [time-matters](http://time-matters.inesctec.pt)\n", - "- [The General Index](https://archive.org/details/GeneralIndex)\n", - "- [Nature. Giant, free index to world’s research papers released online](https://www.nature.com/articles/d41586-021-02895-8)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Awards" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "[ECIR'18](http://ecir2018.org) Best Short Paper (see the below reference)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## References" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Please cite the following works when using YAKE:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**In-depth journal paper at Information Sciences Journal**\n", - "\n", - "- Campos, R., Mangaravite, V., Pasquali, A., Jatowt, A., Jorge, A., Nunes, C. and Jatowt, A. (2020). YAKE! Keyword Extraction from Single Documents using Multiple Local Features. In Information Sciences Journal. Elsevier, Vol 509, pp 257-289. [pdf](https://doi.org/10.1016/j.ins.2019.09.013)\n", - "\n", - "**ECIR'18 Best Short Paper**\n", - "\n", - "- Campos R., Mangaravite V., Pasquali A., Jorge A.M., Nunes C., and Jatowt A. (2018). A Text Feature Based Automatic Keyword Extraction Method for Single Documents. In: Pasi G., Piwowarski B., Azzopardi L., Hanbury A. (eds). Advances in Information Retrieval. ECIR 2018 (Grenoble, France. March 26 – 29). Lecture Notes in Computer Science, vol 10772, pp. 684 - 691. [pdf](https://link.springer.com/chapter/10.1007/978-3-319-76941-7_63)\n", - "\n", - "- Campos R., Mangaravite V., Pasquali A., Jorge A.M., Nunes C., and Jatowt A. (2018). YAKE! Collection-independent Automatic Keyword Extractor. In: Pasi G., Piwowarski B., Azzopardi L., Hanbury A. (eds). Advances in Information Retrieval. ECIR 2018 (Grenoble, France. March 26 – 29). Lecture Notes in Computer Science, vol 10772, pp. 806 - 810. [pdf](https://link.springer.com/chapter/10.1007/978-3-319-76941-7_80)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Media" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "- [INESC TEC technology used to create a database of keywords obtained from more than 100 million scientific articles](https://bip.inesctec.pt/en/noticias/inesc-tec-technology-used-to-create-a-database-of-keywords-obtained-from-more-than-100-million-scientific-articles/)\n", - "- [This tool can extract keywords from texts in every language about any topic](https://www.alphagalileo.org/en-gb/Item-Display/ItemId/216276?returnurl=https://www.alphagalileo.org/en-gb/Item-Display/ItemId/216276)\n", - "- [INESC TEC team wins another Best Paper Award](https://www.inesctec.pt/en/news/inesc-tec-team-wins-another-best-paper-award#about)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "yake", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.12" - }, - "toc": { - "base_numbering": 1, - "nav_menu": {}, - "number_sections": true, - "sideBar": true, - "skip_h1_title": true, - "title_cell": "Table of Contents", - "title_sidebar": "Contents", - "toc_cell": true, - "toc_position": { - "height": "calc(100% - 180px)", - "left": "10px", - "top": "150px", - "width": "255px" - }, - "toc_section_display": true, - "toc_window_display": true - } + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "
      YAKE
      \n", + "
      " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Notebook Developed by**: [Ricardo Campos](http://www.ccc.ipt.pt/~ricardo)
      \n", + "**email:** ricardo.campos@ubi.pt
      \n", + "**Affiliation:** *Assistant Professor* @ [University of Beira Interior](http://www.ubi.pt);\n", + "*Researcher* @ [LIAAD](https://www.inesctec.pt/en/centres/liaad)-[INESC TEC](https://www.inesctec.pt/en)\n", + "\n", + "
      \n", + "\n", + "\n", + "

      \"Download

      \n", + "

       

      \n", + "

       

      \n", + "\n", + "
      " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "toc": true + }, + "source": [ + "

      Table of Contents

      \n", + "
      • 1  YAKE - Yet Another Keyword Extractor
      • 2  Package
        • 2.1  Installation
        • 2.2  Usage (Python)
        • 2.3  Usage (Command Line)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## YAKE - Yet Another Keyword Extractor" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
          " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from IPython.display import HTML\n", + "\n", + "HTML(\n", + " '
          '\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Unsupervised Approach for Automatic Keyword Extraction using Text Features." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "YAKE! is a light-weight unsupervised automatic keyword extraction method which rests on text statistical features extracted from single documents to select the most important keywords of a text. Our system does not need to be trained on a particular set of documents, neither it depends on dictionaries, external-corpus, size of the text, language or domain. To demonstrate the merits and the significance of our proposal, we compare it against ten state-of-the-art unsupervised approaches (TF.IDF, KP-Miner, RAKE, TextRank, SingleRank, ExpandRank, TopicRank, TopicalPageRank, PositionRank and MultipartiteRank), and one supervised method (KEA). Experimental results carried out on top of twenty datasets show that our methods significantly outperform state-of-the-art methods under a number of collections of different sizes, languages or domains. In addition to the python package, we also make available a [demo](http://yake.inesctec.pt) an [API](http://yake.inesctec.pt/apidocs/#!/available_methods/post_yake_v2_extract_keywords) and a [mobile app](https://play.google.com/store/apps/details?id=com.yake.yake)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Main Features" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Unsupervised approach\n", + "* Corpus-Independent\n", + "* Domain and Language Independent\n", + "* Single-Document" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Rationale" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Extracting keywords from texts has become a challenge for individuals and organizations as the information grows in complexity and size. The need to automate this task so that texts can be processed in a timely and adequate manner has led to the emergence of automatic keyword extraction tools. Despite the advances, there is a clear lack of multilingual online tools to automatically extract keywords from single documents. Yake! is a novel feature-based system for multi-lingual keyword extraction, which supports texts of different sizes, domain or languages. Unlike other approaches, Yake! does not rely on dictionaries nor thesauri, neither is trained against any corpora. Instead, it follows an unsupervised approach which builds upon features extracted from the text, making it thus applicable to documents written in different languages without the need for further knowledge. This can be beneficial for a large number of tasks and a plethora of situations where the access to training corpora is either limited or restricted." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Where can I find YAKE?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "YAKE! is available online [http://yake.inesctec.pt]and as an open source Python package [https://github.com/INESCTEC/yake]." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Package" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### Installation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#!pip install git+http://github.com/INESCTEC/yake\n", + "!uv pip install yake\n", + "\n", + "# no caso de já ter instalado o package previamente e quiser fazer um update\n", + "#!pip install git+http://github.com/INESCTEC/yake --upgrade" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Usage (Python)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "text = \"\"\"\n", + "Google is acquiring data science community Kaggle. Sources tell us that Google is acquiring Kaggle, a platform that hosts data science and machine learning competitions. Details about the transaction remain somewhat vague , but given that Google is hosting its Cloud Next conference in San Francisco this week, the official announcement could come as early as tomorrow. Reached by phone, Kaggle co-founder CEO Anthony Goldbloom declined to deny that the acquisition is happening. Google itself declined 'to comment on rumors'. Kaggle, which has about half a million data scientists on its platform, was founded by Goldbloom and Ben Hamner in 2010. The service got an early start and even though it has a few competitors like DrivenData, TopCoder and HackerRank, it has managed to stay well ahead of them by focusing on its specific niche. The service is basically the de facto home for running data science and machine learning competitions. With Kaggle, Google is buying one of the largest and most active communities for data scientists - and with that, it will get increased mindshare in this community, too (though it already has plenty of that thanks to Tensorflow and other projects). Kaggle has a bit of a history with Google, too, but that's pretty recent. Earlier this month, Google and Kaggle teamed up to host a $100,000 machine learning competition around classifying YouTube videos. That competition had some deep integrations with the Google Cloud Platform, too. Our understanding is that Google will keep the service running - likely under its current name. While the acquisition is probably more about Kaggle's community than technology, Kaggle did build some interesting tools for hosting its competition and 'kernels', too. On Kaggle, kernels are basically the source code for analyzing data sets and developers can share this code on the platform (the company previously called them 'scripts'). Like similar competition-centric sites, Kaggle also runs a job board, too. It's unclear what Google will do with that part of the service. According to Crunchbase, Kaggle raised $12.5 million (though PitchBook says it's $12.75) since its launch in 2010. Investors in Kaggle include Index Ventures, SV Angel, Max Levchin, Naval Ravikant, Google chief economist Hal Varian, Khosla Ventures and Yuri Milner\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "('Google', 0.02509259635302287)\n", + "('Kaggle', 0.027297150442917317)\n", + "('CEO Anthony Goldbloom', 0.04834891465259988)\n", + "('data science', 0.05499112888517541)\n", + "('acquiring data science', 0.06029572445726576)\n", + "('Google Cloud Platform', 0.07461585862381104)\n", + "('data', 0.07999958986489127)\n", + "('San Francisco', 0.0913829662674319)\n", + "('Anthony Goldbloom declined', 0.09740885820462175)\n", + "('science', 0.09834167930168546)\n", + "('science community Kaggle', 0.1014394718805728)\n", + "('machine learning', 0.10754988562466912)\n", + "('Google Cloud', 0.1136787749431024)\n", + "('Google is acquiring', 0.114683257931042)\n", + "('acquiring Kaggle', 0.12012386507741751)\n", + "('Anthony Goldbloom', 0.1213027418574554)\n", + "('platform', 0.12404419723925647)\n", + "('co-founder CEO Anthony', 0.12411964553586782)\n", + "('CEO Anthony', 0.12462950727635251)\n", + "('service', 0.1316357590449064)\n" + ] + } + ], + "source": [ + "import yake\n", + "\n", + "# assuming default parameters\n", + "kw_extractor = yake.KeywordExtractor()\n", + "keywords = kw_extractor.extract_keywords(text)\n", + "\n", + "for kw in keywords:\n", + " print(kw)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Playing with the parameters:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "('Google', 0.02509259635302287)\n", + "('Kaggle', 0.027297150442917317)\n", + "('CEO Anthony Goldbloom', 0.04834891465259988)\n", + "('data science', 0.05499112888517541)\n", + "('acquiring data science', 0.06029572445726576)\n", + "('Google Cloud Platform', 0.07461585862381104)\n", + "('data', 0.07999958986489127)\n", + "('San Francisco', 0.0913829662674319)\n", + "('Anthony Goldbloom declined', 0.09740885820462175)\n", + "('science', 0.09834167930168546)\n", + "('science community Kaggle', 0.1014394718805728)\n", + "('machine learning', 0.10754988562466912)\n", + "('Google Cloud', 0.1136787749431024)\n", + "('Google is acquiring', 0.114683257931042)\n", + "('acquiring Kaggle', 0.12012386507741751)\n", + "('Anthony Goldbloom', 0.1213027418574554)\n", + "('platform', 0.12404419723925647)\n", + "('co-founder CEO Anthony', 0.12411964553586782)\n", + "('CEO Anthony', 0.12462950727635251)\n", + "('service', 0.1316357590449064)\n" + ] + } + ], + "source": [ + "import yake\n", + "\n", + "language = \"en\"\n", + "max_ngram_size = 3\n", + "deduplication_thresold = 0.9\n", + "deduplication_algo = \"seqm\"\n", + "windowSize = 1\n", + "numOfKeywords = 20\n", + "\n", + "custom_kw_extractor = yake.KeywordExtractor(\n", + " lan=language,\n", + " n=max_ngram_size,\n", + " dedupLim=deduplication_thresold,\n", + " dedupFunc=deduplication_algo,\n", + " windowsSize=windowSize,\n", + " top=numOfKeywords,\n", + " features=None,\n", + ")\n", + "keywords = custom_kw_extractor.extract_keywords(text)\n", + "\n", + "for kw in keywords:\n", + " print(kw)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "('Google', 0.02509259635302287)\n", + "('Kaggle', 0.027297150442917317)\n", + "('CEO Anthony Goldbloom', 0.04834891465259988)\n", + "('data science', 0.05499112888517541)\n", + "('acquiring data science', 0.06029572445726576)\n", + "('Google Cloud Platform', 0.07461585862381104)\n", + "('data', 0.07999958986489127)\n", + "('San Francisco', 0.0913829662674319)\n", + "('Anthony Goldbloom declined', 0.09740885820462175)\n", + "('science', 0.09834167930168546)\n", + "('science community Kaggle', 0.1014394718805728)\n", + "('machine learning', 0.10754988562466912)\n", + "('Google Cloud', 0.1136787749431024)\n", + "('Google is acquiring', 0.114683257931042)\n", + "('acquiring Kaggle', 0.12012386507741751)\n", + "('Anthony Goldbloom', 0.1213027418574554)\n", + "('platform', 0.12404419723925647)\n", + "('co-founder CEO Anthony', 0.12411964553586782)\n", + "('CEO Anthony', 0.12462950727635251)\n", + "('service', 0.1316357590449064)\n" + ] + } + ], + "source": [ + "import yake\n", + "\n", + "language = \"en\"\n", + "max_ngram_size = 3\n", + "deduplication_thresold = 0.9\n", + "deduplication_algo = \"seqm\"\n", + "windowSize = 1\n", + "numOfKeywords = 20\n", + "\n", + "custom_kw_extractor = yake.KeywordExtractor(\n", + " lan=language,\n", + " n=max_ngram_size,\n", + " dedupLim=deduplication_thresold,\n", + " dedupFunc=deduplication_algo,\n", + " windowsSize=windowSize,\n", + " top=numOfKeywords,\n", + " features=None,\n", + ")\n", + "keywords = custom_kw_extractor.extract_keywords(text)\n", + "\n", + "for kw in keywords:\n", + " print(kw)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Highlighting feature will tag every keyword in the text with the default tag ``." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"Google is acquiring data science community Kaggle. Sources tell us that Google is acquiring Kaggle, a platform that hosts data science and machine learning competitions. Details about the transaction remain somewhat vague , but given that Google is hosting its Cloud Next conference in San Francisco this week, the official announcement could come as early as tomorrow. Reached by phone, Kaggle co-founder CEO Anthony Goldbloom declined to deny that the acquisition is happening. Google itself declined 'to comment on rumors'. Kaggle, which has about half a million data scientists on its platform, was founded by Goldbloom and Ben Hamner in 2010. The service got an early start and even though it has a few competitors like DrivenData, TopCoder and HackerRank, it has managed to stay well ahead of them by focusing on its specific niche. The service is basically the de facto home for running data science and machine learning competitions. With Kaggle, Google is buying one of the largest and most active communities for data scientists - and with that, it will get increased mindshare in this community, too (though it already has plenty of that thanks to Tensorflow and other projects). Kaggle has a bit of a history with Google, too, but that's pretty recent. Earlier this month, Google and Kaggle teamed up to host a $100,000 machine learning competition around classifying YouTube videos. That competition had some deep integrations with the Google Cloud Platform, too. Our understanding is that Google will keep the service running - likely under its current name. While the acquisition is probably more about Kaggle's community than technology, Kaggle did build some interesting tools for hosting its competition and 'kernels', too. On Kaggle, kernels are basically the source code for analyzing data sets and developers can share this code on the platform (the company previously called them 'scripts'). Like similar competition-centric sites, Kaggle also runs a job board, too. It's unclear what Google will do with that part of the service. According to Crunchbase, Kaggle raised $12.5 million (though PitchBook says it's $12.75) since its launch in 2010. Investors in Kaggle include Index Ventures, SV Angel, Max Levchin, Naval Ravikant, Google chief economist Hal Varian, Khosla Ventures and Yuri Milner\"" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from yake.core.highlight import TextHighlighter\n", + "\n", + "th = TextHighlighter(max_ngram_size=3)\n", + "th.highlight(text, keywords)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Besides tagging a text with the default tag, users can also specify their own custom highlight. In the following text, the tag `` makes use of an hyphotetical function `my_class` whose purpose would be to highlight in white colour or the relevant keywords." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"Google is acquiring data science community Kaggle. Sources tell us that Google is acquiring Kaggle, a platform that hosts data science and machine learning competitions. Details about the transaction remain somewhat vague , but given that Google is hosting its Cloud Next conference in San Francisco this week, the official announcement could come as early as tomorrow. Reached by phone, Kaggle co-founder CEO Anthony Goldbloom declined to deny that the acquisition is happening. Google itself declined 'to comment on rumors'. Kaggle, which has about half a million data scientists on its platform, was founded by Goldbloom and Ben Hamner in 2010. The service got an early start and even though it has a few competitors like DrivenData, TopCoder and HackerRank, it has managed to stay well ahead of them by focusing on its specific niche. The service is basically the de facto home for running data science and machine learning competitions. With Kaggle, Google is buying one of the largest and most active communities for data scientists - and with that, it will get increased mindshare in this community, too (though it already has plenty of that thanks to Tensorflow and other projects). Kaggle has a bit of a history with Google, too, but that's pretty recent. Earlier this month, Google and Kaggle teamed up to host a $100,000 machine learning competition around classifying YouTube videos. That competition had some deep integrations with the Google Cloud Platform, too. Our understanding is that Google will keep the service running - likely under its current name. While the acquisition is probably more about Kaggle's community than technology, Kaggle did build some interesting tools for hosting its competition and 'kernels', too. On Kaggle, kernels are basically the source code for analyzing data sets and developers can share this code on the platform (the company previously called them 'scripts'). Like similar competition-centric sites, Kaggle also runs a job board, too. It's unclear what Google will do with that part of the service. According to Crunchbase, Kaggle raised $12.5 million (though PitchBook says it's $12.75) since its launch in 2010. Investors in Kaggle include Index Ventures, SV Angel, Max Levchin, Naval Ravikant, Google chief economist Hal Varian, Khosla Ventures and Yuri Milner\"" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from yake.core.highlight import TextHighlighter\n", + "\n", + "th = TextHighlighter(\n", + " max_ngram_size=3, highlight_pre=\"\", highlight_post=\"\"\n", + ")\n", + "th.highlight(text, keywords)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "While English (`en`) is the default language, users can use YAKE! to extract keywords from whatever language they want to by specifying the the corresponding language universal code. The below example shows how to extract keywords from a portuguese text." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "('Conta-me Histórias', 0.006225012963810038)\n", + "('LIAAD do INESC', 0.01899063587015275)\n", + "('INESC TEC', 0.01995432290332246)\n", + "('Conta-me', 0.04513273690417472)\n", + "('Histórias', 0.04513273690417472)\n", + "('Prémio Arquivo.pt', 0.05749361520927859)\n", + "('LIAAD', 0.07738867367929901)\n", + "('INESC', 0.07738867367929901)\n", + "('TEC', 0.08109398065524037)\n", + "('Xutos inspiram projeto', 0.08720742489353424)\n", + "('inspiram projeto premiado', 0.08720742489353424)\n", + "('Adam Jatwot docente', 0.09407053486771558)\n", + "('Arquivo.pt', 0.10261392141666957)\n", + "('Alípio Jorge', 0.12190479662535166)\n", + "('Ciências da Universidade', 0.12368384021490342)\n", + "('Ricardo Campos investigador', 0.12789997272332762)\n", + "('Politécnico de Tomar', 0.13323587141127738)\n", + "('Arian Pasquali', 0.13323587141127738)\n", + "('Vitor Mangaravite', 0.13323587141127738)\n", + "('preservados da Web', 0.13596322680882506)\n" + ] + } + ], + "source": [ + "import yake\n", + "\n", + "text = \"\"\"\n", + "\"Conta-me Histórias.\" Xutos inspiram projeto premiado. A plataforma \"Conta-me Histórias\" foi distinguida com o Prémio Arquivo.pt, atribuído a trabalhos inovadores de investigação ou aplicação de recursos preservados da Web, através dos serviços de pesquisa e acesso disponibilizados publicamente pelo Arquivo.pt . Nesta plataforma em desenvolvimento, o utilizador pode pesquisar sobre qualquer tema e ainda executar alguns exemplos predefinidos. Como forma de garantir a pluralidade e diversidade de fontes de informação, esta são utilizadas 24 fontes de notícias eletrónicas, incluindo a TSF. Uma versão experimental (beta) do \"Conta-me Histórias\" está disponível aqui.\n", + "A plataforma foi desenvolvida por Ricardo Campos investigador do LIAAD do INESC TEC e docente do Instituto Politécnico de Tomar, Arian Pasquali e Vitor Mangaravite, também investigadores do LIAAD do INESC TEC, Alípio Jorge, coordenador do LIAAD do INESC TEC e docente na Faculdade de Ciências da Universidade do Porto, e Adam Jatwot docente da Universidade de Kyoto.\n", + "\"\"\"\n", + "\n", + "custom_kw_extractor = yake.KeywordExtractor(lan=\"pt\")\n", + "keywords = custom_kw_extractor.extract_keywords(text)\n", + "\n", + "for kw in keywords:\n", + " print(kw)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### WordCloud" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the following we are going to constuct a word cloud. To begin, we need to adapt the \"content\" structure to a dictionary consisting of the keyword and of the score. In addition to that, we resort to a normalization function that bounds the values into a range between [0,1]." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'Conta-me Histórias': 1.0,\n", + " 'LIAAD do INESC': 0.9016047583205323,\n", + " 'INESC TEC': 0.8941768232148362,\n", + " 'Conta-me': 0.7001059072167914,\n", + " 'Histórias': 0.7001059072167914,\n", + " 'Prémio Arquivo.pt': 0.6048303678150379,\n", + " 'LIAAD': 0.4514826541353427,\n", + " 'INESC': 0.4514826541353427,\n", + " 'TEC': 0.4229227806321687,\n", + " 'Xutos inspiram projeto': 0.37580139629126075,\n", + " 'inspiram projeto premiado': 0.37580139629126075,\n", + " 'Adam Jatwot docente': 0.3229017164607676,\n", + " 'Arquivo.pt': 0.25705075169290126,\n", + " 'Alípio Jorge': 0.10835997942955777,\n", + " 'Ciências da Universidade': 0.09464741520636755,\n", + " 'Ricardo Campos investigador': 0.06215018572037523,\n", + " 'Politécnico de Tomar': 0.021021989718509326,\n", + " 'Arian Pasquali': 0.021021989718509326,\n", + " 'Vitor Mangaravite': 0.021021989718509326,\n", + " 'preservados da Web': 0.0}" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def normalize_scores(keywords):\n", + " if len(keywords) == 0:\n", + " return {}\n", + " max_value = max([item[1] for item in keywords])\n", + " min_value = min([item[1] for item in keywords])\n", + "\n", + " result = {}\n", + " for item in keywords:\n", + " normalized_score = (item[1] - float(min_value)) / (\n", + " float(max_value) - float(min_value)\n", + " )\n", + " result[item[0]] = abs(1 - normalized_score)\n", + "\n", + " return result\n", + "\n", + "\n", + "keyword2WordCloud = normalize_scores(keywords)\n", + "keyword2WordCloud" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "the following code is a normalizing fuction of the data. The results vary betweent [0,1] where the upper bound isn't necessarly 1 (it can be lower than 1)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```python\n", + "def normalize_scores(keywords):\n", + " if len(keywords) == 0:\n", + " return {}\n", + " max_value = max([item[1] for\n", + " item in keywords])\n", + " \n", + " result = {}\n", + " for item in keywords:\n", + " normalized_score = 1 - item[1]/float(max_value)\n", + " result[item[0]] = abs(normalized_score)\n", + "\n", + " return result\n", + "\n", + "keyword2WordCloud = normalize_scores(keywords)\n", + "keyword2WordCloud\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Later, its possible to build a word cloud using `matplotlib`. If, during installation, you receive an error message stating that Microsoft Visual C++ 14.0 (or higher) is required, you should proceed with its installation. See how to do it on this [web page](https://www.scivision.dev/python-windows-visual-c-14-required/) or in this [video](https://www.youtube.com/watch?v=_keTL9ymGjw)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!uv pip install matplotlib\n", + "!uv pip install wordcloud" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(-0.5, 999.5, 499.5, -0.5)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" }, - "nbformat": 4, - "nbformat_minor": 4 + { + "data": { + "image/png": "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", + "text/plain": [ + "
          " + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from wordcloud import WordCloud\n", + "import matplotlib.pyplot as plt\n", + "\n", + "wordcloud = WordCloud(\n", + " max_font_size=100, max_words=20, width=1000, height=500\n", + ").generate_from_frequencies(\n", + " keyword2WordCloud\n", + ") # Objeto que permite gerar wordcloud a partir de texto\n", + "plt.figure(figsize=(16, 9))\n", + "plt.imshow(\n", + " wordcloud, interpolation=\"bilinear\"\n", + ") # imshow plota imagens que derivam de arrays\n", + "plt.axis(\"off\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now suppose you need to send this image through an API. To achieve this, you should convert the image to base64. The code below allows you to store the image in a buffer and shows its conversion to base64." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import base64\n", + "import io\n", + "\n", + "buffer = io.BytesIO()\n", + "wordcloud.to_image().save(buffer, \"png\")\n", + "b64 = str(base64.b64encode(buffer.getvalue()).decode(\"ascii\"))\n", + "b64" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From the base64 string, it would then be possible to display the image again." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from PIL import Image\n", + "\n", + "img1 = Image.open(io.BytesIO(base64.b64decode(b64)))\n", + "img1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Usage (Command Line)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```\n", + "Usage: yake [OPTIONS]\n", + "\n", + "Options:\n", + " --help Show this message and exit.\n", + " -ti, --text_input TEXT Input text, SURROUNDED by single quotes(')\n", + " -i, --input_file TEXT Input file\n", + " -l, --language TEXT Language\n", + " -n, --ngram-size INTEGER Max size of the ngram.\n", + " -df, --dedup-func [leve|jaro|seqm] Deduplication function.\n", + " -dl, --dedup-lim FLOAT Deduplication limiar.\n", + " -ws, --window-size INTEGER Window size.\n", + " -t, --top INTEGER Number of keyphrases to extract\n", + " -v, --verbose Gets detailed information (such as the score)\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A few examples:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```\n", + "yake -i text.txt -l en -n 3\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Related Projects" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- [Spark NLP](https://www.johnsnowlabs.com/spark-nlp-in-action/)\n", + "- [Spark NLP Keywords Extraction Demo](https://demo.johnsnowlabs.com/public/KEYPHRASE_EXTRACTION/)\n", + "- [kaggle](https://www.youtube.com/watch?v=6TBvZmg7AsA)\n", + "- [textacy](https://github.com/chartbeat-labs/textacy/search?q=yake)\n", + "- [pke - pyhton keyphrase extraction](https://github.com/boudinfl/pke)\n", + "- [dendro](http://dendro-stg.inesctec.pt/)\n", + "- [conta-me histórias](http://contamehistorias.pt)\n", + "- [time-matters](http://time-matters.inesctec.pt)\n", + "- [The General Index](https://archive.org/details/GeneralIndex)\n", + "- [Nature. Giant, free index to world’s research papers released online](https://www.nature.com/articles/d41586-021-02895-8)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Awards" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[ECIR'18](http://ecir2018.org) Best Short Paper (see the below reference)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## References" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Please cite the following works when using YAKE:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**In-depth journal paper at Information Sciences Journal**\n", + "\n", + "- Campos, R., Mangaravite, V., Pasquali, A., Jatowt, A., Jorge, A., Nunes, C. and Jatowt, A. (2020). YAKE! Keyword Extraction from Single Documents using Multiple Local Features. In Information Sciences Journal. Elsevier, Vol 509, pp 257-289. [pdf](https://doi.org/10.1016/j.ins.2019.09.013)\n", + "\n", + "**ECIR'18 Best Short Paper**\n", + "\n", + "- Campos R., Mangaravite V., Pasquali A., Jorge A.M., Nunes C., and Jatowt A. (2018). A Text Feature Based Automatic Keyword Extraction Method for Single Documents. In: Pasi G., Piwowarski B., Azzopardi L., Hanbury A. (eds). Advances in Information Retrieval. ECIR 2018 (Grenoble, France. March 26 – 29). Lecture Notes in Computer Science, vol 10772, pp. 684 - 691. [pdf](https://link.springer.com/chapter/10.1007/978-3-319-76941-7_63)\n", + "\n", + "- Campos R., Mangaravite V., Pasquali A., Jorge A.M., Nunes C., and Jatowt A. (2018). YAKE! Collection-independent Automatic Keyword Extractor. In: Pasi G., Piwowarski B., Azzopardi L., Hanbury A. (eds). Advances in Information Retrieval. ECIR 2018 (Grenoble, France. March 26 – 29). Lecture Notes in Computer Science, vol 10772, pp. 806 - 810. [pdf](https://link.springer.com/chapter/10.1007/978-3-319-76941-7_80)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Media" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- [INESC TEC technology used to create a database of keywords obtained from more than 100 million scientific articles](https://bip.inesctec.pt/en/noticias/inesc-tec-technology-used-to-create-a-database-of-keywords-obtained-from-more-than-100-million-scientific-articles/)\n", + "- [This tool can extract keywords from texts in every language about any topic](https://www.alphagalileo.org/en-gb/Item-Display/ItemId/216276?returnurl=https://www.alphagalileo.org/en-gb/Item-Display/ItemId/216276)\n", + "- [INESC TEC team wins another Best Paper Award](https://www.inesctec.pt/en/news/inesc-tec-team-wins-another-best-paper-award#about)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "yake", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": true, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": true, + "toc_position": { + "height": "calc(100% - 180px)", + "left": "10px", + "top": "150px", + "width": "255px" + }, + "toc_section_display": true, + "toc_window_display": true + } + }, + "nbformat": 4, + "nbformat_minor": 4 } diff --git a/docs-site/source.config.ts b/docs-site/source.config.ts index 4cb6ef06..c03141b6 100644 --- a/docs-site/source.config.ts +++ b/docs-site/source.config.ts @@ -1,17 +1,9 @@ import { defineDocs, defineConfig, defineCollections } from 'fumadocs-mdx/config'; -// Options: https://fumadocs.vercel.app/docs/mdx/collections#define-docs -export const docs = defineCollections({ - type: 'doc', +export const docs = defineDocs({ dir: 'content/docs', }); -export const meta = defineCollections({ - type: 'meta', - dir: 'content/docs', -}); - - export default defineConfig({ mdxOptions: { // MDX options diff --git a/docs-site/tsconfig.json b/docs-site/tsconfig.json index 7e4699b6..5a0e5b25 100644 --- a/docs-site/tsconfig.json +++ b/docs-site/tsconfig.json @@ -2,7 +2,11 @@ "compilerOptions": { "baseUrl": ".", "target": "ESNext", - "lib": ["dom", "dom.iterable", "esnext"], + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], "allowJs": true, "skipLibCheck": true, "strict": true, @@ -13,12 +17,18 @@ "moduleResolution": "bundler", "resolveJsonModule": true, "isolatedModules": true, - "jsx": "preserve", + "jsx": "react-jsx", "incremental": true, "paths": { - "@/.source": ["./.source/index.ts"], - "@/*": ["./*"], - "fumadocs-ui/*": ["./node_modules/fumadocs-ui/*"] + "@/*": [ + "./*" + ], + "fumadocs-ui/*": [ + "./node_modules/fumadocs-ui/*" + ], + "fumadocs-mdx:collections/*": [ + ".source/*" + ] }, "plugins": [ { @@ -26,6 +36,13 @@ } ] }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "types/**/*.d.ts"], - "exclude": ["node_modules"] -} \ No newline at end of file + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/dev/types/**/*.ts" + ], + "exclude": [ + "node_modules" + ] +} diff --git a/package-lock.json b/package-lock.json index 666f3320..584a78e4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,34 +1,29 @@ { "name": "yake", + "version": "7.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { + "name": "yake", + "version": "7.1.0", + "license": "LGPL-3.0-only", "dependencies": { "@types/mdx": "^2.0.13", - "fumadocs-mdx": "^11.6.4" + "fumadocs-mdx": "^14.2.7" }, "devDependencies": { "gh-pages": "^6.3.0" } }, - "node_modules/@emnapi/runtime": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", - "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", - "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", + "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", "cpu": [ "ppc64" ], + "license": "MIT", "optional": true, "os": [ "aix" @@ -38,12 +33,13 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", - "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", + "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", "cpu": [ "arm" ], + "license": "MIT", "optional": true, "os": [ "android" @@ -53,12 +49,13 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", - "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", + "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "android" @@ -68,12 +65,13 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", - "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", + "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "android" @@ -83,12 +81,13 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", - "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", + "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -98,12 +97,13 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", - "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", + "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -113,12 +113,13 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", - "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", + "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -128,12 +129,13 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", - "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", + "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -143,12 +145,13 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", - "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", + "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", "cpu": [ "arm" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -158,12 +161,13 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", - "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", + "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -173,12 +177,13 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", - "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", + "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", "cpu": [ "ia32" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -188,12 +193,13 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", - "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", + "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", "cpu": [ "loong64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -203,12 +209,13 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", - "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", + "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", "cpu": [ "mips64el" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -218,12 +225,13 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", - "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", + "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", "cpu": [ "ppc64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -233,12 +241,13 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", - "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", + "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", "cpu": [ "riscv64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -248,12 +257,13 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", - "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", + "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", "cpu": [ "s390x" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -263,12 +273,13 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", - "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", + "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -278,12 +289,13 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", - "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", + "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "netbsd" @@ -293,12 +305,13 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", - "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", + "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "netbsd" @@ -308,12 +321,13 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", - "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", + "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "openbsd" @@ -323,12 +337,13 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", - "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", + "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "openbsd" @@ -337,13 +352,30 @@ "node": ">=18" } }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", + "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", - "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", + "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "sunos" @@ -353,12 +385,13 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", - "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", + "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -368,12 +401,13 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", - "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", + "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", "cpu": [ "ia32" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -383,12 +417,13 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", - "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", + "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -397,565 +432,70 @@ "node": ">=18" } }, - "node_modules/@formatjs/intl-localematcher": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.1.tgz", - "integrity": "sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==", + "node_modules/@formatjs/fast-memoize": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-3.1.0.tgz", + "integrity": "sha512-b5mvSWCI+XVKiz5WhnBCY3RJ4ZwfjAidU0yVlKa3d3MSgKmH1hC3tBGEAtYyN5mqL7N0G5x0BOUYyO8CEupWgg==", + "license": "MIT", "peer": true, "dependencies": { - "tslib": "^2.8.0" - } - }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.1.tgz", - "integrity": "sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.1.0" - } - }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.1.tgz", - "integrity": "sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.1.0" - } - }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz", - "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz", - "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz", - "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz", - "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz", - "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz", - "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz", - "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz", - "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz", - "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.1.tgz", - "integrity": "sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.1.0" - } - }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.1.tgz", - "integrity": "sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.1.0" - } - }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.1.tgz", - "integrity": "sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.1.0" - } - }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.1.tgz", - "integrity": "sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.1.0" - } - }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.1.tgz", - "integrity": "sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.1.0" + "tslib": "^2.8.1" } }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.1.tgz", - "integrity": "sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.1.0" - } - }, - "node_modules/@img/sharp-wasm32": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.1.tgz", - "integrity": "sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==", - "cpu": [ - "wasm32" - ], - "optional": true, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.8.1.tgz", + "integrity": "sha512-xwEuwQFdtSq1UKtQnyTZWC+eHdv7Uygoa+H2k/9uzBVQjDyp9r20LNDNKedWXll7FssT3GRHvqsdJGYSUWqYFA==", + "license": "MIT", "peer": true, "dependencies": { - "@emnapi/runtime": "^1.4.0" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.1.tgz", - "integrity": "sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.1.tgz", - "integrity": "sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" + "@formatjs/fast-memoize": "3.1.0", + "tslib": "^2.8.1" } }, "node_modules/@mdx-js/mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", - "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.1.tgz", + "integrity": "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdx": "^2.0.0", + "acorn": "^8.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", - "estree-util-scope": "^1.0.0", - "estree-walker": "^3.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "markdown-extensions": "^2.0.0", - "recma-build-jsx": "^1.0.0", - "recma-jsx": "^1.0.0", - "recma-stringify": "^1.0.0", - "rehype-recma": "^1.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" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@next/env": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.2.tgz", - "integrity": "sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==", - "peer": true - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.2.tgz", - "integrity": "sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.2.tgz", - "integrity": "sha512-ro/fdqaZWL6k1S/5CLv1I0DaZfDVJkWNaUU3un8Lg6m0YENWlDulmIWzV96Iou2wEYyEsZq51mwV8+XQXqMp3w==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.2.tgz", - "integrity": "sha512-covwwtZYhlbRWK2HlYX9835qXum4xYZ3E2Mra1mdQ+0ICGoMiw1+nVAn4d9Bo7R3JqSmK1grMq/va+0cdh7bJA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.2.tgz", - "integrity": "sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.2.tgz", - "integrity": "sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.2.tgz", - "integrity": "sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.2.tgz", - "integrity": "sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.2.tgz", - "integrity": "sha512-aW5B8wOPioJ4mBdMDXkt5f3j8pUr9W8AnlX0Df35uRWNT1Y6RIybxjnSUe+PhM+M1bwgyY8PHLmXZC6zT1o5tA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 10" + "estree-util-scope": "^1.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -968,6 +508,8 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -976,6 +518,8 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -985,93 +529,102 @@ } }, "node_modules/@orama/orama": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@orama/orama/-/orama-3.1.7.tgz", - "integrity": "sha512-6yB0117ZjsgNevZw3LP+bkrZa9mU/POPVaXgzMPOBbBc35w2P3R+1vMMhEfC06kYCpd5bf0jodBaTkYQW5TVeQ==", + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/@orama/orama/-/orama-3.1.18.tgz", + "integrity": "sha512-a61ljmRVVyG5MC/698C8/FfFDw5a8LOIvyOLW5fztgUXqUpc1jOfQzOitSCbge657OgXXThmY3Tk8fpiDb4UcA==", + "license": "Apache-2.0", "peer": true, "engines": { "node": ">= 20.0.0" } }, "node_modules/@shikijs/core": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.4.2.tgz", - "integrity": "sha512-AG8vnSi1W2pbgR2B911EfGqtLE9c4hQBYkv/x7Z+Kt0VxhgQKcW7UNDVYsu9YxwV6u+OJrvdJrMq6DNWoBjihQ==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.22.0.tgz", + "integrity": "sha512-iAlTtSDDbJiRpvgL5ugKEATDtHdUVkqgHDm/gbD2ZS9c88mx7G1zSYjjOxp5Qa0eaW0MAQosFRmJSk354PRoQA==", + "license": "MIT", "peer": true, "dependencies": { - "@shikijs/types": "3.4.2", + "@shikijs/types": "3.22.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "node_modules/@shikijs/engine-javascript": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.4.2.tgz", - "integrity": "sha512-1/adJbSMBOkpScCE/SB6XkjJU17ANln3Wky7lOmrnpl+zBdQ1qXUJg2GXTYVHRq+2j3hd1DesmElTXYDgtfSOQ==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.22.0.tgz", + "integrity": "sha512-jdKhfgW9CRtj3Tor0L7+yPwdG3CgP7W+ZEqSsojrMzCjD1e0IxIbwUMDDpYlVBlC08TACg4puwFGkZfLS+56Tw==", + "license": "MIT", "peer": true, "dependencies": { - "@shikijs/types": "3.4.2", + "@shikijs/types": "3.22.0", "@shikijs/vscode-textmate": "^10.0.2", - "oniguruma-to-es": "^4.3.3" + "oniguruma-to-es": "^4.3.4" } }, "node_modules/@shikijs/engine-oniguruma": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.4.2.tgz", - "integrity": "sha512-zcZKMnNndgRa3ORja6Iemsr3DrLtkX3cAF7lTJkdMB6v9alhlBsX9uNiCpqofNrXOvpA3h6lHcLJxgCIhVOU5Q==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.22.0.tgz", + "integrity": "sha512-DyXsOG0vGtNtl7ygvabHd7Mt5EY8gCNqR9Y7Lpbbd/PbJvgWrqaKzH1JW6H6qFkuUa8aCxoiYVv8/YfFljiQxA==", + "license": "MIT", "peer": true, "dependencies": { - "@shikijs/types": "3.4.2", + "@shikijs/types": "3.22.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "node_modules/@shikijs/langs": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.4.2.tgz", - "integrity": "sha512-H6azIAM+OXD98yztIfs/KH5H4PU39t+SREhmM8LaNXyUrqj2mx+zVkr8MWYqjceSjDw9I1jawm1WdFqU806rMA==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.22.0.tgz", + "integrity": "sha512-x/42TfhWmp6H00T6uwVrdTJGKgNdFbrEdhaDwSR5fd5zhQ1Q46bHq9EO61SCEWJR0HY7z2HNDMaBZp8JRmKiIA==", + "license": "MIT", "peer": true, "dependencies": { - "@shikijs/types": "3.4.2" + "@shikijs/types": "3.22.0" } }, "node_modules/@shikijs/rehype": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/rehype/-/rehype-3.4.2.tgz", - "integrity": "sha512-atbsrT3UKs25OdKVbNoHyKO9ZP7KEBPlo1oanPGMkvUL0fLictpxMPz6vPE2YTeHhpwz7EMrA4K4FHRY8XAReg==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/rehype/-/rehype-3.22.0.tgz", + "integrity": "sha512-69b2VPc6XBy/VmAJlpBU5By+bJSBdE2nvgRCZXav7zujbrjXuT0F60DIrjKuutjPqNufuizE+E8tIZr2Yn8Z+g==", + "license": "MIT", "peer": true, "dependencies": { - "@shikijs/types": "3.4.2", + "@shikijs/types": "3.22.0", "@types/hast": "^3.0.4", "hast-util-to-string": "^3.0.1", - "shiki": "3.4.2", + "shiki": "3.22.0", "unified": "^11.0.5", - "unist-util-visit": "^5.0.0" + "unist-util-visit": "^5.1.0" } }, "node_modules/@shikijs/themes": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.4.2.tgz", - "integrity": "sha512-qAEuAQh+brd8Jyej2UDDf+b4V2g1Rm8aBIdvt32XhDPrHvDkEnpb7Kzc9hSuHUxz0Iuflmq7elaDuQAP9bHIhg==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.22.0.tgz", + "integrity": "sha512-o+tlOKqsr6FE4+mYJG08tfCFDS+3CG20HbldXeVoyP+cYSUxDhrFf3GPjE60U55iOkkjbpY2uC3It/eeja35/g==", + "license": "MIT", "peer": true, "dependencies": { - "@shikijs/types": "3.4.2" + "@shikijs/types": "3.22.0" } }, "node_modules/@shikijs/transformers": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-3.4.2.tgz", - "integrity": "sha512-I5baLVi/ynLEOZoWSAMlACHNnG+yw5HDmse0oe+GW6U1u+ULdEB3UHiVWaHoJSSONV7tlcVxuaMy74sREDkSvg==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-3.22.0.tgz", + "integrity": "sha512-E7eRV7mwDBjueLF6852n2oYeJYxBq3NSsDk+uyruYAXONv4U8holGmIrT+mPRJQ1J1SNOH6L8G19KRzmBawrFw==", + "license": "MIT", "peer": true, "dependencies": { - "@shikijs/core": "3.4.2", - "@shikijs/types": "3.4.2" + "@shikijs/core": "3.22.0", + "@shikijs/types": "3.22.0" } }, "node_modules/@shikijs/types": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.4.2.tgz", - "integrity": "sha512-zHC1l7L+eQlDXLnxvM9R91Efh2V4+rN3oMVS2swCBssbj2U/FBwybD1eeLaq8yl/iwT+zih8iUbTBCgGZOYlVg==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.22.0.tgz", + "integrity": "sha512-491iAekgKDBFE67z70Ok5a8KBMsQ2IJwOWw3us/7ffQkIBCyOQfm/aNwVMBUriP02QshIfgHCBSIYAl3u2eWjg==", + "license": "MIT", "peer": true, "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", @@ -1082,45 +635,35 @@ "version": "10.0.2", "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", + "license": "MIT", "peer": true }, "node_modules/@standard-schema/spec": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", - "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==" - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "peer": true - }, - "node_modules/@swc/helpers": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", - "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", - "peer": true, - "dependencies": { - "tslib": "^2.8.0" - } + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", "dependencies": { "@types/ms": "*" } }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==" + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" }, "node_modules/@types/estree-jsx": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", "dependencies": { "@types/estree": "*" } @@ -1129,6 +672,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", "dependencies": { "@types/unist": "*" } @@ -1137,6 +681,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", "dependencies": { "@types/unist": "*" } @@ -1144,27 +689,32 @@ "node_modules/@types/mdx": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", - "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==" + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "license": "MIT" }, "node_modules/@types/ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==" + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" }, "node_modules/@types/unist": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==" + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" }, "node_modules/@ungap/structured-clone": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==" + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1176,6 +726,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -1183,13 +734,15 @@ "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1198,6 +751,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", "bin": { "astring": "bin/astring" } @@ -1206,12 +760,14 @@ "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/bail": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -1221,6 +777,8 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -1228,42 +786,11 @@ "node": ">=8" } }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "peer": true, - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001718", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz", - "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true - }, "node_modules/ccount": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -1273,6 +800,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -1282,6 +810,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -1291,6 +820,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -1300,89 +830,42 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "license": "MIT", "dependencies": { - "readdirp": "^4.0.1" + "readdirp": "^5.0.0" }, "engines": { - "node": ">= 14.16.0" + "node": ">= 20.19.0" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", - "peer": true - }, "node_modules/collapse-white-space": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "optional": true, - "peer": true, - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - }, - "engines": { - "node": ">=12.5.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "optional": true, - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "optional": true, - "peer": true - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "optional": true, - "peer": true, - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, "node_modules/comma-separated-tokens": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -1393,6 +876,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } @@ -1401,31 +885,21 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/compute-scroll-into-view": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", + "license": "MIT", "peer": true }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -1439,9 +913,10 @@ } }, "node_modules/decode-named-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz", - "integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", + "license": "MIT", "dependencies": { "character-entities": "^2.0.0" }, @@ -1454,30 +929,16 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/detect-libc": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", - "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", - "peer": true - }, "node_modules/devlop": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", "dependencies": { "dequal": "^2.0.0" }, @@ -1491,6 +952,7 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -1502,12 +964,14 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz", "integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/esast-util-from-estree": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", @@ -1523,6 +987,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "acorn": "^8.0.0", @@ -1535,10 +1000,11 @@ } }, "node_modules/esbuild": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", - "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", + "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -1546,37 +1012,39 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.4", - "@esbuild/android-arm": "0.25.4", - "@esbuild/android-arm64": "0.25.4", - "@esbuild/android-x64": "0.25.4", - "@esbuild/darwin-arm64": "0.25.4", - "@esbuild/darwin-x64": "0.25.4", - "@esbuild/freebsd-arm64": "0.25.4", - "@esbuild/freebsd-x64": "0.25.4", - "@esbuild/linux-arm": "0.25.4", - "@esbuild/linux-arm64": "0.25.4", - "@esbuild/linux-ia32": "0.25.4", - "@esbuild/linux-loong64": "0.25.4", - "@esbuild/linux-mips64el": "0.25.4", - "@esbuild/linux-ppc64": "0.25.4", - "@esbuild/linux-riscv64": "0.25.4", - "@esbuild/linux-s390x": "0.25.4", - "@esbuild/linux-x64": "0.25.4", - "@esbuild/netbsd-arm64": "0.25.4", - "@esbuild/netbsd-x64": "0.25.4", - "@esbuild/openbsd-arm64": "0.25.4", - "@esbuild/openbsd-x64": "0.25.4", - "@esbuild/sunos-x64": "0.25.4", - "@esbuild/win32-arm64": "0.25.4", - "@esbuild/win32-ia32": "0.25.4", - "@esbuild/win32-x64": "0.25.4" + "@esbuild/aix-ppc64": "0.27.3", + "@esbuild/android-arm": "0.27.3", + "@esbuild/android-arm64": "0.27.3", + "@esbuild/android-x64": "0.27.3", + "@esbuild/darwin-arm64": "0.27.3", + "@esbuild/darwin-x64": "0.27.3", + "@esbuild/freebsd-arm64": "0.27.3", + "@esbuild/freebsd-x64": "0.27.3", + "@esbuild/linux-arm": "0.27.3", + "@esbuild/linux-arm64": "0.27.3", + "@esbuild/linux-ia32": "0.27.3", + "@esbuild/linux-loong64": "0.27.3", + "@esbuild/linux-mips64el": "0.27.3", + "@esbuild/linux-ppc64": "0.27.3", + "@esbuild/linux-riscv64": "0.27.3", + "@esbuild/linux-s390x": "0.27.3", + "@esbuild/linux-x64": "0.27.3", + "@esbuild/netbsd-arm64": "0.27.3", + "@esbuild/netbsd-x64": "0.27.3", + "@esbuild/openbsd-arm64": "0.27.3", + "@esbuild/openbsd-x64": "0.27.3", + "@esbuild/openharmony-arm64": "0.27.3", + "@esbuild/sunos-x64": "0.27.3", + "@esbuild/win32-arm64": "0.27.3", + "@esbuild/win32-ia32": "0.27.3", + "@esbuild/win32-x64": "0.27.3" } }, "node_modules/escape-string-regexp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -1585,22 +1053,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/estree-util-attach-comments": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" }, @@ -1613,6 +1070,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", @@ -1628,6 +1086,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -1637,6 +1096,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0" @@ -1650,6 +1110,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "astring": "^1.8.0", @@ -1661,9 +1122,10 @@ } }, "node_modules/estree-util-value-to-estree": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.4.0.tgz", - "integrity": "sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.5.0.tgz", + "integrity": "sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" }, @@ -1675,6 +1137,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/unist": "^3.0.0" @@ -1688,6 +1151,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" } @@ -1695,23 +1159,15 @@ "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -1724,18 +1180,38 @@ } }, "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/filename-reserved-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -1745,6 +1221,7 @@ "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", "dev": true, + "license": "MIT", "dependencies": { "filename-reserved-regex": "^2.0.0", "strip-outer": "^1.0.1", @@ -1761,6 +1238,8 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1773,6 +1252,7 @@ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -1790,6 +1270,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -1799,10 +1280,11 @@ } }, "node_modules/fs-extra": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz", + "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -1813,41 +1295,89 @@ } }, "node_modules/fumadocs-core": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/fumadocs-core/-/fumadocs-core-15.3.3.tgz", - "integrity": "sha512-3i547DisQ/k4v5UYECgTIi14be2TGrnomwT6AKOis+Nj0A8sUdaMEU6KgYT9GAOUeeC6A733pSm6Bi8aY91/IQ==", + "version": "16.5.3", + "resolved": "https://registry.npmjs.org/fumadocs-core/-/fumadocs-core-16.5.3.tgz", + "integrity": "sha512-6cG0ZCMLccmA8ySMuEHzovPUSlonvxRyLsfAqGHb0bMxSHfQ83cL83BwkAzARdklr32f7V3VFTLmK+dydHB3RQ==", + "license": "MIT", "peer": true, "dependencies": { - "@formatjs/intl-localematcher": "^0.6.1", - "@orama/orama": "^3.1.6", - "@shikijs/rehype": "^3.4.2", - "@shikijs/transformers": "^3.4.2", + "@formatjs/intl-localematcher": "^0.8.1", + "@orama/orama": "^3.1.18", + "@shikijs/rehype": "^3.22.0", + "@shikijs/transformers": "^3.22.0", + "estree-util-value-to-estree": "^3.5.0", "github-slugger": "^2.0.0", "hast-util-to-estree": "^3.1.3", "hast-util-to-jsx-runtime": "^2.3.6", "image-size": "^2.0.2", + "mdast-util-mdx": "^3.0.0", + "mdast-util-to-markdown": "^2.1.2", "negotiator": "^1.0.0", - "react-remove-scroll": "^2.6.3", - "remark": "^15.0.0", + "npm-to-yarn": "^3.0.1", + "path-to-regexp": "^8.3.0", + "remark": "^15.0.1", "remark-gfm": "^4.0.1", + "remark-rehype": "^11.1.2", "scroll-into-view-if-needed": "^3.1.0", - "shiki": "^3.4.2", - "unist-util-visit": "^5.0.0" + "shiki": "^3.22.0", + "tinyglobby": "^0.2.15", + "unified": "^11.0.5", + "unist-util-visit": "^5.1.0", + "vfile": "^6.0.3" }, "peerDependencies": { - "@oramacloud/client": "1.x.x || 2.x.x", - "algoliasearch": "4.24.0", - "next": "14.x.x || 15.x.x", - "react": "18.x.x || 19.x.x", - "react-dom": "18.x.x || 19.x.x" + "@mdx-js/mdx": "*", + "@mixedbread/sdk": "^0.46.0", + "@orama/core": "1.x.x", + "@oramacloud/client": "2.x.x", + "@tanstack/react-router": "1.x.x", + "@types/estree-jsx": "*", + "@types/hast": "*", + "@types/mdast": "*", + "@types/react": "*", + "algoliasearch": "5.x.x", + "lucide-react": "*", + "next": "16.x.x", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "react-router": "7.x.x", + "waku": "^0.26.0 || ^0.27.0 || ^1.0.0", + "zod": "4.x.x" }, "peerDependenciesMeta": { + "@mdx-js/mdx": { + "optional": true + }, + "@mixedbread/sdk": { + "optional": true + }, + "@orama/core": { + "optional": true + }, "@oramacloud/client": { "optional": true }, + "@tanstack/react-router": { + "optional": true + }, + "@types/estree-jsx": { + "optional": true + }, + "@types/hast": { + "optional": true + }, + "@types/mdast": { + "optional": true + }, + "@types/react": { + "optional": true + }, "algoliasearch": { "optional": true }, + "lucide-react": { + "optional": true + }, "next": { "optional": true }, @@ -1856,56 +1386,93 @@ }, "react-dom": { "optional": true + }, + "react-router": { + "optional": true + }, + "waku": { + "optional": true + }, + "zod": { + "optional": true } } }, "node_modules/fumadocs-mdx": { - "version": "11.6.4", - "resolved": "https://registry.npmjs.org/fumadocs-mdx/-/fumadocs-mdx-11.6.4.tgz", - "integrity": "sha512-pGczNrR+w31JJ8/L9TfFFoe0dGNV43suz2YXyz1iD1yQ2j2VldLqYZ12UyRi7IsqTiVBFUSkRks1iYBRvNr/4w==", - "dependencies": { - "@mdx-js/mdx": "^3.1.0", - "@standard-schema/spec": "^1.0.0", - "chokidar": "^4.0.3", - "cross-spawn": "^7.0.6", - "esbuild": "^0.25.4", - "estree-util-value-to-estree": "^3.4.0", - "fast-glob": "^3.3.3", - "gray-matter": "^4.0.3", - "js-yaml": "^4.1.0", - "lru-cache": "^11.1.0", + "version": "14.2.7", + "resolved": "https://registry.npmjs.org/fumadocs-mdx/-/fumadocs-mdx-14.2.7.tgz", + "integrity": "sha512-Q2W79F7wpwhq4HoYPw9GnMpf5ZmpdU7YzZND7EWwwOiWddfyzPh6EH/z7MFhhdhsTqRh9/kwwsu9XslWDRRPsg==", + "license": "MIT", + "dependencies": { + "@mdx-js/mdx": "^3.1.1", + "@standard-schema/spec": "^1.1.0", + "chokidar": "^5.0.0", + "esbuild": "^0.27.3", + "estree-util-value-to-estree": "^3.5.0", + "js-yaml": "^4.1.1", + "mdast-util-to-markdown": "^2.1.2", "picocolors": "^1.1.1", - "unist-util-visit": "^5.0.0", - "zod": "^3.24.4" + "picomatch": "^4.0.3", + "remark-mdx": "^3.1.1", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "unified": "^11.0.5", + "unist-util-remove-position": "^5.0.0", + "unist-util-visit": "^5.1.0", + "vfile": "^6.0.3", + "zod": "^4.3.6" }, "bin": { - "fumadocs-mdx": "bin.js" + "fumadocs-mdx": "dist/bin.js" }, "peerDependencies": { - "@fumadocs/mdx-remote": "^1.2.0", - "fumadocs-core": "^14.0.0 || ^15.0.0", - "next": "^15.3.0" + "@fumadocs/mdx-remote": "^1.4.0", + "@types/mdast": "*", + "@types/mdx": "*", + "@types/react": "*", + "fumadocs-core": "^15.0.0 || ^16.0.0", + "mdast-util-directive": "*", + "mdast-util-mdx-jsx": "*", + "next": "^15.3.0 || ^16.0.0", + "react": "*", + "vite": "6.x.x || 7.x.x" }, "peerDependenciesMeta": { "@fumadocs/mdx-remote": { "optional": true + }, + "@types/mdast": { + "optional": true + }, + "@types/mdx": { + "optional": true + }, + "@types/react": { + "optional": true + }, + "mdast-util-directive": { + "optional": true + }, + "mdast-util-mdx-jsx": { + "optional": true + }, + "next": { + "optional": true + }, + "react": { + "optional": true + }, + "vite": { + "optional": true } } }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/gh-pages": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-6.3.0.tgz", "integrity": "sha512-Ot5lU6jK0Eb+sszG8pciXdjMXdBJ5wODvgjR+imihTqsUWF2K6dJ9HST55lgqcs8wWcw6o6wAsUzfcYRhJPXbA==", "dev": true, + "license": "MIT", "dependencies": { "async": "^3.2.4", "commander": "^13.0.0", @@ -1927,12 +1494,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "license": "ISC", "peer": true }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -1945,6 +1515,7 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -1964,46 +1535,14 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "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" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/gray-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } + "dev": true, + "license": "ISC" }, "node_modules/hast-util-to-estree": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", @@ -2031,6 +1570,7 @@ "version": "9.0.5", "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "license": "MIT", "peer": true, "dependencies": { "@types/hast": "^3.0.0", @@ -2054,6 +1594,7 @@ "version": "2.3.6", "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", @@ -2080,6 +1621,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", + "license": "MIT", "peer": true, "dependencies": { "@types/hast": "^3.0.0" @@ -2093,6 +1635,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, @@ -2105,6 +1648,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", "peer": true, "funding": { "type": "github", @@ -2116,6 +1660,7 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -2124,6 +1669,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/image-size/-/image-size-2.0.2.tgz", "integrity": "sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==", + "license": "MIT", "peer": true, "bin": { "image-size": "bin/image-size.js" @@ -2133,14 +1679,16 @@ } }, "node_modules/inline-style-parser": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", - "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==" + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", + "license": "MIT" }, "node_modules/is-alphabetical": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -2150,6 +1698,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" @@ -2159,34 +1708,22 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "optional": true, - "peer": true - }, "node_modules/is-decimal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2195,6 +1732,8 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -2206,6 +1745,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -2215,6 +1755,8 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -2223,6 +1765,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -2230,15 +1773,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -2247,10 +1786,11 @@ } }, "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -2258,19 +1798,12 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -2282,24 +1815,18 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/lru-cache": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", - "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", - "engines": { - "node": "20 || >=22" - } - }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -2310,19 +1837,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/markdown-extensions": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "license": "MIT", "engines": { "node": ">=16" }, @@ -2334,6 +1853,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", "peer": true, "funding": { "type": "github", @@ -2344,6 +1864,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", "peer": true, "dependencies": { "@types/mdast": "^4.0.0", @@ -2360,6 +1881,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", @@ -2383,6 +1905,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", "peer": true, "dependencies": { "mdast-util-from-markdown": "^2.0.0", @@ -2402,6 +1925,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", "peer": true, "dependencies": { "@types/mdast": "^4.0.0", @@ -2419,6 +1943,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", "peer": true, "dependencies": { "@types/mdast": "^4.0.0", @@ -2436,6 +1961,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", "peer": true, "dependencies": { "@types/mdast": "^4.0.0", @@ -2451,6 +1977,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", "peer": true, "dependencies": { "@types/mdast": "^4.0.0", @@ -2468,6 +1995,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", "peer": true, "dependencies": { "@types/mdast": "^4.0.0", @@ -2484,6 +2012,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "license": "MIT", "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-mdx-expression": "^2.0.0", @@ -2500,6 +2029,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", @@ -2517,6 +2047,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", @@ -2540,6 +2071,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", @@ -2557,6 +2089,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" @@ -2567,9 +2100,10 @@ } }, "node_modules/mdast-util-to-hast": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", - "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -2590,6 +2124,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", @@ -2610,6 +2145,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0" }, @@ -2622,6 +2158,8 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -2640,6 +2178,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", @@ -2674,6 +2213,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", @@ -2697,6 +2237,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", "peer": true, "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", @@ -2717,6 +2258,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", "peer": true, "dependencies": { "micromark-util-character": "^2.0.0", @@ -2733,6 +2275,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", "peer": true, "dependencies": { "devlop": "^1.0.0", @@ -2753,6 +2296,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", "peer": true, "dependencies": { "devlop": "^1.0.0", @@ -2771,6 +2315,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", "peer": true, "dependencies": { "devlop": "^1.0.0", @@ -2788,6 +2333,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", "peer": true, "dependencies": { "micromark-util-types": "^2.0.0" @@ -2801,6 +2347,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", "peer": true, "dependencies": { "devlop": "^1.0.0", @@ -2828,6 +2375,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", @@ -2843,6 +2391,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", @@ -2864,6 +2413,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" }, @@ -2876,6 +2426,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "license": "MIT", "dependencies": { "acorn": "^8.0.0", "acorn-jsx": "^5.0.0", @@ -2895,6 +2446,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", @@ -2925,6 +2477,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -2945,6 +2498,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", @@ -2966,6 +2520,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", @@ -2992,6 +2547,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -3011,6 +2567,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", @@ -3032,6 +2589,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", @@ -3053,6 +2611,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -3072,6 +2631,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } @@ -3090,6 +2650,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -3110,6 +2671,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -3129,6 +2691,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } @@ -3147,6 +2710,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", @@ -3167,7 +2731,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-events-to-acorn": { "version": "2.0.3", @@ -3183,6 +2748,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/unist": "^3.0.0", @@ -3206,7 +2772,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-normalize-identifier": { "version": "2.0.1", @@ -3222,6 +2789,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } @@ -3240,6 +2808,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" } @@ -3258,6 +2827,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", @@ -3278,6 +2848,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", @@ -3298,7 +2869,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-types": { "version": "2.0.2", @@ -3313,12 +2885,15 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -3327,102 +2902,60 @@ "node": ">=8.6" } }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, "node_modules/negotiator": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", "peer": true, "engines": { "node": ">= 0.6" } }, - "node_modules/next": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/next/-/next-15.3.2.tgz", - "integrity": "sha512-CA3BatMyHkxZ48sgOCLdVHjFU36N7TF1HhqAHLFOkV6buwZnvMI84Cug8xD56B9mCuKrqXnLn94417GrZ/jjCQ==", + "node_modules/npm-to-yarn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-to-yarn/-/npm-to-yarn-3.0.1.tgz", + "integrity": "sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==", + "license": "MIT", "peer": true, - "dependencies": { - "@next/env": "15.3.2", - "@swc/counter": "0.1.3", - "@swc/helpers": "0.5.15", - "busboy": "1.6.0", - "caniuse-lite": "^1.0.30001579", - "postcss": "8.4.31", - "styled-jsx": "5.1.6" - }, - "bin": { - "next": "dist/bin/next" - }, "engines": { - "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" - }, - "optionalDependencies": { - "@next/swc-darwin-arm64": "15.3.2", - "@next/swc-darwin-x64": "15.3.2", - "@next/swc-linux-arm64-gnu": "15.3.2", - "@next/swc-linux-arm64-musl": "15.3.2", - "@next/swc-linux-x64-gnu": "15.3.2", - "@next/swc-linux-x64-musl": "15.3.2", - "@next/swc-win32-arm64-msvc": "15.3.2", - "@next/swc-win32-x64-msvc": "15.3.2", - "sharp": "^0.34.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.1.0", - "@playwright/test": "^1.41.2", - "babel-plugin-react-compiler": "*", - "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", - "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", - "sass": "^1.3.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependenciesMeta": { - "@opentelemetry/api": { - "optional": true - }, - "@playwright/test": { - "optional": true - }, - "babel-plugin-react-compiler": { - "optional": true - }, - "sass": { - "optional": true - } + "funding": { + "url": "https://github.com/nebrelbug/npm-to-yarn?sponsor=1" } }, "node_modules/oniguruma-parser": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz", "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==", + "license": "MIT", "peer": true }, "node_modules/oniguruma-to-es": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.3.tgz", - "integrity": "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.4.tgz", + "integrity": "sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==", + "license": "MIT", "peer": true, "dependencies": { "oniguruma-parser": "^0.12.1", @@ -3435,6 +2968,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -3450,6 +2984,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -3462,6 +2997,7 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -3470,6 +3006,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "character-entities-legacy": "^3.0.0", @@ -3487,23 +3024,28 @@ "node_modules/parse-entities/node_modules/@types/unist": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" + "node_modules/path-to-regexp": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", + "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==", + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/path-type": { @@ -3511,6 +3053,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3518,14 +3061,16 @@ "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -3536,6 +3081,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -3543,38 +3089,11 @@ "node": ">=8" } }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true, - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, "node_modules/property-information": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -3584,6 +3103,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -3597,104 +3117,16 @@ "type": "consulting", "url": "https://feross.org/support" } - ] - }, - "node_modules/react": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", - "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", - "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", - "peer": true, - "dependencies": { - "scheduler": "^0.26.0" - }, - "peerDependencies": { - "react": "^19.1.0" - } - }, - "node_modules/react-remove-scroll": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.0.tgz", - "integrity": "sha512-sGsQtcjMqdQyijAHytfGEELB8FufGbfXIsvUTe+NLx1GDRJCXtCFLBLUI1eyZCKXXvbEU2C6gai0PZKoIE9Vbg==", - "peer": true, - "dependencies": { - "react-remove-scroll-bar": "^2.3.7", - "react-style-singleton": "^2.2.3", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.3", - "use-sidecar": "^1.1.3" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", - "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", - "peer": true, - "dependencies": { - "react-style-singleton": "^2.2.2", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-style-singleton": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", - "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", - "peer": true, - "dependencies": { - "get-nonce": "^1.0.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } + ], + "license": "MIT" }, "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "license": "MIT", "engines": { - "node": ">= 14.18.0" + "node": ">= 20.19.0" }, "funding": { "type": "individual", @@ -3705,6 +3137,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-util-build-jsx": "^3.0.0", @@ -3716,9 +3149,10 @@ } }, "node_modules/recma-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", - "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.1.tgz", + "integrity": "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==", + "license": "MIT", "dependencies": { "acorn-jsx": "^5.0.0", "estree-util-to-js": "^2.0.0", @@ -3729,12 +3163,16 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/recma-parse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "esast-util-from-js": "^2.0.0", @@ -3750,6 +3188,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-util-to-js": "^2.0.0", @@ -3762,9 +3201,10 @@ } }, "node_modules/regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz", - "integrity": "sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", + "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", + "license": "MIT", "peer": true, "dependencies": { "regex-utilities": "^2.3.0" @@ -3774,6 +3214,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", + "license": "MIT", "peer": true, "dependencies": { "regex-utilities": "^2.3.0" @@ -3783,12 +3224,14 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "license": "MIT", "peer": true }, "node_modules/rehype-recma": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", @@ -3803,6 +3246,7 @@ "version": "15.0.1", "resolved": "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz", "integrity": "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==", + "license": "MIT", "peer": true, "dependencies": { "@types/mdast": "^4.0.0", @@ -3819,6 +3263,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", "peer": true, "dependencies": { "@types/mdast": "^4.0.0", @@ -3834,9 +3279,10 @@ } }, "node_modules/remark-mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", - "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.1.tgz", + "integrity": "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==", + "license": "MIT", "dependencies": { "mdast-util-mdx": "^3.0.0", "micromark-extension-mdxjs": "^3.0.0" @@ -3850,6 +3296,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", @@ -3865,6 +3312,7 @@ "version": "11.1.2", "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -3881,6 +3329,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", "peer": true, "dependencies": { "@types/mdast": "^4.0.0", @@ -3896,6 +3345,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -3905,6 +3356,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -3919,189 +3371,82 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, - "node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", - "peer": true - }, "node_modules/scroll-into-view-if-needed": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "license": "MIT", "peer": true, "dependencies": { "compute-scroll-into-view": "^3.0.2" } }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "dependencies": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "optional": true, - "peer": true, + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sharp": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.1.tgz", - "integrity": "sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==", - "hasInstallScript": true, - "optional": true, - "peer": true, - "dependencies": { - "color": "^4.2.3", - "detect-libc": "^2.0.3", - "semver": "^7.7.1" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.34.1", - "@img/sharp-darwin-x64": "0.34.1", - "@img/sharp-libvips-darwin-arm64": "1.1.0", - "@img/sharp-libvips-darwin-x64": "1.1.0", - "@img/sharp-libvips-linux-arm": "1.1.0", - "@img/sharp-libvips-linux-arm64": "1.1.0", - "@img/sharp-libvips-linux-ppc64": "1.1.0", - "@img/sharp-libvips-linux-s390x": "1.1.0", - "@img/sharp-libvips-linux-x64": "1.1.0", - "@img/sharp-libvips-linuxmusl-arm64": "1.1.0", - "@img/sharp-libvips-linuxmusl-x64": "1.1.0", - "@img/sharp-linux-arm": "0.34.1", - "@img/sharp-linux-arm64": "0.34.1", - "@img/sharp-linux-s390x": "0.34.1", - "@img/sharp-linux-x64": "0.34.1", - "@img/sharp-linuxmusl-arm64": "0.34.1", - "@img/sharp-linuxmusl-x64": "0.34.1", - "@img/sharp-wasm32": "0.34.1", - "@img/sharp-win32-ia32": "0.34.1", - "@img/sharp-win32-x64": "0.34.1" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" } }, "node_modules/shiki": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.4.2.tgz", - "integrity": "sha512-wuxzZzQG8kvZndD7nustrNFIKYJ1jJoWIPaBpVe2+KHSvtzMi4SBjOxrigs8qeqce/l3U0cwiC+VAkLKSunHQQ==", - "peer": true, - "dependencies": { - "@shikijs/core": "3.4.2", - "@shikijs/engine-javascript": "3.4.2", - "@shikijs/engine-oniguruma": "3.4.2", - "@shikijs/langs": "3.4.2", - "@shikijs/themes": "3.4.2", - "@shikijs/types": "3.4.2", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.22.0.tgz", + "integrity": "sha512-LBnhsoYEe0Eou4e1VgJACes+O6S6QC0w71fCSp5Oya79inkwkm15gQ1UF6VtQ8j/taMDh79hAB49WUk8ALQW3g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@shikijs/core": "3.22.0", + "@shikijs/engine-javascript": "3.22.0", + "@shikijs/engine-oniguruma": "3.22.0", + "@shikijs/langs": "3.22.0", + "@shikijs/themes": "3.22.0", + "@shikijs/types": "3.22.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "optional": true, - "peer": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "peer": true, + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", "engines": { - "node": ">=0.10.0" + "node": ">= 12" } }, "node_modules/space-separated-tokens": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "peer": true, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/stringify-entities": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" @@ -4111,19 +3456,12 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/strip-outer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.2" }, @@ -4136,53 +3474,60 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/style-to-js": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz", - "integrity": "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", + "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", + "license": "MIT", "dependencies": { - "style-to-object": "1.0.8" + "style-to-object": "1.0.14" } }, "node_modules/style-to-object": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", - "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", + "license": "MIT", "dependencies": { - "inline-style-parser": "0.2.4" + "inline-style-parser": "0.2.7" } }, - "node_modules/styled-jsx": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", - "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", - "peer": true, + "node_modules/tinyexec": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "license": "MIT", "dependencies": { - "client-only": "0.0.1" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" }, "engines": { - "node": ">= 12.0.0" + "node": ">=12.0.0" }, - "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" } }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -4194,6 +3539,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4204,6 +3550,7 @@ "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.2" }, @@ -4216,6 +3563,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -4224,6 +3572,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4233,12 +3582,14 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD", "peer": true }, "node_modules/unified": { "version": "11.0.5", "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", @@ -4254,9 +3605,10 @@ } }, "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -4269,6 +3621,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -4281,6 +3634,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -4289,10 +3643,25 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-remove-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/unist-util-stringify-position": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -4302,9 +3671,10 @@ } }, "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", @@ -4316,9 +3686,10 @@ } }, "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" @@ -4333,57 +3704,16 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, - "node_modules/use-callback-ref": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", - "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", - "peer": true, - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sidecar": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", - "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", - "peer": true, - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/vfile": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" @@ -4394,9 +3724,10 @@ } }, "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" @@ -4406,24 +3737,11 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/zod": { - "version": "3.25.7", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.7.tgz", - "integrity": "sha512-YGdT1cVRmKkOg6Sq7vY7IkxdphySKnXhaUmFI4r4FcuFVNgpCb9tZfNwXbT6BPjD5oz0nubFsoo9pIqKrDcCvg==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } @@ -4432,6 +3750,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" diff --git a/package.json b/package.json new file mode 100644 index 00000000..787121f2 --- /dev/null +++ b/package.json @@ -0,0 +1,26 @@ +{ + "name": "yake", + "version": "7.1.0", + "description": "", + "homepage": "https://github.com/INESCTEC/yake#readme", + "bugs": { + "url": "https://github.com/INESCTEC/yake/issues" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/INESCTEC/yake.git" + }, + "license": "LGPL-3.0-only", + "author": "", + "directories": { + "doc": "docs", + "test": "tests" + }, + "dependencies": { + "@types/mdx": "^2.0.13", + "fumadocs-mdx": "^14.2.7" + }, + "devDependencies": { + "gh-pages": "^6.3.0" + } +} diff --git a/pyproject.toml b/pyproject.toml index 71b934f1..3686afc8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,52 +7,54 @@ name = "yake" version = "0.7.3" description = "Keyword extraction Python package" readme = "README.md" -requires-python = ">=3.10" -license = {text = "LGPLv3"} +requires-python = ">=3.10" +license = { text = "LGPLv3" } authors = [ - {name = "Arian Pasquali", email = "arianpasquali@gmail.com"}, - {name = "Ricardo Campos", email = "ricardo.campos@ubi.pt"}, - {name = "Tiago Valente", email = "tiago.leandro.valente@ubi.com"}, + { name = "Arian Pasquali", email = "arianpasquali@gmail.com" }, + { name = "Ricardo Campos", email = "ricardo.campos@ubi.pt" }, + { name = "Tiago Valente", email = "tiago.leandro.valente@ubi.com" }, ] dependencies = [ - "tabulate", - "segtok", - "networkx", - "numpy>=1.24.0", - "click>=6.0", - "jellyfish", + "tabulate", + "segtok", + "networkx", + "numpy>=1.26.4", + "click>=6.0", + "jellyfish", ] classifiers = [ - "Development Status :: 3 - Alpha", - "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: 3 :: Only", - "Topic :: Scientific/Engineering :: Information Analysis", - "Topic :: Software Development :: Libraries", - "Topic :: Text Processing", - "Topic :: Text Processing :: Linguistic", + "Development Status :: 3 - Alpha", + "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3 :: Only", + "Topic :: Scientific/Engineering :: Information Analysis", + "Topic :: Software Development :: Libraries", + "Topic :: Text Processing", + "Topic :: Text Processing :: Linguistic", ] [project.optional-dependencies] dev = [ - "pytest>=7.0.0", - "pytest-cov>=4.0.0", - "black>=22.0.0", - "ruff>=0.1.0", - "flake8>=6.0.0", - "pylint>=3.3.0", # Python 3.13 support + "pytest>=7.0.0", + "pytest-cov>=4.0.0", + "black>=22.0.0", + "ruff>=0.15.0", + "flake8>=6.0.0", + "pylint>=3.3.0", # Python 3.13 support ] benchmark = [ - "pytest-benchmark>=4.0.0", - "memory-profiler>=0.60.0", - "matplotlib>=3.5.0", + "pytest-benchmark>=4.0.0", + "memory-profiler>=0.60.0", + "matplotlib>=3.5.0", ] lemmatization = [ - "spacy>=3.8.0", - "nltk>=3.8.0", + "spacy>=3.8.0", + "nltk>=3.8.0", ] [project.urls] @@ -63,4 +65,4 @@ Source = "https://github.com/INESCTEC/yake" yake = "yake.cli:keywords" [tool.hatch.build.targets.wheel] -packages = ["yake", "StopwordsList"] # Explicitly include these packages +packages = ["yake", "StopwordsList"] # Explicitly include these packages diff --git a/tests/__init__.py b/tests/__init__.py index 42d66069..29d019be 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # pylint: skip-file """Unit test package for yake.""" diff --git a/tests/test_features.py b/tests/test_features.py index 2b6bb3ee..4a3cf76d 100644 --- a/tests/test_features.py +++ b/tests/test_features.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # pylint: skip-file """ @@ -9,26 +8,27 @@ composed features, and feature aggregation methods. """ -import sys import os +import sys + sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) import math -import pytest -import numpy as np -from unittest.mock import Mock, MagicMock +from unittest.mock import Mock + import networkx as nx +import numpy as np from yake.data.features import ( - calculate_term_features, calculate_composed_features, - get_feature_aggregation + calculate_term_features, + get_feature_aggregation, ) class TestCalculateTermFeatures: """Test suite for calculate_term_features function.""" - + def test_basic_term_features(self): """Test feature calculation for a basic term.""" # Create mock term with required attributes @@ -39,40 +39,44 @@ def test_basic_term_features(self): term.sentence_ids = {1, 2, 3} # Appears in 3 sentences term.occurs = {0: None, 5: None, 10: None} # Positions graph_metrics = { - 'pwl': 0.5, - 'pwr': 0.5, - 'wdl': 10.0, - 'wdr': 10.0 + "pwl": 0.5, + "pwr": 0.5, + "wdl": 10.0, + "wdr": 10.0, } term.get_graph_metrics = Mock(return_value=graph_metrics) term.graph_metrics = graph_metrics - + # Document statistics max_tf = 10.0 avg_tf = 3.0 std_tf = 2.0 number_of_sentences = 5 - + features = calculate_term_features( - term, max_tf, avg_tf, std_tf, number_of_sentences + term, + max_tf, + avg_tf, + std_tf, + number_of_sentences, ) - + # Verify all features are calculated - assert 'w_rel' in features - assert 'w_freq' in features - assert 'w_spread' in features - assert 'w_case' in features - assert 'w_pos' in features - assert 'h' in features - + assert "w_rel" in features + assert "w_freq" in features + assert "w_spread" in features + assert "w_case" in features + assert "w_pos" in features + assert "h" in features + # Verify feature values are reasonable - assert features['w_rel'] > 0 - assert features['w_freq'] > 0 - assert 0 <= features['w_spread'] <= 1 # Spread is between 0 and 1 - assert features['w_case'] > 0 - assert features['w_pos'] > 0 - assert features['h'] > 0 - + assert features["w_rel"] > 0 + assert features["w_freq"] > 0 + assert 0 <= features["w_spread"] <= 1 # Spread is between 0 and 1 + assert features["w_case"] > 0 + assert features["w_pos"] > 0 + assert features["h"] > 0 + def test_w_rel_calculation(self): """Test WRel (term relevance) calculation.""" term = Mock() @@ -82,20 +86,20 @@ def test_w_rel_calculation(self): term.sentence_ids = {1} term.occurs = {0: None} graph_metrics = { - 'pwl': 0.3, - 'pwr': 0.7, - 'wdl': 5.0, - 'wdr': 5.0 + "pwl": 0.3, + "pwr": 0.7, + "wdl": 5.0, + "wdr": 5.0, } term.get_graph_metrics = Mock(return_value=graph_metrics) term.graph_metrics = graph_metrics - + features = calculate_term_features(term, 10.0, 3.0, 2.0, 5) - + # WRel should combine left and right connectivity expected_wrel = (0.5 + (0.3 * (5.0 / 10.0))) + (0.5 + (0.7 * (5.0 / 10.0))) - assert abs(features['w_rel'] - expected_wrel) < 1e-6 - + assert abs(features["w_rel"] - expected_wrel) < 1e-6 + def test_w_freq_calculation(self): """Test WFreq (normalized frequency) calculation.""" term = Mock() @@ -105,19 +109,22 @@ def test_w_freq_calculation(self): term.sentence_ids = {1} term.occurs = {0: None} graph_metrics = { - 'pwl': 0.5, 'pwr': 0.5, 'wdl': 5.0, 'wdr': 5.0 + "pwl": 0.5, + "pwr": 0.5, + "wdl": 5.0, + "wdr": 5.0, } term.get_graph_metrics = Mock(return_value=graph_metrics) term.graph_metrics = graph_metrics - + avg_tf = 3.0 std_tf = 2.0 features = calculate_term_features(term, 10.0, avg_tf, std_tf, 5) - + # WFreq = tf / (avg_tf + std_tf) expected_wfreq = 8.0 / (3.0 + 2.0) - assert abs(features['w_freq'] - expected_wfreq) < 1e-6 - + assert abs(features["w_freq"] - expected_wfreq) < 1e-6 + def test_w_spread_calculation(self): """Test WSpread (sentence spread) calculation.""" term = Mock() @@ -127,17 +134,20 @@ def test_w_spread_calculation(self): term.sentence_ids = {1, 2, 3, 4} # 4 out of 10 sentences term.occurs = {0: None} graph_metrics = { - 'pwl': 0.5, 'pwr': 0.5, 'wdl': 5.0, 'wdr': 5.0 + "pwl": 0.5, + "pwr": 0.5, + "wdl": 5.0, + "wdr": 5.0, } term.get_graph_metrics = Mock(return_value=graph_metrics) term.graph_metrics = graph_metrics - + features = calculate_term_features(term, 10.0, 3.0, 2.0, 10) - + # WSpread = len(sentence_ids) / total_sentences expected_wspread = 4.0 / 10.0 - assert abs(features['w_spread'] - expected_wspread) < 1e-6 - + assert abs(features["w_spread"] - expected_wspread) < 1e-6 + def test_w_case_calculation(self): """Test WCase (capitalization) calculation.""" term = Mock() @@ -147,17 +157,20 @@ def test_w_case_calculation(self): term.sentence_ids = {1} term.occurs = {0: None} graph_metrics = { - 'pwl': 0.5, 'pwr': 0.5, 'wdl': 5.0, 'wdr': 5.0 + "pwl": 0.5, + "pwr": 0.5, + "wdl": 5.0, + "wdr": 5.0, } term.get_graph_metrics = Mock(return_value=graph_metrics) term.graph_metrics = graph_metrics - + features = calculate_term_features(term, 10.0, 3.0, 2.0, 5) - + # WCase = max(tf_a, tf_n) / (1 + log(tf)) expected_wcase = 7.0 / (1.0 + math.log(10.0)) - assert abs(features['w_case'] - expected_wcase) < 1e-6 - + assert abs(features["w_case"] - expected_wcase) < 1e-6 + def test_w_pos_calculation(self): """Test WPos (position) calculation using median.""" term = Mock() @@ -167,19 +180,22 @@ def test_w_pos_calculation(self): term.sentence_ids = {1} term.occurs = {10: None, 20: None, 30: None, 40: None, 50: None} graph_metrics = { - 'pwl': 0.5, 'pwr': 0.5, 'wdl': 5.0, 'wdr': 5.0 + "pwl": 0.5, + "pwr": 0.5, + "wdl": 5.0, + "wdr": 5.0, } term.get_graph_metrics = Mock(return_value=graph_metrics) term.graph_metrics = graph_metrics - + features = calculate_term_features(term, 10.0, 3.0, 2.0, 5) - + # WPos = log(log(3 + median(positions))) positions = [10, 20, 30, 40, 50] median_pos = np.median(positions) # 30 expected_wpos = math.log(math.log(3.0 + median_pos)) - assert abs(features['w_pos'] - expected_wpos) < 1e-6 - + assert abs(features["w_pos"] - expected_wpos) < 1e-6 + def test_zero_max_tf_handling(self): """Test handling of edge case where max_tf is zero.""" term = Mock() @@ -189,11 +205,14 @@ def test_zero_max_tf_handling(self): term.sentence_ids = {1} term.occurs = {0: None} graph_metrics = { - 'pwl': 0.5, 'pwr': 0.5, 'wdl': 0.0, 'wdr': 0.0 + "pwl": 0.5, + "pwr": 0.5, + "wdl": 0.0, + "wdr": 0.0, } term.get_graph_metrics = Mock(return_value=graph_metrics) term.graph_metrics = graph_metrics - + # When max_tf is 0, term.tf should also be 0, avoiding division # But if it happens, the code should handle it gracefully # Note: In real usage, max_tf=0 means no terms, so this is edge case @@ -202,13 +221,13 @@ def test_zero_max_tf_handling(self): try: features = calculate_term_features(term, 0.0, 3.0, 2.0, 5) # If it succeeds, verify pl and pr are 0 - assert features['pl'] == 0.0 - assert features['pr'] == 0.0 + assert features["pl"] == 0.0 + assert features["pr"] == 0.0 except ZeroDivisionError: # Expected behavior when max_tf=0 and tf>0 (edge case) # In real usage, this shouldn't happen pass - + def test_single_position_term(self): """Test term that appears only once.""" term = Mock() @@ -218,21 +237,24 @@ def test_single_position_term(self): term.sentence_ids = {1} term.occurs = {5: None} # Single position graph_metrics = { - 'pwl': 0.5, 'pwr': 0.5, 'wdl': 1.0, 'wdr': 1.0 + "pwl": 0.5, + "pwr": 0.5, + "wdl": 1.0, + "wdr": 1.0, } term.get_graph_metrics = Mock(return_value=graph_metrics) term.graph_metrics = graph_metrics - + features = calculate_term_features(term, 10.0, 3.0, 2.0, 5) - + # Should calculate all features without errors assert all(v is not None for v in features.values()) - assert features['w_spread'] == 1.0 / 5.0 # 1 sentence out of 5 + assert features["w_spread"] == 1.0 / 5.0 # 1 sentence out of 5 class TestCalculateComposedFeatures: """Test suite for calculate_composed_features function.""" - + def create_mock_term(self, h_value, is_stopword=False, term_id=None, tf=1.0): """Helper to create mock terms.""" term = Mock() @@ -242,7 +264,7 @@ def create_mock_term(self, h_value, is_stopword=False, term_id=None, tf=1.0): term.tf = tf term.g = nx.DiGraph() return term - + def test_composed_features_no_stopwords(self): """Test composed features for phrase without stopwords.""" # Create composed word with 3 non-stopword terms @@ -251,49 +273,49 @@ def test_composed_features_no_stopwords(self): composed_word.terms = [ self.create_mock_term(0.1, False), self.create_mock_term(0.2, False), - self.create_mock_term(0.3, False) + self.create_mock_term(0.3, False), ] - + features = calculate_composed_features(composed_word) - + # sum_h = 0.1 + 0.2 + 0.3 = 0.6 - assert abs(features['sum_h'] - 0.6) < 1e-6 - + assert abs(features["sum_h"] - 0.6) < 1e-6 + # prod_h = 0.1 * 0.2 * 0.3 = 0.006 - assert abs(features['prod_h'] - 0.006) < 1e-6 - + assert abs(features["prod_h"] - 0.006) < 1e-6 + # tf_used = 5.0 - assert features['tf_used'] == 5.0 - + assert features["tf_used"] == 5.0 + # H = prod_h / ((sum_h + 1) * tf_used) expected_h = 0.006 / ((0.6 + 1) * 5.0) - assert abs(features['h'] - expected_h) < 1e-6 - + assert abs(features["h"] - expected_h) < 1e-6 + def test_composed_features_with_stopwords_bi(self): """Test composed features with stopwords using 'bi' weighting.""" composed_word = Mock() composed_word.tf = 3.0 - + # Create terms: term1 (non-stop), stopword, term2 (non-stop) term1 = self.create_mock_term(0.2, False, "term1", 4.0) stopword = self.create_mock_term(0.05, True, "stop", 2.0) term2 = self.create_mock_term(0.3, False, "term2", 3.0) - + # Add edges for stopword connectivity stopword.g.add_edge("term1", "stop", tf=2.0) stopword.g.add_edge("stop", "term2", tf=1.5) - + composed_word.terms = [term1, stopword, term2] - - features = calculate_composed_features(composed_word, stopword_weight='bi') - + + features = calculate_composed_features(composed_word, stopword_weight="bi") + # Stopword affects prod_h and sum_h based on connectivity # Note: sum_h can be negative due to stopword probability penalty - assert features['prod_h'] > 0 + assert features["prod_h"] > 0 # sum_h can be negative with stopword penalties - assert isinstance(features['sum_h'], float) - assert features['h'] > 0 - + assert isinstance(features["sum_h"], float) + assert features["h"] > 0 + def test_composed_features_stopwords_h_weight(self): """Test stopword handling with 'h' weighting.""" composed_word = Mock() @@ -301,18 +323,18 @@ def test_composed_features_stopwords_h_weight(self): composed_word.terms = [ self.create_mock_term(0.2, False), self.create_mock_term(0.1, True), # Stopword with h=0.1 - self.create_mock_term(0.3, False) + self.create_mock_term(0.3, False), ] - - features = calculate_composed_features(composed_word, stopword_weight='h') - + + features = calculate_composed_features(composed_word, stopword_weight="h") + # With 'h' weight, stopword's h value is included # sum_h = 0.2 + 0.1 + 0.3 = 0.6 - assert abs(features['sum_h'] - 0.6) < 1e-6 - + assert abs(features["sum_h"] - 0.6) < 1e-6 + # prod_h = 0.2 * 0.1 * 0.3 = 0.006 - assert abs(features['prod_h'] - 0.006) < 1e-6 - + assert abs(features["prod_h"] - 0.006) < 1e-6 + def test_composed_features_stopwords_none_weight(self): """Test stopword handling with 'none' weighting (ignore stopwords).""" composed_word = Mock() @@ -320,162 +342,174 @@ def test_composed_features_stopwords_none_weight(self): composed_word.terms = [ self.create_mock_term(0.2, False), self.create_mock_term(0.999, True), # Stopword should be ignored - self.create_mock_term(0.3, False) + self.create_mock_term(0.3, False), ] - - features = calculate_composed_features(composed_word, stopword_weight='none') - + + features = calculate_composed_features(composed_word, stopword_weight="none") + # sum_h = 0.2 + 0.3 = 0.5 (stopword ignored) - assert abs(features['sum_h'] - 0.5) < 1e-6 - + assert abs(features["sum_h"] - 0.5) < 1e-6 + # prod_h = 0.2 * 0.3 = 0.06 (stopword ignored) - assert abs(features['prod_h'] - 0.06) < 1e-6 - + assert abs(features["prod_h"] - 0.06) < 1e-6 + def test_single_term_composed_word(self): """Test composed word with single term.""" composed_word = Mock() composed_word.tf = 1.0 composed_word.terms = [self.create_mock_term(0.5, False)] - + features = calculate_composed_features(composed_word) - - assert features['sum_h'] == 0.5 - assert features['prod_h'] == 0.5 - assert features['tf_used'] == 1.0 - + + assert features["sum_h"] == 0.5 + assert features["prod_h"] == 0.5 + assert features["tf_used"] == 1.0 + def test_zero_tf_handling(self): """Test handling of zero term frequency.""" composed_word = Mock() composed_word.tf = 0.0 composed_word.terms = [self.create_mock_term(0.5, False)] - + features = calculate_composed_features(composed_word) - + # With tf=0, H should be 0 to avoid division by zero - assert features['h'] == 0.0 + assert features["h"] == 0.0 class TestGetFeatureAggregation: """Test suite for get_feature_aggregation function.""" - + def create_mock_term_with_feature(self, feature_value, is_stopword=False): """Helper to create mock term with specific feature value.""" term = Mock() term.test_feature = feature_value term.stopword = is_stopword return term - + def test_feature_aggregation_basic(self): """Test basic feature aggregation.""" composed_word = Mock() composed_word.terms = [ self.create_mock_term_with_feature(2.0, False), self.create_mock_term_with_feature(3.0, False), - self.create_mock_term_with_feature(5.0, False) + self.create_mock_term_with_feature(5.0, False), ] - + sum_f, prod_f, ratio = get_feature_aggregation( - composed_word, 'test_feature', exclude_stopwords=False + composed_word, + "test_feature", + exclude_stopwords=False, ) - + # sum = 2 + 3 + 5 = 10 assert abs(sum_f - 10.0) < 1e-6 - + # product = 2 * 3 * 5 = 30 assert abs(prod_f - 30.0) < 1e-6 - + # ratio = 30 / (10 + 1) = 30 / 11 assert abs(ratio - (30.0 / 11.0)) < 1e-6 - + def test_feature_aggregation_exclude_stopwords(self): """Test aggregation excluding stopwords.""" composed_word = Mock() composed_word.terms = [ self.create_mock_term_with_feature(2.0, False), self.create_mock_term_with_feature(999.0, True), # Stopword - self.create_mock_term_with_feature(3.0, False) + self.create_mock_term_with_feature(3.0, False), ] - + sum_f, prod_f, ratio = get_feature_aggregation( - composed_word, 'test_feature', exclude_stopwords=True + composed_word, + "test_feature", + exclude_stopwords=True, ) - + # sum = 2 + 3 = 5 (stopword excluded) assert abs(sum_f - 5.0) < 1e-6 - + # product = 2 * 3 = 6 assert abs(prod_f - 6.0) < 1e-6 - + def test_feature_aggregation_include_stopwords(self): """Test aggregation including stopwords.""" composed_word = Mock() composed_word.terms = [ self.create_mock_term_with_feature(2.0, False), self.create_mock_term_with_feature(4.0, True), # Stopword - self.create_mock_term_with_feature(3.0, False) + self.create_mock_term_with_feature(3.0, False), ] - + sum_f, prod_f, ratio = get_feature_aggregation( - composed_word, 'test_feature', exclude_stopwords=False + composed_word, + "test_feature", + exclude_stopwords=False, ) - + # sum = 2 + 4 + 3 = 9 (stopword included) assert abs(sum_f - 9.0) < 1e-6 - + # product = 2 * 4 * 3 = 24 assert abs(prod_f - 24.0) < 1e-6 - + def test_empty_feature_list(self): """Test aggregation when all terms are stopwords and excluded.""" composed_word = Mock() composed_word.terms = [ self.create_mock_term_with_feature(5.0, True), - self.create_mock_term_with_feature(10.0, True) + self.create_mock_term_with_feature(10.0, True), ] - + sum_f, prod_f, ratio = get_feature_aggregation( - composed_word, 'test_feature', exclude_stopwords=True + composed_word, + "test_feature", + exclude_stopwords=True, ) - + # All terms excluded, should return zeros assert sum_f == 0.0 assert prod_f == 0.0 assert ratio == 0.0 - + def test_single_term_aggregation(self): """Test aggregation with single term.""" composed_word = Mock() composed_word.terms = [self.create_mock_term_with_feature(7.0, False)] - + sum_f, prod_f, ratio = get_feature_aggregation( - composed_word, 'test_feature', exclude_stopwords=False + composed_word, + "test_feature", + exclude_stopwords=False, ) - + assert sum_f == 7.0 assert prod_f == 7.0 assert abs(ratio - (7.0 / 8.0)) < 1e-6 # 7 / (7 + 1) - + def test_zero_values_in_product(self): """Test aggregation when one feature value is zero.""" composed_word = Mock() composed_word.terms = [ self.create_mock_term_with_feature(2.0, False), self.create_mock_term_with_feature(0.0, False), # Zero value - self.create_mock_term_with_feature(3.0, False) + self.create_mock_term_with_feature(3.0, False), ] - + sum_f, prod_f, ratio = get_feature_aggregation( - composed_word, 'test_feature', exclude_stopwords=False + composed_word, + "test_feature", + exclude_stopwords=False, ) - + assert sum_f == 5.0 # 2 + 0 + 3 assert prod_f == 0.0 # 2 * 0 * 3 = 0 - assert ratio == 0.0 # 0 / 6 = 0 + assert ratio == 0.0 # 0 / 6 = 0 class TestFeatureIntegration: """Integration tests for feature calculations.""" - + def test_features_produce_positive_scores(self): """Test that feature calculations produce valid positive scores.""" term = Mock() @@ -485,19 +519,19 @@ def test_features_produce_positive_scores(self): term.sentence_ids = {1, 2} term.occurs = {10: None, 20: None, 30: None} graph_metrics = { - 'pwl': 0.6, - 'pwr': 0.4, - 'wdl': 8.0, - 'wdr': 7.0 + "pwl": 0.6, + "pwr": 0.4, + "wdl": 8.0, + "wdr": 7.0, } term.get_graph_metrics = Mock(return_value=graph_metrics) term.graph_metrics = graph_metrics - + features = calculate_term_features(term, 10.0, 4.0, 2.0, 5) - + # All features should be positive for valid term assert all(v > 0 for v in features.values()) - + def test_high_tf_term_gets_good_score(self): """Test that high frequency terms get favorable feature scores.""" high_tf_term = Mock() @@ -505,15 +539,18 @@ def test_high_tf_term_gets_good_score(self): high_tf_term.tf_a = 15.0 high_tf_term.tf_n = 5.0 high_tf_term.sentence_ids = {1, 2, 3, 4, 5} - high_tf_term.occurs = {i: None for i in range(20)} + high_tf_term.occurs = dict.fromkeys(range(20)) graph_metrics = { - 'pwl': 0.8, 'pwr': 0.8, 'wdl': 15.0, 'wdr': 15.0 + "pwl": 0.8, + "pwr": 0.8, + "wdl": 15.0, + "wdr": 15.0, } high_tf_term.get_graph_metrics = Mock(return_value=graph_metrics) high_tf_term.graph_metrics = graph_metrics - + features = calculate_term_features(high_tf_term, 20.0, 5.0, 3.0, 5) - + # High frequency term should have high w_freq and w_spread - assert features['w_freq'] > 1.0 - assert features['w_spread'] == 1.0 # Appears in all sentences + assert features["w_freq"] > 1.0 + assert features["w_spread"] == 1.0 # Appears in all sentences diff --git a/tests/test_lemmatization.py b/tests/test_lemmatization.py index 7fbbb837..34b9a70e 100644 --- a/tests/test_lemmatization.py +++ b/tests/test_lemmatization.py @@ -1,27 +1,32 @@ +#!/usr/bin/env python +# pylint: skip-file +# This file requires optional dependencies (spaCy, NLTK) and may not be available in all environments + """ Tests for lemmatization functionality in YAKE. This module tests the lemmatization feature that aggregates keywords with the same lemma (e.g., "tree" and "trees"). """ -# pylint: skip-file -# This file requires optional dependencies (spaCy, NLTK) and may not be available in all environments -import pytest import yake def test_lemmatization_disabled_by_default(): """Test that lemmatization is disabled by default.""" text = "Trees are important. Many trees provide shade. Tree conservation matters." - - kw = yake.KeywordExtractor(lan="en", n=1, top=10) + + kw = yake.KeywordExtractor( + lan="en", + n=1, + top=10, + ) assert kw.lemmatize is False - + # Should extract both "trees" and "tree" as separate keywords result = kw.extract_keywords(text) keywords = [k for k, s in result] - + # At least one form should be present assert len(keywords) > 0 @@ -29,17 +34,27 @@ def test_lemmatization_disabled_by_default(): def test_lemmatization_enabled(): """Test that lemmatization combines keywords with same lemma.""" text = "Trees are important. Many trees provide shade. Tree conservation matters." - + # Without lemmatization - kw_no_lemma = yake.KeywordExtractor(lan="en", n=1, top=10, lemmatize=False) + kw_no_lemma = yake.KeywordExtractor( + lan="en", + n=1, + top=10, + lemmatize=False, + ) result_no_lemma = kw_no_lemma.extract_keywords(text) keywords_no_lemma = [k.lower() for k, s in result_no_lemma] - + # With lemmatization (requires spacy) - kw_with_lemma = yake.KeywordExtractor(lan="en", n=1, top=10, lemmatize=True) + kw_with_lemma = yake.KeywordExtractor( + lan="en", + n=1, + top=10, + lemmatize=True, + ) result_with_lemma = kw_with_lemma.extract_keywords(text) keywords_with_lemma = [k.lower() for k, s in result_with_lemma] - + # Lemmatized version should have same or fewer keywords # (if spacy is installed, it will combine "tree" and "trees") assert len(keywords_with_lemma) <= len(keywords_no_lemma) @@ -48,19 +63,19 @@ def test_lemmatization_enabled(): def test_lemmatization_aggregation_min(): """Test that min aggregation uses the best (lowest) score.""" text = "Running is good. The runner runs fast. Runners love running." - + kw = yake.KeywordExtractor( - lan="en", - n=1, - top=10, + lan="en", + n=1, + top=10, lemmatize=True, - lemma_aggregation="min" + lemma_aggregation="min", ) result = kw.extract_keywords(text) - + # Should have at least some keywords assert len(result) > 0 - + # All scores should be positive for keyword, score in result: assert score >= 0 @@ -69,19 +84,19 @@ def test_lemmatization_aggregation_min(): def test_lemmatization_aggregation_mean(): """Test that mean aggregation averages scores.""" text = "Running is good. The runner runs fast. Runners love running." - + kw = yake.KeywordExtractor( - lan="en", - n=1, - top=10, + lan="en", + n=1, + top=10, lemmatize=True, - lemma_aggregation="mean" + lemma_aggregation="mean", ) result = kw.extract_keywords(text) - + # Should have at least some keywords assert len(result) > 0 - + # All scores should be positive for keyword, score in result: assert score >= 0 @@ -90,19 +105,19 @@ def test_lemmatization_aggregation_mean(): def test_lemmatization_aggregation_max(): """Test that max aggregation uses the worst (highest) score.""" text = "Running is good. The runner runs fast. Runners love running." - + kw = yake.KeywordExtractor( - lan="en", - n=1, - top=10, + lan="en", + n=1, + top=10, lemmatize=True, - lemma_aggregation="max" + lemma_aggregation="max", ) result = kw.extract_keywords(text) - + # Should have at least some keywords assert len(result) > 0 - + # All scores should be positive for keyword, score in result: assert score >= 0 @@ -111,19 +126,19 @@ def test_lemmatization_aggregation_max(): def test_lemmatization_aggregation_harmonic(): """Test that harmonic aggregation uses harmonic mean.""" text = "Running is good. The runner runs fast. Runners love running." - + kw = yake.KeywordExtractor( - lan="en", - n=1, - top=10, + lan="en", + n=1, + top=10, lemmatize=True, - lemma_aggregation="harmonic" + lemma_aggregation="harmonic", ) result = kw.extract_keywords(text) - + # Should have at least some keywords assert len(result) > 0 - + # All scores should be positive for keyword, score in result: assert score >= 0 @@ -135,19 +150,19 @@ def test_lemmatization_with_multiword(): Machine learning algorithms are powerful. Deep learning models excel. Natural language processing tasks benefit from machine learning. """ - + kw = yake.KeywordExtractor( - lan="en", - n=2, - top=10, + lan="en", + n=2, + top=10, lemmatize=True, - lemma_aggregation="min" + lemma_aggregation="min", ) result = kw.extract_keywords(text) - + # Should extract bigrams assert len(result) > 0 - + # Check that we have multi-word keywords multiword = [k for k, s in result if " " in k] assert len(multiword) > 0 @@ -156,38 +171,48 @@ def test_lemmatization_with_multiword(): def test_lemmatization_graceful_degradation(): """Test that lemmatization gracefully degrades if libraries not available.""" text = "Trees are important. Many trees provide shade." - + # This should work even if spacy/nltk are not installed # (will log warning but continue) - kw = yake.KeywordExtractor(lan="en", n=1, top=5, lemmatize=True) + kw = yake.KeywordExtractor( + lan="en", + n=1, + top=5, + lemmatize=True, + ) result = kw.extract_keywords(text) - + # Should return results (either lemmatized or not) assert isinstance(result, list) def test_lemmatization_empty_text(): """Test lemmatization with empty text.""" - kw = yake.KeywordExtractor(lan="en", n=1, top=5, lemmatize=True) + kw = yake.KeywordExtractor( + lan="en", + n=1, + top=5, + lemmatize=True, + ) result = kw.extract_keywords("") - + assert result == [] def test_lemmatization_preserves_original_form(): """Test that lemmatization preserves one of the original forms.""" text = "The algorithms are powerful. Algorithm design is important." - + kw = yake.KeywordExtractor( - lan="en", - n=1, - top=10, + lan="en", + n=1, + top=10, lemmatize=True, - lemma_aggregation="min" + lemma_aggregation="min", ) result = kw.extract_keywords(text) keywords = [k for k, s in result] - + # Should return actual words from text, not lemmatized forms # (e.g., "algorithms" or "algorithm", not "algoritm") for keyword in keywords: @@ -199,17 +224,17 @@ def test_lemmatization_preserves_original_form(): def test_lemmatization_different_languages(): """Test that lemmatization respects language setting.""" text_pt = "Os algoritmos são poderosos. Algoritmo de aprendizado é importante." - + # Portuguese text with lemmatization kw = yake.KeywordExtractor( - lan="pt", - n=1, - top=10, + lan="pt", + n=1, + top=10, lemmatize=True, - lemmatizer="spacy" + lemmatizer="spacy", ) result = kw.extract_keywords(text_pt) - + # Should return results (may fall back to English model if pt not installed) assert isinstance(result, list) @@ -217,17 +242,17 @@ def test_lemmatization_different_languages(): def test_lemmatization_nltk_backend(): """Test lemmatization with NLTK backend.""" text = "Running is good. The runner runs fast." - + kw = yake.KeywordExtractor( - lan="en", - n=1, - top=10, + lan="en", + n=1, + top=10, lemmatize=True, lemmatizer="nltk", - lemma_aggregation="min" + lemma_aggregation="min", ) result = kw.extract_keywords(text) - + # Should return results assert isinstance(result, list) @@ -235,16 +260,16 @@ def test_lemmatization_nltk_backend(): def test_lemmatization_unknown_aggregation(): """Test that unknown aggregation method falls back to min.""" text = "Trees are important. Many trees provide shade." - + kw = yake.KeywordExtractor( - lan="en", - n=1, - top=5, + lan="en", + n=1, + top=5, lemmatize=True, - lemma_aggregation="unknown_method" + lemma_aggregation="unknown_method", ) result = kw.extract_keywords(text) - + # Should still work (with warning logged) assert isinstance(result, list) @@ -255,16 +280,16 @@ def test_lemmatization_score_ordering(): Machine learning is a powerful technology. Deep learning excels at pattern recognition. Artificial intelligence transforms industries. Machine learning algorithms are everywhere. """ - + kw = yake.KeywordExtractor( - lan="en", - n=2, - top=10, + lan="en", + n=2, + top=10, lemmatize=True, - lemma_aggregation="min" + lemma_aggregation="min", ) result = kw.extract_keywords(text) - + # Verify results are sorted by score (ascending) scores = [s for k, s in result] assert scores == sorted(scores) @@ -276,22 +301,32 @@ def test_lemmatization_comparison_with_without(): The researchers researched machine learning. Their research shows that learning algorithms can learn patterns. The learned patterns are useful. """ - + # Without lemmatization - kw_no_lemma = yake.KeywordExtractor(lan="en", n=1, top=20, lemmatize=False) + kw_no_lemma = yake.KeywordExtractor( + lan="en", + n=1, + top=20, + lemmatize=False, + ) result_no_lemma = kw_no_lemma.extract_keywords(text) - + # With lemmatization - kw_with_lemma = yake.KeywordExtractor(lan="en", n=1, top=20, lemmatize=True) + kw_with_lemma = yake.KeywordExtractor( + lan="en", + n=1, + top=20, + lemmatize=True, + ) result_with_lemma = kw_with_lemma.extract_keywords(text) - + # Both should return results assert len(result_no_lemma) > 0 assert len(result_with_lemma) > 0 - + # Lemmatized version should have same or fewer unique keywords unique_no_lemma = set(k.lower() for k, s in result_no_lemma) unique_with_lemma = set(k.lower() for k, s in result_with_lemma) - + # This might be equal if spacy is not installed (graceful degradation) assert len(unique_with_lemma) <= len(unique_no_lemma) diff --git a/tests/test_yake.py b/tests/test_yake.py index 199ead05..2f38f36a 100644 --- a/tests/test_yake.py +++ b/tests/test_yake.py @@ -1,14 +1,12 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # pylint: skip-file """Tests for yake package.""" -import sys import os -sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) +import sys -from click.testing import CliRunner +sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) import yake from yake.core.highlight import TextHighlighter @@ -22,11 +20,13 @@ def test_phraseless_example(): result = pyake.extract_keywords(text_content) assert len(result) == 0 + def test_benchmark_yake(benchmark): text = "Google is acquiring data science community Kaggle. " * 100 extractor = yake.KeywordExtractor(lan="en", n=3) benchmark(extractor.extract_keywords, text) + def test_null_and_blank_example(): pyake = yake.KeywordExtractor() @@ -207,7 +207,8 @@ def test_n1_EL(): textHighlighted == "Ανώτατος διοικητής του ρωσικού στρατού φέρεται να σκοτώθηκε κοντά στο Χάρκοβο, σύμφωνα με την υπηρεσία πληροφοριών του υπουργείου Άμυνας της Ουκρανίας. Σύμφωνα με δήλωση του υπουργείου Άμυνας της Ουκρανίας, πρόκειται για τον Vitaly Gerasimov, υποστράτηγο και υποδιοικητή από την Κεντρική Στρατιωτική Περιφέρεια της Ρωσίας." ) - + + def test_n4_EN(): """Test n-gram size of 4 for comprehensive coverage.""" text_content = """ @@ -246,14 +247,14 @@ def test_deduplication_functions(): text_content = "machine learning machine learning deep learning" pyake = yake.KeywordExtractor(lan="en", n=2, dedupLim=0.9, top=5) result = pyake.extract_keywords(text_content) - + # Expected results from YAKE 2.0 res = [ - ('machine learning', 0.023072402583411963), - ('learning deep', 0.041166451867834804), - ('deep learning', 0.041166451867834804), - ('learning machine', 0.04614480516682393), - ('learning', 0.08154106429019745) + ("machine learning", 0.023072402583411963), + ("learning deep", 0.041166451867834804), + ("deep learning", 0.041166451867834804), + ("learning machine", 0.04614480516682393), + ("learning", 0.08154106429019745), ] assert result == res @@ -263,14 +264,14 @@ def test_no_deduplication(): text_content = "machine learning machine learning deep learning" pyake = yake.KeywordExtractor(lan="en", n=2, dedupLim=1.0, top=5) result = pyake.extract_keywords(text_content) - + # Expected results from YAKE 2.0 (same as with dedup due to text structure) res = [ - ('machine learning', 0.023072402583411963), - ('learning deep', 0.041166451867834804), - ('deep learning', 0.041166451867834804), - ('learning machine', 0.04614480516682393), - ('learning', 0.08154106429019745) + ("machine learning", 0.023072402583411963), + ("learning deep", 0.041166451867834804), + ("deep learning", 0.041166451867834804), + ("learning machine", 0.04614480516682393), + ("learning", 0.08154106429019745), ] assert result == res @@ -281,17 +282,17 @@ def test_custom_stopwords(): custom = ["powerful"] pyake = yake.KeywordExtractor(lan="en", n=2, stopwords=custom, top=5) result = pyake.extract_keywords(text_content) - + # Expected results from YAKE 2.0 res = [ - ('algorithms and', 0.03663237450220032), - ('and machine', 0.03663237450220032), - ('learning algorithms', 0.05417025203414716), - ('machine learning', 0.05417025203414716), - ('learning are', 0.05417025203414716) + ("algorithms and", 0.03663237450220032), + ("and machine", 0.03663237450220032), + ("learning algorithms", 0.05417025203414716), + ("machine learning", 0.05417025203414716), + ("learning are", 0.05417025203414716), ] assert result == res - + # Verify custom stopword is not in results keywords = [k[0].lower() for k in result] assert not any("powerful" in kw for kw in keywords) @@ -302,14 +303,14 @@ def test_window_size_parameter(): text_content = "data science and machine learning" pyake = yake.KeywordExtractor(lan="en", n=2, windowsSize=2, top=5) result = pyake.extract_keywords(text_content) - + # Expected results from YAKE 2.0 res = [ - ('data science', 0.04940384002065631), - ('machine learning', 0.04940384002065631), - ('data', 0.15831692877998726), - ('learning', 0.15831692877998726), - ('science', 0.29736558256021506) + ("data science", 0.04940384002065631), + ("machine learning", 0.04940384002065631), + ("data", 0.15831692877998726), + ("learning", 0.15831692877998726), + ("science", 0.29736558256021506), ] assert result == res @@ -319,7 +320,7 @@ def test_cache_statistics(): text = "Python programming " * 10 kw = yake.KeywordExtractor(lan="en", n=2, top=5) - result = kw.extract_keywords(text) + kw.extract_keywords(text) # Get cache stats stats = kw.get_cache_stats() @@ -334,14 +335,14 @@ def test_large_dataset_strategy(): text_large = " ".join(["data science machine learning"] * 1000) pyake = yake.KeywordExtractor(lan="en", n=2, top=5) result = pyake.extract_keywords(text_large) - + # Expected results from YAKE 2.0 (very low scores due to repetition) res = [ - ('science machine', 2.0366793798773438e-06), - ('data science', 2.0366832736317804e-06), - ('machine learning', 2.0366832736317804e-06), - ('learning data', 2.038725893286963e-06), - ('science', 4.5083697143021014e-05) + ("science machine", 2.0366793798773438e-06), + ("data science", 2.0366832736317804e-06), + ("machine learning", 2.0366832736317804e-06), + ("learning data", 2.038725893286963e-06), + ("science", 4.5083697143021014e-05), ] assert result == res @@ -351,14 +352,14 @@ def test_medium_dataset_strategy(): text_medium = " ".join(["data science machine learning"] * 100) pyake = yake.KeywordExtractor(lan="en", n=2, top=5) result = pyake.extract_keywords(text_medium) - + # Expected results from YAKE 2.0 res = [ - ('science machine', 2.1801996753389333e-05), - ('data science', 2.180612257549257e-05), - ('machine learning', 2.180612257549257e-05), - ('learning data', 2.203055472734129e-05), - ('science', 0.00046641791831459765) + ("science machine", 2.1801996753389333e-05), + ("data science", 2.180612257549257e-05), + ("machine learning", 2.180612257549257e-05), + ("learning data", 2.203055472734129e-05), + ("science", 0.00046641791831459765), ] assert result == res @@ -368,14 +369,14 @@ def test_small_dataset_strategy(): text_small = "data science machine learning" pyake = yake.KeywordExtractor(lan="en", n=2, top=5) result = pyake.extract_keywords(text_small) - + # Expected results from YAKE 2.0 res = [ - ('data science', 0.04940384002065631), - ('machine learning', 0.04940384002065631), - ('science machine', 0.09700399286574239), - ('data', 0.15831692877998726), - ('learning', 0.15831692877998726) + ("data science", 0.04940384002065631), + ("machine learning", 0.04940384002065631), + ("science machine", 0.09700399286574239), + ("data", 0.15831692877998726), + ("learning", 0.15831692877998726), ] assert result == res @@ -446,16 +447,18 @@ def test_special_characters_handling(): def test_multilingual_support(): """Test multiple languages beyond existing tests.""" # German - text_de = "Maschinelles Lernen und künstliche Intelligenz sind wichtige Technologien" + text_de = ( + "Maschinelles Lernen und künstliche Intelligenz sind wichtige Technologien" + ) pyake_de = yake.KeywordExtractor(lan="de", n=2, top=5) result_de = pyake_de.extract_keywords(text_de) - + res_de = [ - ('Maschinelles Lernen', 0.023458380875189744), - ('wichtige Technologien', 0.026233073037508336), - ('künstliche Intelligenz', 0.04498862876540802), - ('Technologien', 0.08596317751626563), - ('Lernen', 0.1447773057422032) + ("Maschinelles Lernen", 0.023458380875189744), + ("wichtige Technologien", 0.026233073037508336), + ("künstliche Intelligenz", 0.04498862876540802), + ("Technologien", 0.08596317751626563), + ("Lernen", 0.1447773057422032), ] assert result_de == res_de @@ -463,13 +466,13 @@ def test_multilingual_support(): text_fr = "L'apprentissage automatique et l'intelligence artificielle transforment le monde" pyake_fr = yake.KeywordExtractor(lan="fr", n=2, top=5) result_fr = pyake_fr.extract_keywords(text_fr) - + res_fr = [ ("L'apprentissage automatique", 0.04940384002065631), ("l'intelligence artificielle", 0.09700399286574239), - ('artificielle transforment', 0.09700399286574239), + ("artificielle transforment", 0.09700399286574239), ("L'apprentissage", 0.15831692877998726), - ('monde', 0.15831692877998726) + ("monde", 0.15831692877998726), ] assert result_fr == res_fr @@ -521,9 +524,9 @@ def test_composed_word_invalid_candidate(): # Create invalid candidate with None cw = ComposedWord(None) - + # Verify invalid candidate properties - assert cw.start_or_end_stopwords == True + assert cw.start_or_end_stopwords assert cw.h == 0.0 assert cw.tf == 0.0 assert cw.kw == "" @@ -541,13 +544,13 @@ def test_composed_word_validation(): Deep Learning 123 algorithms process data. Neural networks work efficiently. """ - + kw = yake.KeywordExtractor(lan="en", n=2, top=20) result = kw.extract_keywords(text) - + # Verify we get valid keywords assert len(result) > 0 - + # Keywords should not contain only digits or unusual characters for keyword, score in result: assert not keyword.isdigit() @@ -557,15 +560,15 @@ def test_composed_word_validation(): def test_composed_word_with_digits(): """Test handling of n-grams with digits.""" text = "machine learning 2024 algorithms" - + pyake = yake.KeywordExtractor(lan="en", n=2, top=3) result = pyake.extract_keywords(text) - + # Expected results from YAKE 2.0 res = [ - ('machine learning', 0.02570861714399338), - ('algorithms', 0.04491197687864554), - ('machine', 0.15831692877998726) + ("machine learning", 0.02570861714399338), + ("algorithms", 0.04491197687864554), + ("machine", 0.15831692877998726), ] assert result == res @@ -573,12 +576,12 @@ def test_composed_word_with_digits(): def test_composed_word_stopword_boundaries(): """Test n-grams starting or ending with stopwords are filtered.""" text = "The machine learning algorithms are powerful and efficient" - + kw = yake.KeywordExtractor(lan="en", n=3, top=10) result = kw.extract_keywords(text) - + keywords = [kw[0] for kw in result] - + # YAKE should filter phrases starting/ending with stopwords # Verify no keywords start with common stopwords for keyword in keywords: @@ -591,13 +594,13 @@ def test_composed_word_stopword_boundaries(): def test_composed_word_tf_and_h_setters(): """Test that tf and h setters work correctly through extraction.""" text = "machine learning machine learning deep learning" - + kw = yake.KeywordExtractor(lan="en", n=2, top=5) result = kw.extract_keywords(text) - + # "machine learning" appears twice, should have tf=2 assert len(result) > 0 - + # Verify scores are positive and reasonable for keyword, score in result: assert score > 0.0 @@ -610,30 +613,30 @@ def test_composed_word_different_sizes(): Artificial intelligence and machine learning technologies enable deep neural network architectures to process data. """ - + # Test n=1 (unigrams) kw1 = yake.KeywordExtractor(lan="en", n=1, top=5) result1 = kw1.extract_keywords(text) assert len(result1) > 0 assert all(len(kw[0].split()) == 1 for kw in result1) - + # Test n=2 (bigrams) kw2 = yake.KeywordExtractor(lan="en", n=2, top=5) result2 = kw2.extract_keywords(text) assert len(result2) > 0 assert any(len(kw[0].split()) <= 2 for kw in result2) - + # Test n=3 (trigrams) kw3 = yake.KeywordExtractor(lan="en", n=3, top=5) result3 = kw3.extract_keywords(text) assert len(result3) > 0 assert any(len(kw[0].split()) <= 3 for kw in result3) - + # Test n=4 (4-grams) - tests consecutive stopwords fix kw4 = yake.KeywordExtractor(lan="en", n=4, top=5) result4 = kw4.extract_keywords(text) assert len(result4) > 0 - + # Verify all scores are positive (no negative scores bug) for keyword, score in result4: assert score > 0.0, f"Negative score for '{keyword}': {score}" @@ -642,13 +645,13 @@ def test_composed_word_different_sizes(): def test_composed_word_integrity_score(): """Test that integrity score is calculated for multi-word terms.""" text = "natural language processing is powerful" - + kw = yake.KeywordExtractor(lan="en", n=3, top=5) result = kw.extract_keywords(text) - + # Should extract multi-word terms assert len(result) > 0 - + # Verify we get the expected keyword keywords = [kw[0] for kw in result] assert any("language" in kw.lower() for kw in keywords) @@ -657,15 +660,15 @@ def test_composed_word_integrity_score(): def test_composed_word_with_acronyms(): """Test n-grams containing acronyms.""" text = "AI machine learning algorithms" - + pyake = yake.KeywordExtractor(lan="en", n=2, top=3) result = pyake.extract_keywords(text) - + # Expected results from YAKE 2.0 res = [ - ('learning algorithms', 0.04940384002065631), - ('machine learning', 0.09700399286574239), - ('algorithms', 0.15831692877998726) + ("learning algorithms", 0.04940384002065631), + ("machine learning", 0.09700399286574239), + ("algorithms", 0.15831692877998726), ] assert result == res @@ -673,13 +676,13 @@ def test_composed_word_with_acronyms(): def test_composed_word_case_sensitivity(): """Test that composed words handle case correctly.""" text = "Python programming language. Python is great. python tutorial." - + kw = yake.KeywordExtractor(lan="en", n=2, top=5) result = kw.extract_keywords(text) - + # Should normalize case properly assert len(result) > 0 - + # Original case should be preserved in kw, normalized in unique_kw for keyword, score in result: # Verify keywords are not empty @@ -689,10 +692,10 @@ def test_composed_word_case_sensitivity(): def test_composed_word_with_contractions(): """Test handling of contractions in multi-word terms.""" text = "It's important. We're learning. They've succeeded. Don't stop." - + kw = yake.KeywordExtractor(lan="en", n=2, top=5) result = kw.extract_keywords(text) - + # Should handle contractions properly assert len(result) >= 0 # May or may not extract depending on stopwords @@ -700,13 +703,13 @@ def test_composed_word_with_contractions(): def test_composed_word_feature_aggregation(): """Test that features are properly aggregated across terms.""" text = "artificial intelligence machine learning deep learning algorithms" - + kw = yake.KeywordExtractor(lan="en", n=2, top=10) result = kw.extract_keywords(text) - + # Should extract bigrams assert len(result) > 0 - + # Verify feature aggregation produces reasonable scores for keyword, score in result: # Scores should be in reasonable range @@ -718,29 +721,32 @@ def test_composed_word_feature_aggregation(): def test_composed_word_get_composed_feature(): """Test get_composed_feature method directly.""" from yake.data import DataCore - + text = "machine learning is powerful" stopwords = {"is"} config = {"windows_size": 1, "n": 2} - + dc = DataCore(text=text, stopword_set=stopwords, config=config) dc.build_single_terms_features() dc.build_mult_terms_features() - + # Get a multi-word candidate candidates = [c for c in dc.candidates.values() if c.size > 1 and len(c.terms) > 0] - + if len(candidates) > 0: cand = candidates[0] - + # Test get_composed_feature with stopword filtering sum_f, prod_f, ratio = cand.get_composed_feature("tf", discart_stopword=True) assert sum_f >= 0 assert prod_f >= 0 assert ratio >= 0 - + # Test without stopword filtering - sum_f2, prod_f2, ratio2 = cand.get_composed_feature("tf", discart_stopword=False) + sum_f2, prod_f2, ratio2 = cand.get_composed_feature( + "tf", + discart_stopword=False, + ) assert sum_f2 >= 0 assert prod_f2 >= 0 assert ratio2 >= 0 @@ -749,25 +755,25 @@ def test_composed_word_get_composed_feature(): def test_composed_word_build_features(): """Test build_features method for feature extraction.""" from yake.data import DataCore - + text = "machine learning algorithms process data" stopwords = set() config = {"windows_size": 1, "n": 2} - + dc = DataCore(text=text, stopword_set=stopwords, config=config) dc.build_single_terms_features() dc.build_mult_terms_features() - + # Get a multi-word candidate candidates = [c for c in dc.candidates.values() if c.size > 1] - + if len(candidates) > 0: cand = candidates[0] - + # Test build_features with minimal params params = {"doc_id": "doc1"} features, columns, seen = cand.build_features(params) - + assert isinstance(features, list) assert isinstance(columns, list) # Note: columns may have duplicates (like "is_virtual" appears twice) @@ -782,30 +788,30 @@ def test_composed_word_build_features(): def test_composed_word_build_features_with_gold(): """Test build_features with gold standard keywords.""" from yake.data import DataCore - + text = "machine learning algorithms" stopwords = set() config = {"windows_size": 1, "n": 2} - + dc = DataCore(text=text, stopword_set=stopwords, config=config) dc.build_single_terms_features() dc.build_mult_terms_features() - + # Get a multi-word candidate candidates = [c for c in dc.candidates.values() if c.size > 1] - + if len(candidates) > 0: cand = candidates[0] - + # Test with gold standard keys params = { "doc_id": "doc1", "keys": ["machine learning", "algorithms"], "rel": True, - "rel_approx": True + "rel_approx": True, } features, columns, seen = cand.build_features(params) - + assert isinstance(features, list) assert isinstance(columns, list) assert "rel" in columns @@ -815,26 +821,26 @@ def test_composed_word_build_features_with_gold(): def test_composed_word_update_cand(): """Test update_cand method for merging candidates.""" from yake.data import DataCore - + text = "Machine Learning. machine learning is powerful" stopwords = {"is"} config = {"windows_size": 1, "n": 2} - + dc = DataCore(text=text, stopword_set=stopwords, config=config) dc.build_single_terms_features() dc.build_mult_terms_features() - + # Find candidates (should have duplicates with different cases) candidates_list = [c for c in dc.candidates.values() if c.size > 1] - + if len(candidates_list) >= 2: # Simulate update_cand cand1 = candidates_list[0] cand2 = candidates_list[1] - + original_tags = len(cand1.tags) cand1.update_cand(cand2) - + # Tags should be merged assert len(cand1.tags) >= original_tags @@ -843,10 +849,10 @@ def test_composed_word_update_h_with_consecutive_stopwords(): """Test update_h with consecutive stopwords (Issue #17 fix).""" # Text with multiple consecutive stopwords to test the fix text = "This is a test of the new algorithm for machine learning" - + kw = yake.KeywordExtractor(lan="en", n=4, top=10) result = kw.extract_keywords(text) - + # All scores should be positive (no negative scores bug) for keyword, score in result: assert score > 0.0, f"Negative score detected for '{keyword}': {score}" @@ -859,10 +865,10 @@ def test_composed_word_n5_with_stopwords(): The quality of the new version of the system is much better than before. This is a test of the ability of the algorithm to handle phrases. """ - + kw = yake.KeywordExtractor(lan="en", n=5, top=10) result = kw.extract_keywords(text) - + # Should handle 5-grams with stopwords correctly if len(result) > 0: for keyword, score in result: @@ -875,17 +881,17 @@ def test_composed_word_n5_with_stopwords(): def test_composed_word_virtual_candidate(): """Test handling of virtual candidates in scoring.""" import math - + # Virtual candidates are used internally for scoring # We test this indirectly through extraction text = "Python programming language Java development tools" - + kw = yake.KeywordExtractor(lan="en", n=2, top=10) result = kw.extract_keywords(text) - + # Should extract keywords properly assert len(result) > 0 - + # Scores should be valid for keyword, score in result: assert score > 0.0 @@ -894,45 +900,45 @@ def test_composed_word_virtual_candidate(): def test_n3_KO(): - text_content = """ + text_content = """ 내가 원하는 우리나라는 단지 강한 나라가 아니다. 높은 문화의 힘을 가지고 세계 인류의 평화와 행복에 기여할 수 있는 나라다. 나는 우리나라가 세계에서 가장 아름다운 나라가 되기를 바란다. 부강한 나라가 아니라, 인간다운 나라, 서로 존중하고 배려하는 사회가 되기를 소망한다. 그런 나라는 국민 모두가 자유롭고 평등하며, 스스로 삶을 개척해 나가는 힘을 갖춘 나라일 것이다. 정의와 진실이 살아 숨 쉬고, 교육과 문화가 삶 속에 녹아드는 나라야말로 진정한 독립의 완성이라고 믿는다.""" - pyake = yake.KeywordExtractor(lan="ko", n=3) - - result = pyake.extract_keywords(text_content) - print(result) - res = [ - ("원하는 우리나라는", (0.05566856895958132)), - ("나라가 아니다", (0.11021294395053319)), - ("아니다", (0.16021206989578027)), - ("나라가", (0.20654269078342435)), - ("원하는", (0.22963666606536398)), - ("우리나라는", (0.22963666606536398)), - ("인류의 평화와 행복에", (0.27025465428537554)), - ("평화와 행복에 기여할", (0.27025465428537554)), - ("되기를", (0.3118090756964287)), - ("문화의 힘을 가지고", (0.34905919519586825)), - ("가지고 세계 인류의", (0.34905919519586825)), - ("인류의 평화와", (0.34905919519586825)), - ("평화와 행복에", (0.34905919519586825)), - ("행복에 기여할", (0.34905919519586825)), - ("나라다", (0.39852532013709224)), - ("되기를 바란다", (0.44156529703473324)), - ("부강한 나라가 아니라", (0.45642413435012985)), - ("바란다", (0.49118134957532494)), - ("나라가 되기를 바란다", (0.4961710660017718)), - ("부강한 나라가", (0.5055445811936079)), - ] - assert result == res - - keywords = [kw[0] for kw in result] - th = TextHighlighter(max_ngram_size=1) - textHighlighted = th.highlight(text_content, keywords) - print(textHighlighted) + pyake = yake.KeywordExtractor(lan="ko", n=3) - assert ( - textHighlighted - == "내가 원하는 우리나라는 단지 강한 나라가 아니다. 높은 문화의 힘을 가지고 세계 인류의 평화와 행복에 기여할 수 있는 나라다. 나는 우리나라가 세계에서 가장 아름다운 나라가 되기를 바란다. 부강한 나라가 아니라, 인간다운 나라, 서로 존중하고 배려하는 사회가 되기를 소망한다. 그런 나라는 국민 모두가 자유롭고 평등하며, 스스로 삶을 개척해 나가는 힘을 갖춘 나라일 것이다. 정의와 진실이 살아 숨 쉬고, 교육과 문화가 삶 속에 녹아드는 나라야말로 진정한 독립의 완성이라고 믿는다." + result = pyake.extract_keywords(text_content) + print(result) + res = [ + ("원하는 우리나라는", (0.05566856895958132)), + ("나라가 아니다", (0.11021294395053319)), + ("아니다", (0.16021206989578027)), + ("나라가", (0.20654269078342435)), + ("원하는", (0.22963666606536398)), + ("우리나라는", (0.22963666606536398)), + ("인류의 평화와 행복에", (0.27025465428537554)), + ("평화와 행복에 기여할", (0.27025465428537554)), + ("되기를", (0.3118090756964287)), + ("문화의 힘을 가지고", (0.34905919519586825)), + ("가지고 세계 인류의", (0.34905919519586825)), + ("인류의 평화와", (0.34905919519586825)), + ("평화와 행복에", (0.34905919519586825)), + ("행복에 기여할", (0.34905919519586825)), + ("나라다", (0.39852532013709224)), + ("되기를 바란다", (0.44156529703473324)), + ("부강한 나라가 아니라", (0.45642413435012985)), + ("바란다", (0.49118134957532494)), + ("나라가 되기를 바란다", (0.4961710660017718)), + ("부강한 나라가", (0.5055445811936079)), + ] + assert result == res + + keywords = [kw[0] for kw in result] + th = TextHighlighter(max_ngram_size=1) + textHighlighted = th.highlight(text_content, keywords) + print(textHighlighted) + + assert ( + textHighlighted + == "내가 원하는 우리나라는 단지 강한 나라가 아니다. 높은 문화의 힘을 가지고 세계 인류의 평화와 행복에 기여할 수 있는 나라다. 나는 우리나라가 세계에서 가장 아름다운 나라가 되기를 바란다. 부강한 나라가 아니라, 인간다운 나라, 서로 존중하고 배려하는 사회가 되기를 소망한다. 그런 나라는 국민 모두가 자유롭고 평등하며, 스스로 삶을 개척해 나가는 힘을 갖춘 나라일 것이다. 정의와 진실이 살아 숨 쉬고, 교육과 문화가 삶 속에 녹아드는 나라야말로 진정한 독립의 완성이라고 믿는다." ) @@ -950,14 +956,14 @@ def test_iso_encoding_fallback(): def test_jaro_similarity(): """Test Jaro similarity function (line 189).""" extractor = yake.KeywordExtractor(lan="en", dedupFunc="jaro") - + # Test with identical strings assert extractor.jaro("test", "test") == 1.0 - + # Test with similar strings sim = extractor.jaro("google", "gogle") assert 0.8 < sim < 1.0 - + # Test with different strings sim = extractor.jaro("abc", "xyz") assert sim < 0.5 @@ -966,17 +972,17 @@ def test_jaro_similarity(): def test_ultra_fast_similarity_edge_cases(): """Test _ultra_fast_similarity edge cases (lines 247-263).""" extractor = yake.KeywordExtractor(lan="en") - + # Line 247: Identical strings assert extractor._ultra_fast_similarity("test", "test") == 1.0 - + # Line 252: Empty strings (identical, so should return 1.0) assert extractor._ultra_fast_similarity("", "") == 1.0 - + # Line 256: Very different lengths (len_ratio < 0.3) result = extractor._ultra_fast_similarity("a", "abcdefghij") assert result == 0.0 - + # Line 263: Few common characters (char_overlap < 0.2) result = extractor._ultra_fast_similarity("abc", "xyz") assert result == 0.0 @@ -987,23 +993,23 @@ def test_dedup_function_mappings(): # Test default (seqm) ext_default = yake.KeywordExtractor(lan="en") assert ext_default.dedup_function == ext_default.seqm - + # Test jaro ext1 = yake.KeywordExtractor(lan="en", dedup_func="jaro") assert ext1.dedup_function == ext1.jaro - + # Test sequencematcher ext2 = yake.KeywordExtractor(lan="en", dedup_func="sequencematcher") assert ext2.dedup_function == ext2.seqm - + # Test seqm (alias) ext3 = yake.KeywordExtractor(lan="en", dedup_func="seqm") assert ext3.dedup_function == ext3.seqm - + # Test unknown function (defaults to levs) ext4 = yake.KeywordExtractor(lan="en", dedup_func="unknown") assert ext4.dedup_function == ext4.levs - + # Test levenshtein explicitly ext5 = yake.KeywordExtractor(lan="en", dedup_func="levenshtein") assert ext5.dedup_function == ext5.levs @@ -1011,12 +1017,14 @@ def test_dedup_function_mappings(): def test_no_deduplication_path(): """Test extraction with dedup_lim >= 1.0 (line 619).""" - text = "Google acquired Kaggle. Google is a tech company. Kaggle is a data platform." - + text = ( + "Google acquired Kaggle. Google is a tech company. Kaggle is a data platform." + ) + # dedup_lim = 1.0 means no deduplication extractor = yake.KeywordExtractor(lan="en", n=1, top=10, dedupLim=1.0) keywords = extractor.extract_keywords(text) - + # Should return results without deduplication logic assert len(keywords) > 0 assert all(isinstance(kw, tuple) and len(kw) == 2 for kw in keywords) @@ -1025,15 +1033,15 @@ def test_no_deduplication_path(): def test_exception_handling_in_extract(): """Test exception handling during extraction (lines 650-654).""" extractor = yake.KeywordExtractor(lan="en") - + # Test with None input (should return empty list) result = extractor.extract_keywords(None) assert result == [] - + # Test with empty string (should return empty list) result = extractor.extract_keywords("") assert result == [] - + # Test with very malformed input still works gracefully result = extractor.extract_keywords("...") assert isinstance(result, list) @@ -1043,9 +1051,9 @@ def test_optimized_small_dedup(): """Test optimized small dataset deduplication (<50 candidates).""" text = "Google acquired Kaggle. " * 10 # Small text extractor = yake.KeywordExtractor(lan="en", n=1, top=5, dedupLim=0.9) - + keywords = extractor.extract_keywords(text) - + # Should use _optimized_small_dedup strategy assert len(keywords) <= 5 assert all(isinstance(kw, tuple) for kw in keywords) @@ -1054,7 +1062,8 @@ def test_optimized_small_dedup(): def test_optimized_medium_dedup(): """Test optimized medium dataset deduplication (50-200 candidates).""" # Generate text that produces ~100 candidates - text = """ + text = ( + """ Artificial intelligence and machine learning are transforming technology. Deep learning neural networks process data efficiently. Natural language processing enables text analysis. @@ -1065,11 +1074,13 @@ def test_optimized_medium_dedup(): Cybersecurity protects digital information. Blockchain technology ensures transaction security. Internet of Things connects smart devices. - """ * 5 - + """ + * 5 + ) + extractor = yake.KeywordExtractor(lan="en", n=2, top=10, dedupLim=0.8) keywords = extractor.extract_keywords(text) - + # Should use _optimized_medium_dedup strategy assert len(keywords) <= 10 assert all(isinstance(kw, tuple) for kw in keywords) @@ -1078,7 +1089,8 @@ def test_optimized_medium_dedup(): def test_optimized_large_dedup(): """Test optimized large dataset deduplication (>200 candidates).""" # Generate very large text with many candidates - text = """ + text = ( + """ Technology innovation drives business transformation across industries. Digital platforms enable global communication and collaboration. Software development methodologies improve project delivery. @@ -1089,11 +1101,13 @@ def test_optimized_large_dedup(): DevOps practices streamline deployment and operations. Mobile applications provide convenient access to services. Enterprise solutions integrate business processes efficiently. - """ * 20 # Large text to force large strategy - + """ + * 20 + ) # Large text to force large strategy + extractor = yake.KeywordExtractor(lan="en", n=2, top=15, dedupLim=0.7) keywords = extractor.extract_keywords(text) - + # Should use _optimized_large_dedup strategy assert len(keywords) <= 15 assert all(isinstance(kw, tuple) for kw in keywords) @@ -1102,28 +1116,30 @@ def test_optimized_large_dedup(): def test_cache_lifecycle_management(): """Test intelligent cache lifecycle management (lines 793-820).""" extractor = yake.KeywordExtractor(lan="en") - + # Process multiple small documents for i in range(10): - text = f"Document {i}: Google Kaggle technology data science machine learning." * 5 + text = ( + f"Document {i}: Google Kaggle technology data science machine learning." * 5 + ) extractor.extract_keywords(text) - + stats = extractor.get_cache_stats() - assert stats['docs_processed'] > 0 - + assert stats["docs_processed"] > 0 + # Process a very large document (should trigger cache clear) large_text = "Large document content. " * 5000 extractor.extract_keywords(large_text) - + # Cache should have been managed stats_after = extractor.get_cache_stats() - assert 'docs_processed' in stats_after + assert "docs_processed" in stats_after def test_get_cache_usage(): """Test _get_cache_usage method (line 822).""" extractor = yake.KeywordExtractor(lan="en") - + usage = extractor._get_cache_usage() assert isinstance(usage, float) assert 0.0 <= usage <= 1.0 @@ -1132,24 +1148,24 @@ def test_get_cache_usage(): def test_clear_caches(): """Test clear_caches method (lines 833-891).""" extractor = yake.KeywordExtractor(lan="en") - + # Generate some cache content text = "Google Kaggle data science machine learning artificial intelligence." extractor.extract_keywords(text) extractor.extract_keywords(text + " More content.") - + # Get initial stats - stats_before = extractor.get_cache_stats() - + extractor.get_cache_stats() + # Clear all caches extractor.clear_caches() - + # Verify caches were cleared stats_after = extractor.get_cache_stats() - assert stats_after['docs_processed'] == 0 - assert stats_after['hits'] == 0 - assert stats_after['misses'] == 0 - + assert stats_after["docs_processed"] == 0 + assert stats_after["hits"] == 0 + assert stats_after["misses"] == 0 + usage = extractor._get_cache_usage() assert usage == 0.0 @@ -1158,10 +1174,10 @@ def test_lemmatization_without_libraries(): """Test lemmatization when libraries are not available.""" # Test with lemmatizer enabled but libraries not installed extractor = yake.KeywordExtractor(lan="en", lemmatize=True, lemmatizer="spacy") - + text = "running runs ran" keywords = extractor.extract_keywords(text) - + # Should handle gracefully (return keywords without lemmatization) assert isinstance(keywords, list) @@ -1170,31 +1186,39 @@ def test_lemmatization_aggregation_methods(): """Test different lemmatization aggregation methods.""" # Note: This requires spacy/nltk to be installed for full coverage # We test the logic paths even if lemmatization is disabled - + text = "Google acquired Kaggle. Technology companies acquire startups." - + # Test min aggregation (default) ext_min = yake.KeywordExtractor(lan="en", lemmatize=True, lemma_aggregation="min") keywords_min = ext_min.extract_keywords(text) assert isinstance(keywords_min, list) - + # Test mean aggregation ext_mean = yake.KeywordExtractor(lan="en", lemmatize=True, lemma_aggregation="mean") keywords_mean = ext_mean.extract_keywords(text) assert isinstance(keywords_mean, list) - + # Test max aggregation ext_max = yake.KeywordExtractor(lan="en", lemmatize=True, lemma_aggregation="max") keywords_max = ext_max.extract_keywords(text) assert isinstance(keywords_max, list) - + # Test harmonic aggregation - ext_harm = yake.KeywordExtractor(lan="en", lemmatize=True, lemma_aggregation="harmonic") + ext_harm = yake.KeywordExtractor( + lan="en", + lemmatize=True, + lemma_aggregation="harmonic", + ) keywords_harm = ext_harm.extract_keywords(text) assert isinstance(keywords_harm, list) - + # Test unknown aggregation (should fall back to min with warning) - ext_unk = yake.KeywordExtractor(lan="en", lemmatize=True, lemma_aggregation="unknown") + ext_unk = yake.KeywordExtractor( + lan="en", + lemmatize=True, + lemma_aggregation="unknown", + ) keywords_unk = ext_unk.extract_keywords(text) assert isinstance(keywords_unk, list) @@ -1202,16 +1226,16 @@ def test_lemmatization_aggregation_methods(): def test_get_strategy(): """Test _get_strategy method for dataset size classification.""" extractor = yake.KeywordExtractor(lan="en") - + # Small: < 50 assert extractor._get_strategy(30) == "small" assert extractor._get_strategy(49) == "small" - + # Medium: 50-199 assert extractor._get_strategy(50) == "medium" assert extractor._get_strategy(100) == "medium" assert extractor._get_strategy(199) == "medium" - + # Large: >= 200 assert extractor._get_strategy(200) == "large" assert extractor._get_strategy(500) == "large" @@ -1220,11 +1244,11 @@ def test_get_strategy(): def test_aggressive_pre_filter(): """Test _aggressive_pre_filter method.""" extractor = yake.KeywordExtractor(lan="en") - + # Should pass pre-filter (similar candidates) assert extractor._aggressive_pre_filter("google", "google") assert extractor._aggressive_pre_filter("machine learning", "machine learning") - + # Should fail pre-filter (too different) assert not extractor._aggressive_pre_filter("a", "abcdefghijklmnop") @@ -1232,14 +1256,14 @@ def test_aggressive_pre_filter(): def test_optimized_similarity(): """Test _optimized_similarity method.""" extractor = yake.KeywordExtractor(lan="en") - + # Identical strings assert extractor._optimized_similarity("test", "test") == 1.0 - + # Similar strings sim = extractor._optimized_similarity("google", "gogle") assert 0.5 < sim < 1.0 - + # Very different strings sim = extractor._optimized_similarity("abc", "xyz") assert sim < 0.3 @@ -1254,92 +1278,94 @@ def test_backwards_compatibility(): Google is acquiring data science community Kaggle. Sources tell us that Google is acquiring Kaggle, a platform that hosts data science and machine learning competitions. """ - + # Test with same parameters as YAKE 0.6.0 extractor = yake.KeywordExtractor(lan="en", n=3, top=10, dedupLim=0.9) keywords = extractor.extract_keywords(text) - + # Verify structure matches YAKE 0.6.0 output assert len(keywords) <= 10 assert all(isinstance(kw, tuple) and len(kw) == 2 for kw in keywords) assert all(isinstance(kw[0], str) and isinstance(kw[1], float) for kw in keywords) - + # Verify scores are in ascending order (lower is better) scores = [score for _, score in keywords] assert scores == sorted(scores) - + # Verify top keywords are present keyword_texts = [kw[0] for kw in keywords] assert "Google" in keyword_texts or "Kaggle" in keyword_texts def test_performance_benchmark(): - """" Performance test: Verify improvement is maintained. - - """ + """ " Performance test: Verify improvement is maintained.""" import time - - text = """ + + text = ( + """ Google is acquiring data science community Kaggle. Sources tell us that Google is acquiring Kaggle, a platform that hosts data science and machine learning competitions. Details about the transaction remain somewhat vague, but given that Google is hosting its Cloud Next conference in San Francisco this week, the official announcement could come as early as tomorrow. - """ * 20 # Make it larger for meaningful timing - + """ + * 20 + ) # Make it larger for meaningful timing + extractor = yake.KeywordExtractor(lan="en", n=3, top=20) - + # Warm-up run extractor.extract_keywords(text) - + # Timed runs start = time.time() for _ in range(10): extractor.extract_keywords(text) elapsed = time.time() - start - + avg_time_ms = (elapsed / 10) * 1000 - assert avg_time_ms < 110, f"Performance regression: {avg_time_ms:.2f}ms > 110ms" - + print(f"\nAverage extraction time: {avg_time_ms:.2f}ms (target: <110ms)") def test_cache_statistics_tracking(): """Test cache statistics are properly tracked.""" extractor = yake.KeywordExtractor(lan="en") - + text1 = "Google Kaggle data science" text2 = "Google Kaggle machine learning" # Similar text for cache hits - + extractor.extract_keywords(text1) extractor.extract_keywords(text2) - + stats = extractor.get_cache_stats() - - assert 'hits' in stats - assert 'misses' in stats - assert 'hit_rate' in stats - assert 'docs_processed' in stats - assert 'cache_size' in stats - - assert stats['docs_processed'] == 2 - assert isinstance(stats['hit_rate'], float) + + assert "hits" in stats + assert "misses" in stats + assert "hit_rate" in stats + assert "docs_processed" in stats + assert "cache_size" in stats + + assert stats["docs_processed"] == 2 + assert isinstance(stats["hit_rate"], float) def test_large_dedup_cache_clearing(): """Test that large dedup handles many candidates efficiently.""" extractor = yake.KeywordExtractor(lan="en", n=2, top=20, dedup_lim=0.7) - + # Generate text with many unique keywords text_parts = [] for i in range(30): - text_parts.append(f"Technology innovation number {i} enables digital transformation. ") - + text_parts.append( + f"Technology innovation number {i} enables digital transformation. " + ) + combined_text = " ".join(text_parts) keywords = extractor.extract_keywords(combined_text) - + # Should work and return up to top=20 keywords assert isinstance(keywords, list) assert len(keywords) > 0 @@ -1351,31 +1377,36 @@ def test_large_dedup_cache_clearing(): def test_medium_dedup_prefix_filter(): """Test medium dedup with prefix-based filtering.""" # Create text with keywords that have common prefixes - text = """ + text = ( + """ machine learning algorithms machine intelligence systems machine vision technology learning models training learning algorithms optimization algorithms performance tuning - """ * 10 - + """ + * 10 + ) + extractor = yake.KeywordExtractor(lan="en", n=2, top=10, dedup_lim=0.8) keywords = extractor.extract_keywords(text) - + # Should use prefix optimization in medium strategy assert len(keywords) <= 10 keyword_texts = [kw[0] for kw in keywords] - assert any("machine" in kw.lower() or "learning" in kw.lower() for kw in keyword_texts) + assert any( + "machine" in kw.lower() or "learning" in kw.lower() for kw in keyword_texts + ) def test_small_dedup_exact_match_optimization(): """Test small dedup uses exact match checking.""" text = "Google Google Kaggle Kaggle Data Science Data Science" - + extractor = yake.KeywordExtractor(lan="en", n=1, top=5, dedup_lim=0.9) keywords = extractor.extract_keywords(text) - + # Should deduplicate exact matches efficiently keyword_texts = [kw[0] for kw in keywords] # Each unique keyword should appear only once @@ -1385,15 +1416,15 @@ def test_small_dedup_exact_match_optimization(): def test_ultra_fast_similarity_with_differing_lengths(): """Test similarity calculation with various length differences.""" extractor = yake.KeywordExtractor(lan="en") - + # Similar length, similar content sim1 = extractor._ultra_fast_similarity("google", "goggle") assert 0.5 < sim1 <= 1.0 - + # Same length, different content sim2 = extractor._ultra_fast_similarity("google", "python") assert 0.0 <= sim2 < 0.5 - + # Very different lengths sim3 = extractor._ultra_fast_similarity("ai", "artificial intelligence") assert sim3 == 0.0 @@ -1402,13 +1433,13 @@ def test_ultra_fast_similarity_with_differing_lengths(): def test_optimized_similarity_caching(): """Test that _optimized_similarity uses caching.""" extractor = yake.KeywordExtractor(lan="en") - + # First call sim1 = extractor._optimized_similarity("google", "gogle") - + # Second call should hit cache sim2 = extractor._optimized_similarity("google", "gogle") - + assert sim1 == sim2 assert isinstance(sim1, float) @@ -1416,19 +1447,22 @@ def test_optimized_similarity_caching(): def test_aggressive_pre_filter_length_ratios(): """Test aggressive pre-filter with different cases.""" extractor = yake.KeywordExtractor(lan="en") - + # Exact match should pass assert extractor._aggressive_pre_filter("test", "test") - + # Same first AND last char, similar length - assert extractor._aggressive_pre_filter("test", "text") # Both start with 't' and end with 't' - - # Different last characters should fail for strings > 3 chars + assert extractor._aggressive_pre_filter( + "test", + "text", + ) # Both start with 't' and end with 't' + + # Different last characters should fail for strings > 3 chars assert not extractor._aggressive_pre_filter("test", "tests") # Last char differs - + # Different first characters should fail assert not extractor._aggressive_pre_filter("hello", "world") - + # Very different lengths should fail (>60% difference) assert not extractor._aggressive_pre_filter("ai", "artificial intelligence") @@ -1436,17 +1470,20 @@ def test_aggressive_pre_filter_length_ratios(): def test_cache_lifecycle_with_large_documents(): """Test cache lifecycle management with large documents.""" extractor = yake.KeywordExtractor(lan="en") - + # Process a very large document - large_text = """ + large_text = ( + """ Artificial intelligence and machine learning are revolutionizing technology. Deep learning neural networks process vast amounts of data efficiently. Natural language processing enables sophisticated text analysis. Computer vision systems recognize and classify images accurately. - """ * 200 # Very large text (>5000 words) - + """ + * 200 + ) # Very large text (>5000 words) + keywords = extractor.extract_keywords(large_text) - + # Verify system still works with large documents assert len(keywords) > 0 assert all(isinstance(kw, tuple) and len(kw) == 2 for kw in keywords) @@ -1455,21 +1492,24 @@ def test_cache_lifecycle_with_large_documents(): def test_cache_saturation_handling(): """Test cache management when saturation exceeds 80%.""" extractor = yake.KeywordExtractor(lan="en") - + # Process multiple medium-sized documents for i in range(20): - text = f""" + text = ( + f""" Document {i} contains keywords about technology and innovation. Machine learning algorithms process data efficiently and accurately. Software development methodologies improve project delivery timelines. - """ * 20 + """ + * 20 + ) extractor.extract_keywords(text) - + stats = extractor.get_cache_stats() - + # Should have processed all documents - assert stats['docs_processed'] >= 20 - + assert stats["docs_processed"] >= 20 + # Cache should still be functional final_keywords = extractor.extract_keywords("Google Kaggle data science") assert len(final_keywords) > 0 @@ -1478,10 +1518,10 @@ def test_cache_saturation_handling(): def test_no_dedup_bypass(): """Test that dedup_lim=1.0 bypasses all deduplication logic.""" text = "Google Google Kaggle Kaggle Data Science Data" * 5 - + extractor = yake.KeywordExtractor(lan="en", n=1, top=10, dedup_lim=1.0) keywords = extractor.extract_keywords(text) - + # With dedup_lim=1.0, duplicates might be present (no deduplication) assert len(keywords) <= 10 # Verify it took the fast path (line 619) @@ -1491,24 +1531,24 @@ def test_no_dedup_bypass(): def test_lemmatization_with_empty_keywords(): """Test lemmatization with empty keyword list.""" extractor = yake.KeywordExtractor(lan="en", lemmatize=True) - + # Empty text returns empty keywords keywords = extractor.extract_keywords("") assert keywords == [] - + # This tests line 493: if not keywords: return keywords def test_get_strategy_boundary_cases(): """Test _get_strategy at exact boundaries.""" extractor = yake.KeywordExtractor(lan="en") - + # Boundaries assert extractor._get_strategy(49) == "small" assert extractor._get_strategy(50) == "medium" assert extractor._get_strategy(199) == "medium" assert extractor._get_strategy(200) == "large" - + # Edge cases assert extractor._get_strategy(0) == "small" assert extractor._get_strategy(1) == "small" @@ -1518,11 +1558,11 @@ def test_get_strategy_boundary_cases(): def test_similarity_with_single_characters(): """Test similarity functions with single character inputs.""" extractor = yake.KeywordExtractor(lan="en") - + # Single characters sim = extractor._ultra_fast_similarity("a", "a") assert sim == 1.0 - + sim = extractor._ultra_fast_similarity("a", "b") assert sim < 1.0 @@ -1537,13 +1577,13 @@ def test_backwards_compatibility_with_kwargs(): "dedupLim": 0.8, "dedupFunc": "levs", "windowsSize": 2, - "top": 15 + "top": 15, } ) - + text = "Google acquired Kaggle for data science" keywords = extractor.extract_keywords(text) - + assert len(keywords) <= 15 assert all(isinstance(kw, tuple) for kw in keywords) @@ -1551,10 +1591,10 @@ def test_backwards_compatibility_with_kwargs(): def test_composed_keywords_with_single_word_fallback(): """Test extraction handles both composed and single keywords.""" text = "AI ML DL" # Very short keywords - + extractor = yake.KeywordExtractor(lan="en", n=3, top=5) keywords = extractor.extract_keywords(text) - + # Should handle short text gracefully assert isinstance(keywords, list) @@ -1562,10 +1602,10 @@ def test_composed_keywords_with_single_word_fallback(): def test_extraction_with_all_stopwords(): """Test extraction when text is mostly stopwords.""" text = "the a an and or but if then when where" * 10 - + extractor = yake.KeywordExtractor(lan="en", n=1, top=5) keywords = extractor.extract_keywords(text) - + # Should return empty or very few keywords assert len(keywords) <= 5 @@ -1573,31 +1613,31 @@ def test_extraction_with_all_stopwords(): def test_jaro_similarity_with_unicode(): """Test Jaro similarity with unicode characters.""" extractor = yake.KeywordExtractor(lan="en", dedup_func="jaro") - + # Test with ASCII sim1 = extractor.jaro("test", "test") assert sim1 == 1.0 - + # Test with unicode (if supported) try: sim2 = extractor.jaro("café", "cafe") assert 0 <= sim2 <= 1.0 - except: + except Exception: # pylint: disable=broad-exception-caught pass # Skip if unicode not supported def test_levs_similarity_basic(): """Test Levenshtein similarity function.""" extractor = yake.KeywordExtractor(lan="en", dedup_func="levs") - + # Identical strings sim = extractor.levs("test", "test") assert sim == 1.0 - + # Similar strings sim = extractor.levs("testing", "tests") assert 0.5 < sim < 1.0 - + # Very different strings sim = extractor.levs("abc", "xyz") assert sim < 0.5 @@ -1606,19 +1646,19 @@ def test_levs_similarity_basic(): def test_seqm_similarity_basic(): """Test SequenceMatcher similarity function.""" extractor = yake.KeywordExtractor(lan="en", dedup_func="seqm") - + # Identical strings sim = extractor.seqm("test", "test") assert sim == 1.0 - + # Similar strings that pass aggressive filter (same first/last, similar length) sim = extractor.seqm("testing", "testing") # Identical assert sim == 1.0 - + # Strings that fail aggressive filter return 0.0 sim = extractor.seqm("abc", "xyz") assert sim == 0.0 - + # Test with strings that pass the filter sim = extractor.seqm("data", "data") assert sim == 1.0 @@ -1627,15 +1667,15 @@ def test_seqm_similarity_basic(): def test_multiple_extractions_cache_consistency(): """Test that multiple extractions maintain cache consistency.""" extractor = yake.KeywordExtractor(lan="en", n=2, top=10) - + text = "Google acquired Kaggle for data science and machine learning" - + # Run same extraction multiple times results = [] for _ in range(5): keywords = extractor.extract_keywords(text) results.append(keywords) - + # All results should be identical (deterministic) for i in range(1, len(results)): assert results[i] == results[0] @@ -1644,51 +1684,56 @@ def test_multiple_extractions_cache_consistency(): def test_cache_clear_resets_all_state(): """Test that clear_caches resets all state correctly.""" extractor = yake.KeywordExtractor(lan="en") - + # Build up some cache for i in range(5): extractor.extract_keywords(f"Document {i} with keywords") - + stats_before = extractor.get_cache_stats() - assert stats_before['docs_processed'] > 0 - + assert stats_before["docs_processed"] > 0 + # Clear everything extractor.clear_caches() - + # Verify complete reset stats_after = extractor.get_cache_stats() - assert stats_after['docs_processed'] == 0 - assert stats_after['hits'] == 0 - assert stats_after['misses'] == 0 + assert stats_after["docs_processed"] == 0 + assert stats_after["hits"] == 0 + assert stats_after["misses"] == 0 def test_extraction_determinism(): """Critical test: Verify extraction is deterministic (same input = same output).""" - text = """ + text = ( + """ Google is acquiring data science community Kaggle. Machine learning competitions are hosted on this platform. - """ * 5 - + """ + * 5 + ) + extractor = yake.KeywordExtractor(lan="en", n=2, top=10, dedup_lim=0.9) - + # Extract multiple times result1 = extractor.extract_keywords(text) result2 = extractor.extract_keywords(text) result3 = extractor.extract_keywords(text) - + # All results must be identical assert result1 == result2 == result3 - + # Verify order is consistent for i in range(len(result1)): assert result1[i][0] == result2[i][0] # Same keyword - assert abs(result1[i][1] - result2[i][1]) < 1e-10 # Same score (within float precision) + assert ( + abs(result1[i][1] - result2[i][1]) < 1e-10 + ) # Same score (within float precision) def test_negative_scores_preserved(): """ Test that negative scores are preserved in the output. - + This is a regression test based on the Finnish text example where 'morrow'n neljä eri sitoutumisen' had a negative score of -0.827233. Negative scores can occur due to specific feature combinations in the @@ -1698,35 +1743,34 @@ def test_negative_scores_preserved(): text = """morrow'n neljä eri sitoutumisen -12.5494 morrow'n sitoutumisen ulottuvuudet lastensuojelun sosiaalityöntekijöiden lastensuojelun sosiaalityön 0.00730972 morrow'n sitoutumisen ulottuvuudet lastensuojelun sosiaalityöntekijöiden lastensuojelun 0.00732787""" - + # Extract with Finnish stopwords and 4-grams extractor = yake.KeywordExtractor(lan="fi", n=4, top=10) result = extractor.extract_keywords(text) - + # Verify we got results assert len(result) > 0 - + # Check if any keyword has a negative score scores = [score for _, score in result] has_negative = any(score < 0 for score in scores) - + # Verify negative scores exist (regression check) # The specific keyword "morrow'n neljä eri sitoutumisen" should have negative score negative_keywords = [(kw, score) for kw, score in result if score < 0] - + if has_negative: # If we have negative scores, verify they are properly negative (not close to zero) min_score = min(scores) assert min_score < -0.5, f"Expected strong negative score, got {min_score}" - + # Print for debugging - print(f"\nNegative scores found (expected behavior):") + print("\nNegative scores found (expected behavior):") for kw, score in negative_keywords: print(f" {kw}: {score}") - + # Verify scores are properly ordered (best first) for i in range(len(scores) - 1): - assert scores[i] <= scores[i + 1], \ + assert scores[i] <= scores[i + 1], ( f"Scores not properly ordered: {scores[i]} > {scores[i + 1]}" - - + ) diff --git a/uv.lock b/uv.lock index 0928cd59..c5ae5982 100644 --- a/uv.lock +++ b/uv.lock @@ -1,14 +1,36 @@ version = 1 -revision = 2 +revision = 3 requires-python = ">=3.10" resolution-markers = [ - "python_full_version >= '3.11'", + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", "python_full_version < '3.11'", ] +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "astroid" +version = "4.0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/07/63/0adf26577da5eff6eb7a177876c1cfa213856be9926a000f65c4add9692b/astroid-4.0.4.tar.gz", hash = "sha256:986fed8bcf79fb82c78b18a53352a0b287a73817d6dbcfba3162da36667c49a0", size = 406358, upload-time = "2026-02-07T23:35:07.509Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b0/cf/1c5f42b110e57bc5502eb80dbc3b03d256926062519224835ef08134f1f9/astroid-4.0.4-py3-none-any.whl", hash = "sha256:52f39653876c7dec3e3afd4c2696920e05c83832b9737afc21928f2d2eb7a753", size = 276445, upload-time = "2026-02-07T23:35:05.344Z" }, +] + [[package]] name = "black" -version = "25.1.0" +version = "26.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, @@ -16,40 +38,216 @@ dependencies = [ { name = "packaging" }, { name = "pathspec" }, { name = "platformdirs" }, + { name = "pytokens" }, { name = "tomli", marker = "python_full_version < '3.11'" }, { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef/black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666", size = 649449, upload-time = "2025-01-29T04:15:40.373Z" } +sdist = { url = "https://files.pythonhosted.org/packages/13/88/560b11e521c522440af991d46848a2bde64b5f7202ec14e1f46f9509d328/black-26.1.0.tar.gz", hash = "sha256:d294ac3340eef9c9eb5d29288e96dc719ff269a88e27b396340459dd85da4c58", size = 658785, upload-time = "2026-01-18T04:50:11.993Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/1b/523329e713f965ad0ea2b7a047eeb003007792a0353622ac7a8cb2ee6fef/black-26.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ca699710dece84e3ebf6e92ee15f5b8f72870ef984bf944a57a777a48357c168", size = 1849661, upload-time = "2026-01-18T04:59:12.425Z" }, + { url = "https://files.pythonhosted.org/packages/14/82/94c0640f7285fa71c2f32879f23e609dd2aa39ba2641f395487f24a578e7/black-26.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5e8e75dabb6eb83d064b0db46392b25cabb6e784ea624219736e8985a6b3675d", size = 1689065, upload-time = "2026-01-18T04:59:13.993Z" }, + { url = "https://files.pythonhosted.org/packages/f0/78/474373cbd798f9291ed8f7107056e343fd39fef42de4a51c7fd0d360840c/black-26.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eb07665d9a907a1a645ee41a0df8a25ffac8ad9c26cdb557b7b88eeeeec934e0", size = 1751502, upload-time = "2026-01-18T04:59:15.971Z" }, + { url = "https://files.pythonhosted.org/packages/29/89/59d0e350123f97bc32c27c4d79563432d7f3530dca2bff64d855c178af8b/black-26.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:7ed300200918147c963c87700ccf9966dceaefbbb7277450a8d646fc5646bf24", size = 1400102, upload-time = "2026-01-18T04:59:17.8Z" }, + { url = "https://files.pythonhosted.org/packages/e1/bc/5d866c7ae1c9d67d308f83af5462ca7046760158bbf142502bad8f22b3a1/black-26.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:c5b7713daea9bf943f79f8c3b46f361cc5229e0e604dcef6a8bb6d1c37d9df89", size = 1207038, upload-time = "2026-01-18T04:59:19.543Z" }, + { url = "https://files.pythonhosted.org/packages/30/83/f05f22ff13756e1a8ce7891db517dbc06200796a16326258268f4658a745/black-26.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3cee1487a9e4c640dc7467aaa543d6c0097c391dc8ac74eb313f2fbf9d7a7cb5", size = 1831956, upload-time = "2026-01-18T04:59:21.38Z" }, + { url = "https://files.pythonhosted.org/packages/7d/f2/b2c570550e39bedc157715e43927360312d6dd677eed2cc149a802577491/black-26.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d62d14ca31c92adf561ebb2e5f2741bf8dea28aef6deb400d49cca011d186c68", size = 1672499, upload-time = "2026-01-18T04:59:23.257Z" }, + { url = "https://files.pythonhosted.org/packages/7a/d7/990d6a94dc9e169f61374b1c3d4f4dd3037e93c2cc12b6f3b12bc663aa7b/black-26.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fb1dafbbaa3b1ee8b4550a84425aac8874e5f390200f5502cf3aee4a2acb2f14", size = 1735431, upload-time = "2026-01-18T04:59:24.729Z" }, + { url = "https://files.pythonhosted.org/packages/36/1c/cbd7bae7dd3cb315dfe6eeca802bb56662cc92b89af272e014d98c1f2286/black-26.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:101540cb2a77c680f4f80e628ae98bd2bd8812fb9d72ade4f8995c5ff019e82c", size = 1400468, upload-time = "2026-01-18T04:59:27.381Z" }, + { url = "https://files.pythonhosted.org/packages/59/b1/9fe6132bb2d0d1f7094613320b56297a108ae19ecf3041d9678aec381b37/black-26.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:6f3977a16e347f1b115662be07daa93137259c711e526402aa444d7a88fdc9d4", size = 1207332, upload-time = "2026-01-18T04:59:28.711Z" }, + { url = "https://files.pythonhosted.org/packages/f5/13/710298938a61f0f54cdb4d1c0baeb672c01ff0358712eddaf29f76d32a0b/black-26.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6eeca41e70b5f5c84f2f913af857cf2ce17410847e1d54642e658e078da6544f", size = 1878189, upload-time = "2026-01-18T04:59:30.682Z" }, + { url = "https://files.pythonhosted.org/packages/79/a6/5179beaa57e5dbd2ec9f1c64016214057b4265647c62125aa6aeffb05392/black-26.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:dd39eef053e58e60204f2cdf059e2442e2eb08f15989eefe259870f89614c8b6", size = 1700178, upload-time = "2026-01-18T04:59:32.387Z" }, + { url = "https://files.pythonhosted.org/packages/8c/04/c96f79d7b93e8f09d9298b333ca0d31cd9b2ee6c46c274fd0f531de9dc61/black-26.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9459ad0d6cd483eacad4c6566b0f8e42af5e8b583cee917d90ffaa3778420a0a", size = 1777029, upload-time = "2026-01-18T04:59:33.767Z" }, + { url = "https://files.pythonhosted.org/packages/49/f9/71c161c4c7aa18bdda3776b66ac2dc07aed62053c7c0ff8bbda8c2624fe2/black-26.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a19915ec61f3a8746e8b10adbac4a577c6ba9851fa4a9e9fbfbcf319887a5791", size = 1406466, upload-time = "2026-01-18T04:59:35.177Z" }, + { url = "https://files.pythonhosted.org/packages/4a/8b/a7b0f974e473b159d0ac1b6bcefffeb6bec465898a516ee5cc989503cbc7/black-26.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:643d27fb5facc167c0b1b59d0315f2674a6e950341aed0fc05cf307d22bf4954", size = 1216393, upload-time = "2026-01-18T04:59:37.18Z" }, + { url = "https://files.pythonhosted.org/packages/79/04/fa2f4784f7237279332aa735cdfd5ae2e7730db0072fb2041dadda9ae551/black-26.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ba1d768fbfb6930fc93b0ecc32a43d8861ded16f47a40f14afa9bb04ab93d304", size = 1877781, upload-time = "2026-01-18T04:59:39.054Z" }, + { url = "https://files.pythonhosted.org/packages/cf/ad/5a131b01acc0e5336740a039628c0ab69d60cf09a2c87a4ec49f5826acda/black-26.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2b807c240b64609cb0e80d2200a35b23c7df82259f80bef1b2c96eb422b4aac9", size = 1699670, upload-time = "2026-01-18T04:59:41.005Z" }, + { url = "https://files.pythonhosted.org/packages/da/7c/b05f22964316a52ab6b4265bcd52c0ad2c30d7ca6bd3d0637e438fc32d6e/black-26.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1de0f7d01cc894066a1153b738145b194414cc6eeaad8ef4397ac9abacf40f6b", size = 1775212, upload-time = "2026-01-18T04:59:42.545Z" }, + { url = "https://files.pythonhosted.org/packages/a6/a3/e8d1526bea0446e040193185353920a9506eab60a7d8beb062029129c7d2/black-26.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:91a68ae46bf07868963671e4d05611b179c2313301bd756a89ad4e3b3db2325b", size = 1409953, upload-time = "2026-01-18T04:59:44.357Z" }, + { url = "https://files.pythonhosted.org/packages/c7/5a/d62ebf4d8f5e3a1daa54adaab94c107b57be1b1a2f115a0249b41931e188/black-26.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:be5e2fe860b9bd9edbf676d5b60a9282994c03fbbd40fe8f5e75d194f96064ca", size = 1217707, upload-time = "2026-01-18T04:59:45.719Z" }, + { url = "https://files.pythonhosted.org/packages/6a/83/be35a175aacfce4b05584ac415fd317dd6c24e93a0af2dcedce0f686f5d8/black-26.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:9dc8c71656a79ca49b8d3e2ce8103210c9481c57798b48deeb3a8bb02db5f115", size = 1871864, upload-time = "2026-01-18T04:59:47.586Z" }, + { url = "https://files.pythonhosted.org/packages/a5/f5/d33696c099450b1274d925a42b7a030cd3ea1f56d72e5ca8bbed5f52759c/black-26.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:b22b3810451abe359a964cc88121d57f7bce482b53a066de0f1584988ca36e79", size = 1701009, upload-time = "2026-01-18T04:59:49.443Z" }, + { url = "https://files.pythonhosted.org/packages/1b/87/670dd888c537acb53a863bc15abbd85b22b429237d9de1b77c0ed6b79c42/black-26.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:53c62883b3f999f14e5d30b5a79bd437236658ad45b2f853906c7cbe79de00af", size = 1767806, upload-time = "2026-01-18T04:59:50.769Z" }, + { url = "https://files.pythonhosted.org/packages/fe/9c/cd3deb79bfec5bcf30f9d2100ffeec63eecce826eb63e3961708b9431ff1/black-26.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:f016baaadc423dc960cdddf9acae679e71ee02c4c341f78f3179d7e4819c095f", size = 1433217, upload-time = "2026-01-18T04:59:52.218Z" }, + { url = "https://files.pythonhosted.org/packages/4e/29/f3be41a1cf502a283506f40f5d27203249d181f7a1a2abce1c6ce188035a/black-26.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:66912475200b67ef5a0ab665011964bf924745103f51977a78b4fb92a9fc1bf0", size = 1245773, upload-time = "2026-01-18T04:59:54.457Z" }, + { url = "https://files.pythonhosted.org/packages/e4/3d/51bdb3ecbfadfaf825ec0c75e1de6077422b4afa2091c6c9ba34fbfc0c2d/black-26.1.0-py3-none-any.whl", hash = "sha256:1054e8e47ebd686e078c0bb0eaf31e6ce69c966058d122f2c0c950311f9f3ede", size = 204010, upload-time = "2026-01-18T04:50:09.978Z" }, +] + +[[package]] +name = "blis" +version = "1.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d0/d0/d8cc8c9a4488a787e7fa430f6055e5bd1ddb22c340a751d9e901b82e2efe/blis-1.3.3.tar.gz", hash = "sha256:034d4560ff3cc43e8aa37e188451b0440e3261d989bb8a42ceee865607715ecd", size = 2644873, upload-time = "2025-11-17T12:28:30.511Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/db/d80daf6c060618c72acecf026410b806f620cdea62b2e72f3235d7389d05/blis-1.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:650f1d2b28e3c875927c63deebda463a6f9d237dff30e445bfe2127718c1a344", size = 6925724, upload-time = "2025-11-17T12:27:14.23Z" }, + { url = "https://files.pythonhosted.org/packages/06/cd/7ac854c92e33cfccc0eded48e979a9fc26a447952d07a9c7c7da7c1d6eec/blis-1.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9b0d42420ddd543eec51ccb99d38364a0c0833b6895eced37127822de6ecacff", size = 1233606, upload-time = "2025-11-17T12:27:16.107Z" }, + { url = "https://files.pythonhosted.org/packages/c7/ae/ad3165fdbc4ef6afef585686a778c72cd67fb5aa16ab2fd2f4494186705e/blis-1.3.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f0628a030d44aa71cac5973e40c9e95ec767abaaf2fd366a094b9398885f82f2", size = 2769094, upload-time = "2025-11-17T12:27:17.883Z" }, + { url = "https://files.pythonhosted.org/packages/25/d4/7b0820f139b4ea67606d01b59ba6afbee4552ce7b2fd179f2fb7908e294f/blis-1.3.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d0114cf2d8f19e0ed210f9ae92594cd0a12efa1bbbce444028b0fc365bbbb8af", size = 11300520, upload-time = "2025-11-17T12:27:20.058Z" }, + { url = "https://files.pythonhosted.org/packages/85/f3/865a4322bdbeb944744c1908e67fdabecd476613a17204956cff12d568c9/blis-1.3.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7e88181e9dd8430029ebaf22d41bf79e756e8c95363e9471717102c66beb4a6d", size = 2962083, upload-time = "2025-11-17T12:27:22.098Z" }, + { url = "https://files.pythonhosted.org/packages/65/a2/c2842fa1e2e6bd56eb93e41b34859a9af8b5b63669ee0442bea585d8f607/blis-1.3.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:62fb8c731347b0f98f5f81d19d339049e61489798738467d156c66cc329b0754", size = 14177001, upload-time = "2025-11-17T12:27:24.345Z" }, + { url = "https://files.pythonhosted.org/packages/b5/9b/3b1532f23db8bdddf3a976e9acf51e8debd94c63be5dafb8ccbab3e62935/blis-1.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:631836d4f335e62c30aa50a1aa0170773265c73654d296361f95180006e88c04", size = 6184429, upload-time = "2025-11-17T12:27:27.054Z" }, + { url = "https://files.pythonhosted.org/packages/a1/0a/a4c8736bc497d386b0ffc76d321f478c03f1a4725e52092f93b38beb3786/blis-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e10c8d3e892b1dbdff365b9d00e08291876fc336915bf1a5e9f188ed087e1a91", size = 6925522, upload-time = "2025-11-17T12:27:29.199Z" }, + { url = "https://files.pythonhosted.org/packages/83/5a/3437009282f23684ecd3963a8b034f9307cdd2bf4484972e5a6b096bf9ac/blis-1.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:66e6249564f1db22e8af1e0513ff64134041fa7e03c8dd73df74db3f4d8415a7", size = 1232787, upload-time = "2025-11-17T12:27:30.996Z" }, + { url = "https://files.pythonhosted.org/packages/d1/0e/82221910d16259ce3017c1442c468a3f206a4143a96fbba9f5b5b81d62e8/blis-1.3.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7260da065958b4e5475f62f44895ef9d673b0f47dcf61b672b22b7dae1a18505", size = 2844596, upload-time = "2025-11-17T12:27:32.601Z" }, + { url = "https://files.pythonhosted.org/packages/6c/93/ab547f1a5c23e20bca16fbcf04021c32aac3f969be737ea4980509a7ca90/blis-1.3.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e9327a6ca67de8ae76fe071e8584cc7f3b2e8bfadece4961d40f2826e1cda2df", size = 11377746, upload-time = "2025-11-17T12:27:35.342Z" }, + { url = "https://files.pythonhosted.org/packages/6e/a6/7733820aa62da32526287a63cd85c103b2b323b186c8ee43b7772ff7017c/blis-1.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c4ae70629cf302035d268858a10ca4eb6242a01b2dc8d64422f8e6dcb8a8ee74", size = 3041954, upload-time = "2025-11-17T12:27:37.479Z" }, + { url = "https://files.pythonhosted.org/packages/87/53/e39d67fd3296b649772780ca6aab081412838ecb54e0b0c6432d01626a50/blis-1.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:45866a9027d43b93e8b59980a23c5d7358b6536fc04606286e39fdcfce1101c2", size = 14251222, upload-time = "2025-11-17T12:27:39.705Z" }, + { url = "https://files.pythonhosted.org/packages/ea/44/b749f8777b020b420bceaaf60f66432fc30cc904ca5b69640ec9cbef11ed/blis-1.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:27f82b8633030f8d095d2b412dffa7eb6dbc8ee43813139909a20012e54422ea", size = 6171233, upload-time = "2025-11-17T12:27:41.921Z" }, + { url = "https://files.pythonhosted.org/packages/16/d1/429cf0cf693d4c7dc2efed969bd474e315aab636e4a95f66c4ed7264912d/blis-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2a1c74e100665f8e918ebdbae2794576adf1f691680b5cdb8b29578432f623ef", size = 6929663, upload-time = "2025-11-17T12:27:44.482Z" }, + { url = "https://files.pythonhosted.org/packages/11/69/363c8df8d98b3cc97be19aad6aabb2c9c53f372490d79316bdee92d476e7/blis-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3f6c595185176ce021316263e1a1d636a3425b6c48366c1fd712d08d0b71849a", size = 1230939, upload-time = "2025-11-17T12:27:46.19Z" }, + { url = "https://files.pythonhosted.org/packages/96/2a/fbf65d906d823d839076c5150a6f8eb5ecbc5f9135e0b6510609bda1e6b7/blis-1.3.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d734b19fba0be7944f272dfa7b443b37c61f9476d9ab054a9ac53555ceadd2e0", size = 2818835, upload-time = "2025-11-17T12:27:48.167Z" }, + { url = "https://files.pythonhosted.org/packages/d5/ad/58deaa3ad856dd3cc96493e40ffd2ed043d18d4d304f85a65cde1ccbf644/blis-1.3.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ef6d6e2b599a3a2788eb6d9b443533961265aa4ec49d574ed4bb846e548dcdb", size = 11366550, upload-time = "2025-11-17T12:27:49.958Z" }, + { url = "https://files.pythonhosted.org/packages/78/82/816a7adfe1f7acc8151f01ec86ef64467a3c833932d8f19f8e06613b8a4e/blis-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8c888438ae99c500422d50698e3028b65caa8ebb44e24204d87fda2df64058f7", size = 3023686, upload-time = "2025-11-17T12:27:52.062Z" }, + { url = "https://files.pythonhosted.org/packages/1e/e2/0e93b865f648b5519360846669a35f28ee8f4e1d93d054f6850d8afbabde/blis-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8177879fd3590b5eecdd377f9deafb5dc8af6d684f065bd01553302fb3fcf9a7", size = 14250939, upload-time = "2025-11-17T12:27:53.847Z" }, + { url = "https://files.pythonhosted.org/packages/20/07/fb43edc2ff0a6a367e4a94fc39eb3b85aa1e55e24cc857af2db145ce9f0d/blis-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:f20f7ad69aaffd1ce14fe77de557b6df9b61e0c9e582f75a843715d836b5c8af", size = 6192759, upload-time = "2025-11-17T12:27:56.176Z" }, + { url = "https://files.pythonhosted.org/packages/e6/f7/d26e62d9be3d70473a63e0a5d30bae49c2fe138bebac224adddcdef8a7ce/blis-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1e647341f958421a86b028a2efe16ce19c67dba2a05f79e8f7e80b1ff45328aa", size = 6928322, upload-time = "2025-11-17T12:27:57.965Z" }, + { url = "https://files.pythonhosted.org/packages/4a/78/750d12da388f714958eb2f2fd177652323bbe7ec528365c37129edd6eb84/blis-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d563160f874abb78a57e346f07312c5323f7ad67b6370052b6b17087ef234a8e", size = 1229635, upload-time = "2025-11-17T12:28:00.118Z" }, + { url = "https://files.pythonhosted.org/packages/e8/36/eac4199c5b200a5f3e93cad197da8d26d909f218eb444c4f552647c95240/blis-1.3.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:30b8a5b90cb6cb81d1ada9ae05aa55fb8e70d9a0ae9db40d2401bb9c1c8f14c4", size = 2815650, upload-time = "2025-11-17T12:28:02.544Z" }, + { url = "https://files.pythonhosted.org/packages/bf/51/472e7b36a6bedb5242a9757e7486f702c3619eff76e256735d0c8b1679c6/blis-1.3.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e9f5c53b277f6ac5b3ca30bc12ebab7ea16c8f8c36b14428abb56924213dc127", size = 11359008, upload-time = "2025-11-17T12:28:04.589Z" }, + { url = "https://files.pythonhosted.org/packages/84/da/d0dfb6d6e6321ae44df0321384c32c322bd07b15740d7422727a1a49fc5d/blis-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6297e7616c158b305c9a8a4e47ca5fc9b0785194dd96c903b1a1591a7ca21ddf", size = 3011959, upload-time = "2025-11-17T12:28:06.862Z" }, + { url = "https://files.pythonhosted.org/packages/20/c5/2b0b5e556fa0364ed671051ea078a6d6d7b979b1cfef78d64ad3ca5f0c7f/blis-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3f966ca74f89f8a33e568b9a1d71992fc9a0d29a423e047f0a212643e21b5458", size = 14232456, upload-time = "2025-11-17T12:28:08.779Z" }, + { url = "https://files.pythonhosted.org/packages/31/07/4cdc81a47bf862c0b06d91f1bc6782064e8b69ac9b5d4ff51d97e4ff03da/blis-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:7a0fc4b237a3a453bdc3c7ab48d91439fcd2d013b665c46948d9eaf9c3e45a97", size = 6192624, upload-time = "2025-11-17T12:28:14.197Z" }, + { url = "https://files.pythonhosted.org/packages/5f/8a/80f7c68fbc24a76fc9c18522c46d6d69329c320abb18e26a707a5d874083/blis-1.3.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c3e33cfbf22a418373766816343fcfcd0556012aa3ffdf562c29cddec448a415", size = 6934081, upload-time = "2025-11-17T12:28:16.436Z" }, + { url = "https://files.pythonhosted.org/packages/e5/52/d1aa3a51a7fc299b0c89dcaa971922714f50b1202769eebbdaadd1b5cff7/blis-1.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:6f165930e8d3a85c606d2003211497e28d528c7416fbfeafb6b15600963f7c9b", size = 1231486, upload-time = "2025-11-17T12:28:18.008Z" }, + { url = "https://files.pythonhosted.org/packages/99/4f/badc7bd7f74861b26c10123bba7b9d16f99cd9535ad0128780360713820f/blis-1.3.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:878d4d96d8f2c7a2459024f013f2e4e5f46d708b23437dae970d998e7bff14a0", size = 2814944, upload-time = "2025-11-17T12:28:19.654Z" }, + { url = "https://files.pythonhosted.org/packages/72/a6/f62a3bd814ca19ec7e29ac889fd354adea1217df3183e10217de51e2eb8b/blis-1.3.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f36c0ca84a05ee5d3dbaa38056c4423c1fc29948b17a7923dd2fed8967375d74", size = 11345825, upload-time = "2025-11-17T12:28:21.354Z" }, + { url = "https://files.pythonhosted.org/packages/d4/6c/671af79ee42bc4c968cae35c091ac89e8721c795bfa4639100670dc59139/blis-1.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e5a662c48cd4aad5dae1a950345df23957524f071315837a4c6feb7d3b288990", size = 3008771, upload-time = "2025-11-17T12:28:23.637Z" }, + { url = "https://files.pythonhosted.org/packages/be/92/7cd7f8490da7c98ee01557f2105885cc597217b0e7fd2eeb9e22cdd4ef23/blis-1.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:9de26fbd72bac900c273b76d46f0b45b77a28eace2e01f6ac6c2239531a413bb", size = 14219213, upload-time = "2025-11-17T12:28:26.143Z" }, + { url = "https://files.pythonhosted.org/packages/0a/de/acae8e9f9a1f4bb393d41c8265898b0f29772e38eac14e9f69d191e2c006/blis-1.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:9e5fdf4211b1972400f8ff6dafe87cb689c5d84f046b4a76b207c0bd2270faaf", size = 6324695, upload-time = "2025-11-17T12:28:28.401Z" }, +] + +[[package]] +name = "catalogue" +version = "2.0.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/38/b4/244d58127e1cdf04cf2dc7d9566f0d24ef01d5ce21811bab088ecc62b5ea/catalogue-2.0.10.tar.gz", hash = "sha256:4f56daa940913d3f09d589c191c74e5a6d51762b3a9e37dd53b7437afd6cda15", size = 19561, upload-time = "2023-09-25T06:29:24.962Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/96/d32b941a501ab566a16358d68b6eb4e4acc373fab3c3c4d7d9e649f7b4bb/catalogue-2.0.10-py3-none-any.whl", hash = "sha256:58c2de0020aa90f4a2da7dfad161bf7b3b054c86a5f09fcedc0b2b740c109a9f", size = 17325, upload-time = "2023-09-25T06:29:23.337Z" }, +] + +[[package]] +name = "certifi" +version = "2026.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/2d/a891ca51311197f6ad14a7ef42e2399f36cf2f9bd44752b3dc4eab60fdc5/certifi-2026.1.4.tar.gz", hash = "sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120", size = 154268, upload-time = "2026-01-04T02:42:41.825Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/ad/3cc14f097111b4de0040c83a525973216457bbeeb63739ef1ed275c1c021/certifi-2026.1.4-py3-none-any.whl", hash = "sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c", size = 152900, upload-time = "2026-01-04T02:42:40.15Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4d/3b/4ba3f93ac8d90410423fdd31d7541ada9bcee1df32fb90d26de41ed40e1d/black-25.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:759e7ec1e050a15f89b770cefbf91ebee8917aac5c20483bc2d80a6c3a04df32", size = 1629419, upload-time = "2025-01-29T05:37:06.642Z" }, - { url = "https://files.pythonhosted.org/packages/b4/02/0bde0485146a8a5e694daed47561785e8b77a0466ccc1f3e485d5ef2925e/black-25.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e519ecf93120f34243e6b0054db49c00a35f84f195d5bce7e9f5cfc578fc2da", size = 1461080, upload-time = "2025-01-29T05:37:09.321Z" }, - { url = "https://files.pythonhosted.org/packages/52/0e/abdf75183c830eaca7589144ff96d49bce73d7ec6ad12ef62185cc0f79a2/black-25.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:055e59b198df7ac0b7efca5ad7ff2516bca343276c466be72eb04a3bcc1f82d7", size = 1766886, upload-time = "2025-01-29T04:18:24.432Z" }, - { url = "https://files.pythonhosted.org/packages/dc/a6/97d8bb65b1d8a41f8a6736222ba0a334db7b7b77b8023ab4568288f23973/black-25.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:db8ea9917d6f8fc62abd90d944920d95e73c83a5ee3383493e35d271aca872e9", size = 1419404, upload-time = "2025-01-29T04:19:04.296Z" }, - { url = "https://files.pythonhosted.org/packages/7e/4f/87f596aca05c3ce5b94b8663dbfe242a12843caaa82dd3f85f1ffdc3f177/black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0", size = 1614372, upload-time = "2025-01-29T05:37:11.71Z" }, - { url = "https://files.pythonhosted.org/packages/e7/d0/2c34c36190b741c59c901e56ab7f6e54dad8df05a6272a9747ecef7c6036/black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299", size = 1442865, upload-time = "2025-01-29T05:37:14.309Z" }, - { url = "https://files.pythonhosted.org/packages/21/d4/7518c72262468430ead45cf22bd86c883a6448b9eb43672765d69a8f1248/black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096", size = 1749699, upload-time = "2025-01-29T04:18:17.688Z" }, - { url = "https://files.pythonhosted.org/packages/58/db/4f5beb989b547f79096e035c4981ceb36ac2b552d0ac5f2620e941501c99/black-25.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2", size = 1428028, upload-time = "2025-01-29T04:18:51.711Z" }, - { url = "https://files.pythonhosted.org/packages/83/71/3fe4741df7adf015ad8dfa082dd36c94ca86bb21f25608eb247b4afb15b2/black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b", size = 1650988, upload-time = "2025-01-29T05:37:16.707Z" }, - { url = "https://files.pythonhosted.org/packages/13/f3/89aac8a83d73937ccd39bbe8fc6ac8860c11cfa0af5b1c96d081facac844/black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc", size = 1453985, upload-time = "2025-01-29T05:37:18.273Z" }, - { url = "https://files.pythonhosted.org/packages/6f/22/b99efca33f1f3a1d2552c714b1e1b5ae92efac6c43e790ad539a163d1754/black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f", size = 1783816, upload-time = "2025-01-29T04:18:33.823Z" }, - { url = "https://files.pythonhosted.org/packages/18/7e/a27c3ad3822b6f2e0e00d63d58ff6299a99a5b3aee69fa77cd4b0076b261/black-25.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba", size = 1440860, upload-time = "2025-01-29T04:19:12.944Z" }, - { url = "https://files.pythonhosted.org/packages/98/87/0edf98916640efa5d0696e1abb0a8357b52e69e82322628f25bf14d263d1/black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f", size = 1650673, upload-time = "2025-01-29T05:37:20.574Z" }, - { url = "https://files.pythonhosted.org/packages/52/e5/f7bf17207cf87fa6e9b676576749c6b6ed0d70f179a3d812c997870291c3/black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3", size = 1453190, upload-time = "2025-01-29T05:37:22.106Z" }, - { url = "https://files.pythonhosted.org/packages/e3/ee/adda3d46d4a9120772fae6de454c8495603c37c4c3b9c60f25b1ab6401fe/black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171", size = 1782926, upload-time = "2025-01-29T04:18:58.564Z" }, - { url = "https://files.pythonhosted.org/packages/cc/64/94eb5f45dcb997d2082f097a3944cfc7fe87e071907f677e80788a2d7b7a/black-25.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18", size = 1442613, upload-time = "2025-01-29T04:19:27.63Z" }, - { url = "https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717", size = 207646, upload-time = "2025-01-29T04:15:38.082Z" }, + { url = "https://files.pythonhosted.org/packages/1f/b8/6d51fc1d52cbd52cd4ccedd5b5b2f0f6a11bbf6765c782298b0f3e808541/charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d", size = 209709, upload-time = "2025-10-14T04:40:11.385Z" }, + { url = "https://files.pythonhosted.org/packages/5c/af/1f9d7f7faafe2ddfb6f72a2e07a548a629c61ad510fe60f9630309908fef/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8", size = 148814, upload-time = "2025-10-14T04:40:13.135Z" }, + { url = "https://files.pythonhosted.org/packages/79/3d/f2e3ac2bbc056ca0c204298ea4e3d9db9b4afe437812638759db2c976b5f/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad", size = 144467, upload-time = "2025-10-14T04:40:14.728Z" }, + { url = "https://files.pythonhosted.org/packages/ec/85/1bf997003815e60d57de7bd972c57dc6950446a3e4ccac43bc3070721856/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8", size = 162280, upload-time = "2025-10-14T04:40:16.14Z" }, + { url = "https://files.pythonhosted.org/packages/3e/8e/6aa1952f56b192f54921c436b87f2aaf7c7a7c3d0d1a765547d64fd83c13/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d", size = 159454, upload-time = "2025-10-14T04:40:17.567Z" }, + { url = "https://files.pythonhosted.org/packages/36/3b/60cbd1f8e93aa25d1c669c649b7a655b0b5fb4c571858910ea9332678558/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313", size = 153609, upload-time = "2025-10-14T04:40:19.08Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/6a13396948b8fd3c4b4fd5bc74d045f5637d78c9675585e8e9fbe5636554/charset_normalizer-3.4.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e", size = 151849, upload-time = "2025-10-14T04:40:20.607Z" }, + { url = "https://files.pythonhosted.org/packages/b7/7a/59482e28b9981d105691e968c544cc0df3b7d6133152fb3dcdc8f135da7a/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93", size = 151586, upload-time = "2025-10-14T04:40:21.719Z" }, + { url = "https://files.pythonhosted.org/packages/92/59/f64ef6a1c4bdd2baf892b04cd78792ed8684fbc48d4c2afe467d96b4df57/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0", size = 145290, upload-time = "2025-10-14T04:40:23.069Z" }, + { url = "https://files.pythonhosted.org/packages/6b/63/3bf9f279ddfa641ffa1962b0db6a57a9c294361cc2f5fcac997049a00e9c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84", size = 163663, upload-time = "2025-10-14T04:40:24.17Z" }, + { url = "https://files.pythonhosted.org/packages/ed/09/c9e38fc8fa9e0849b172b581fd9803bdf6e694041127933934184e19f8c3/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e", size = 151964, upload-time = "2025-10-14T04:40:25.368Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d1/d28b747e512d0da79d8b6a1ac18b7ab2ecfd81b2944c4c710e166d8dd09c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db", size = 161064, upload-time = "2025-10-14T04:40:26.806Z" }, + { url = "https://files.pythonhosted.org/packages/bb/9a/31d62b611d901c3b9e5500c36aab0ff5eb442043fb3a1c254200d3d397d9/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6", size = 155015, upload-time = "2025-10-14T04:40:28.284Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f3/107e008fa2bff0c8b9319584174418e5e5285fef32f79d8ee6a430d0039c/charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f", size = 99792, upload-time = "2025-10-14T04:40:29.613Z" }, + { url = "https://files.pythonhosted.org/packages/eb/66/e396e8a408843337d7315bab30dbf106c38966f1819f123257f5520f8a96/charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d", size = 107198, upload-time = "2025-10-14T04:40:30.644Z" }, + { url = "https://files.pythonhosted.org/packages/b5/58/01b4f815bf0312704c267f2ccb6e5d42bcc7752340cd487bc9f8c3710597/charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69", size = 100262, upload-time = "2025-10-14T04:40:32.108Z" }, + { url = "https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", size = 206988, upload-time = "2025-10-14T04:40:33.79Z" }, + { url = "https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", size = 147324, upload-time = "2025-10-14T04:40:34.961Z" }, + { url = "https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", size = 142742, upload-time = "2025-10-14T04:40:36.105Z" }, + { url = "https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", size = 160863, upload-time = "2025-10-14T04:40:37.188Z" }, + { url = "https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", size = 157837, upload-time = "2025-10-14T04:40:38.435Z" }, + { url = "https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", size = 151550, upload-time = "2025-10-14T04:40:40.053Z" }, + { url = "https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", size = 149162, upload-time = "2025-10-14T04:40:41.163Z" }, + { url = "https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", size = 150019, upload-time = "2025-10-14T04:40:42.276Z" }, + { url = "https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", size = 143310, upload-time = "2025-10-14T04:40:43.439Z" }, + { url = "https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", size = 162022, upload-time = "2025-10-14T04:40:44.547Z" }, + { url = "https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", size = 149383, upload-time = "2025-10-14T04:40:46.018Z" }, + { url = "https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", size = 159098, upload-time = "2025-10-14T04:40:47.081Z" }, + { url = "https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", size = 152991, upload-time = "2025-10-14T04:40:48.246Z" }, + { url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", size = 99456, upload-time = "2025-10-14T04:40:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", size = 106978, upload-time = "2025-10-14T04:40:50.844Z" }, + { url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", size = 99969, upload-time = "2025-10-14T04:40:52.272Z" }, + { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425, upload-time = "2025-10-14T04:40:53.353Z" }, + { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162, upload-time = "2025-10-14T04:40:54.558Z" }, + { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558, upload-time = "2025-10-14T04:40:55.677Z" }, + { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497, upload-time = "2025-10-14T04:40:57.217Z" }, + { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240, upload-time = "2025-10-14T04:40:58.358Z" }, + { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471, upload-time = "2025-10-14T04:40:59.468Z" }, + { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864, upload-time = "2025-10-14T04:41:00.623Z" }, + { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647, upload-time = "2025-10-14T04:41:01.754Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110, upload-time = "2025-10-14T04:41:03.231Z" }, + { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839, upload-time = "2025-10-14T04:41:04.715Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667, upload-time = "2025-10-14T04:41:05.827Z" }, + { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535, upload-time = "2025-10-14T04:41:06.938Z" }, + { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816, upload-time = "2025-10-14T04:41:08.101Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload-time = "2025-10-14T04:41:09.23Z" }, + { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload-time = "2025-10-14T04:41:10.467Z" }, + { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload-time = "2025-10-14T04:41:11.915Z" }, + { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091, upload-time = "2025-10-14T04:41:13.346Z" }, + { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936, upload-time = "2025-10-14T04:41:14.461Z" }, + { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180, upload-time = "2025-10-14T04:41:15.588Z" }, + { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346, upload-time = "2025-10-14T04:41:16.738Z" }, + { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874, upload-time = "2025-10-14T04:41:17.923Z" }, + { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076, upload-time = "2025-10-14T04:41:19.106Z" }, + { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601, upload-time = "2025-10-14T04:41:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376, upload-time = "2025-10-14T04:41:21.398Z" }, + { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825, upload-time = "2025-10-14T04:41:22.583Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583, upload-time = "2025-10-14T04:41:23.754Z" }, + { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366, upload-time = "2025-10-14T04:41:25.27Z" }, + { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300, upload-time = "2025-10-14T04:41:26.725Z" }, + { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465, upload-time = "2025-10-14T04:41:28.322Z" }, + { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, + { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, + { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, + { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746, upload-time = "2025-10-14T04:41:33.773Z" }, + { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889, upload-time = "2025-10-14T04:41:34.897Z" }, + { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641, upload-time = "2025-10-14T04:41:36.116Z" }, + { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779, upload-time = "2025-10-14T04:41:37.229Z" }, + { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035, upload-time = "2025-10-14T04:41:38.368Z" }, + { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542, upload-time = "2025-10-14T04:41:39.862Z" }, + { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524, upload-time = "2025-10-14T04:41:41.319Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395, upload-time = "2025-10-14T04:41:42.539Z" }, + { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680, upload-time = "2025-10-14T04:41:43.661Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045, upload-time = "2025-10-14T04:41:44.821Z" }, + { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687, upload-time = "2025-10-14T04:41:46.442Z" }, + { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014, upload-time = "2025-10-14T04:41:47.631Z" }, + { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044, upload-time = "2025-10-14T04:41:48.81Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940, upload-time = "2025-10-14T04:41:49.946Z" }, + { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104, upload-time = "2025-10-14T04:41:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743, upload-time = "2025-10-14T04:41:52.122Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] [[package]] name = "click" -version = "8.2.1" +version = "8.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342, upload-time = "2025-05-20T23:19:49.832Z" } +sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a", size = 295065, upload-time = "2025-11-15T20:45:42.706Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b", size = 102215, upload-time = "2025-05-20T23:19:47.796Z" }, + { url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6", size = 108274, upload-time = "2025-11-15T20:45:41.139Z" }, +] + +[[package]] +name = "cloudpathlib" +version = "0.23.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f4/18/2ac35d6b3015a0c74e923d94fc69baf8307f7c3233de015d69f99e17afa8/cloudpathlib-0.23.0.tar.gz", hash = "sha256:eb38a34c6b8a048ecfd2b2f60917f7cbad4a105b7c979196450c2f541f4d6b4b", size = 53126, upload-time = "2025-10-07T22:47:56.278Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/8a/c4bb04426d608be4a3171efa2e233d2c59a5c8937850c10d098e126df18e/cloudpathlib-0.23.0-py3-none-any.whl", hash = "sha256:8520b3b01468fee77de37ab5d50b1b524ea6b4a8731c35d1b7407ac0cd716002", size = 62755, upload-time = "2025-10-07T22:47:54.905Z" }, ] [[package]] @@ -61,6 +259,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] +[[package]] +name = "confection" +version = "0.1.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "srsly" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/51/d3/57c6631159a1b48d273b40865c315cf51f89df7a9d1101094ef12e3a37c2/confection-0.1.5.tar.gz", hash = "sha256:8e72dd3ca6bd4f48913cd220f10b8275978e740411654b6e8ca6d7008c590f0e", size = 38924, upload-time = "2024-05-31T16:17:01.559Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/00/3106b1854b45bd0474ced037dfe6b73b90fe68a68968cef47c23de3d43d2/confection-0.1.5-py3-none-any.whl", hash = "sha256:e29d3c3f8eac06b3f77eb9dfb4bf2fc6bcc9622a98ca00a698e3d019c6430b14", size = 35451, upload-time = "2024-05-31T16:16:59.075Z" }, +] + [[package]] name = "contourpy" version = "1.3.2" @@ -69,7 +280,7 @@ resolution-markers = [ "python_full_version < '3.11'", ] dependencies = [ - { name = "numpy", marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/66/54/eb9bfc647b19f2009dd5c7f5ec51c4e6ca831725f1aea7a993034f483147/contourpy-1.3.2.tar.gz", hash = "sha256:b6945942715a034c671b7fc54f9588126b0b8bf23db2696e3ca8328f3ff0ab54", size = 13466130, upload-time = "2025-04-15T17:47:53.79Z" } wheels = [ @@ -136,10 +347,11 @@ name = "contourpy" version = "1.3.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.11'", + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", ] dependencies = [ - { name = "numpy", marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" } wheels = [ @@ -218,87 +430,115 @@ wheels = [ [[package]] name = "coverage" -version = "7.10.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/14/70/025b179c993f019105b79575ac6edb5e084fb0f0e63f15cdebef4e454fb5/coverage-7.10.6.tar.gz", hash = "sha256:f644a3ae5933a552a29dbb9aa2f90c677a875f80ebea028e5a52a4f429044b90", size = 823736, upload-time = "2025-08-29T15:35:16.668Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a8/1d/2e64b43d978b5bd184e0756a41415597dfef30fcbd90b747474bd749d45f/coverage-7.10.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:70e7bfbd57126b5554aa482691145f798d7df77489a177a6bef80de78860a356", size = 217025, upload-time = "2025-08-29T15:32:57.169Z" }, - { url = "https://files.pythonhosted.org/packages/23/62/b1e0f513417c02cc10ef735c3ee5186df55f190f70498b3702d516aad06f/coverage-7.10.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e41be6f0f19da64af13403e52f2dec38bbc2937af54df8ecef10850ff8d35301", size = 217419, upload-time = "2025-08-29T15:32:59.908Z" }, - { url = "https://files.pythonhosted.org/packages/e7/16/b800640b7a43e7c538429e4d7223e0a94fd72453a1a048f70bf766f12e96/coverage-7.10.6-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c61fc91ab80b23f5fddbee342d19662f3d3328173229caded831aa0bd7595460", size = 244180, upload-time = "2025-08-29T15:33:01.608Z" }, - { url = "https://files.pythonhosted.org/packages/fb/6f/5e03631c3305cad187eaf76af0b559fff88af9a0b0c180d006fb02413d7a/coverage-7.10.6-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:10356fdd33a7cc06e8051413140bbdc6f972137508a3572e3f59f805cd2832fd", size = 245992, upload-time = "2025-08-29T15:33:03.239Z" }, - { url = "https://files.pythonhosted.org/packages/eb/a1/f30ea0fb400b080730125b490771ec62b3375789f90af0bb68bfb8a921d7/coverage-7.10.6-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:80b1695cf7c5ebe7b44bf2521221b9bb8cdf69b1f24231149a7e3eb1ae5fa2fb", size = 247851, upload-time = "2025-08-29T15:33:04.603Z" }, - { url = "https://files.pythonhosted.org/packages/02/8e/cfa8fee8e8ef9a6bb76c7bef039f3302f44e615d2194161a21d3d83ac2e9/coverage-7.10.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2e4c33e6378b9d52d3454bd08847a8651f4ed23ddbb4a0520227bd346382bbc6", size = 245891, upload-time = "2025-08-29T15:33:06.176Z" }, - { url = "https://files.pythonhosted.org/packages/93/a9/51be09b75c55c4f6c16d8d73a6a1d46ad764acca0eab48fa2ffaef5958fe/coverage-7.10.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c8a3ec16e34ef980a46f60dc6ad86ec60f763c3f2fa0db6d261e6e754f72e945", size = 243909, upload-time = "2025-08-29T15:33:07.74Z" }, - { url = "https://files.pythonhosted.org/packages/e9/a6/ba188b376529ce36483b2d585ca7bdac64aacbe5aa10da5978029a9c94db/coverage-7.10.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7d79dabc0a56f5af990cc6da9ad1e40766e82773c075f09cc571e2076fef882e", size = 244786, upload-time = "2025-08-29T15:33:08.965Z" }, - { url = "https://files.pythonhosted.org/packages/d0/4c/37ed872374a21813e0d3215256180c9a382c3f5ced6f2e5da0102fc2fd3e/coverage-7.10.6-cp310-cp310-win32.whl", hash = "sha256:86b9b59f2b16e981906e9d6383eb6446d5b46c278460ae2c36487667717eccf1", size = 219521, upload-time = "2025-08-29T15:33:10.599Z" }, - { url = "https://files.pythonhosted.org/packages/8e/36/9311352fdc551dec5b973b61f4e453227ce482985a9368305880af4f85dd/coverage-7.10.6-cp310-cp310-win_amd64.whl", hash = "sha256:e132b9152749bd33534e5bd8565c7576f135f157b4029b975e15ee184325f528", size = 220417, upload-time = "2025-08-29T15:33:11.907Z" }, - { url = "https://files.pythonhosted.org/packages/d4/16/2bea27e212c4980753d6d563a0803c150edeaaddb0771a50d2afc410a261/coverage-7.10.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c706db3cabb7ceef779de68270150665e710b46d56372455cd741184f3868d8f", size = 217129, upload-time = "2025-08-29T15:33:13.575Z" }, - { url = "https://files.pythonhosted.org/packages/2a/51/e7159e068831ab37e31aac0969d47b8c5ee25b7d307b51e310ec34869315/coverage-7.10.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e0c38dc289e0508ef68ec95834cb5d2e96fdbe792eaccaa1bccac3966bbadcc", size = 217532, upload-time = "2025-08-29T15:33:14.872Z" }, - { url = "https://files.pythonhosted.org/packages/e7/c0/246ccbea53d6099325d25cd208df94ea435cd55f0db38099dd721efc7a1f/coverage-7.10.6-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:752a3005a1ded28f2f3a6e8787e24f28d6abe176ca64677bcd8d53d6fe2ec08a", size = 247931, upload-time = "2025-08-29T15:33:16.142Z" }, - { url = "https://files.pythonhosted.org/packages/7d/fb/7435ef8ab9b2594a6e3f58505cc30e98ae8b33265d844007737946c59389/coverage-7.10.6-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:689920ecfd60f992cafca4f5477d55720466ad2c7fa29bb56ac8d44a1ac2b47a", size = 249864, upload-time = "2025-08-29T15:33:17.434Z" }, - { url = "https://files.pythonhosted.org/packages/51/f8/d9d64e8da7bcddb094d511154824038833c81e3a039020a9d6539bf303e9/coverage-7.10.6-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec98435796d2624d6905820a42f82149ee9fc4f2d45c2c5bc5a44481cc50db62", size = 251969, upload-time = "2025-08-29T15:33:18.822Z" }, - { url = "https://files.pythonhosted.org/packages/43/28/c43ba0ef19f446d6463c751315140d8f2a521e04c3e79e5c5fe211bfa430/coverage-7.10.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b37201ce4a458c7a758ecc4efa92fa8ed783c66e0fa3c42ae19fc454a0792153", size = 249659, upload-time = "2025-08-29T15:33:20.407Z" }, - { url = "https://files.pythonhosted.org/packages/79/3e/53635bd0b72beaacf265784508a0b386defc9ab7fad99ff95f79ce9db555/coverage-7.10.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:2904271c80898663c810a6b067920a61dd8d38341244a3605bd31ab55250dad5", size = 247714, upload-time = "2025-08-29T15:33:21.751Z" }, - { url = "https://files.pythonhosted.org/packages/4c/55/0964aa87126624e8c159e32b0bc4e84edef78c89a1a4b924d28dd8265625/coverage-7.10.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5aea98383463d6e1fa4e95416d8de66f2d0cb588774ee20ae1b28df826bcb619", size = 248351, upload-time = "2025-08-29T15:33:23.105Z" }, - { url = "https://files.pythonhosted.org/packages/eb/ab/6cfa9dc518c6c8e14a691c54e53a9433ba67336c760607e299bfcf520cb1/coverage-7.10.6-cp311-cp311-win32.whl", hash = "sha256:e3fb1fa01d3598002777dd259c0c2e6d9d5e10e7222976fc8e03992f972a2cba", size = 219562, upload-time = "2025-08-29T15:33:24.717Z" }, - { url = "https://files.pythonhosted.org/packages/5b/18/99b25346690cbc55922e7cfef06d755d4abee803ef335baff0014268eff4/coverage-7.10.6-cp311-cp311-win_amd64.whl", hash = "sha256:f35ed9d945bece26553d5b4c8630453169672bea0050a564456eb88bdffd927e", size = 220453, upload-time = "2025-08-29T15:33:26.482Z" }, - { url = "https://files.pythonhosted.org/packages/d8/ed/81d86648a07ccb124a5cf1f1a7788712b8d7216b593562683cd5c9b0d2c1/coverage-7.10.6-cp311-cp311-win_arm64.whl", hash = "sha256:99e1a305c7765631d74b98bf7dbf54eeea931f975e80f115437d23848ee8c27c", size = 219127, upload-time = "2025-08-29T15:33:27.777Z" }, - { url = "https://files.pythonhosted.org/packages/26/06/263f3305c97ad78aab066d116b52250dd316e74fcc20c197b61e07eb391a/coverage-7.10.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5b2dd6059938063a2c9fee1af729d4f2af28fd1a545e9b7652861f0d752ebcea", size = 217324, upload-time = "2025-08-29T15:33:29.06Z" }, - { url = "https://files.pythonhosted.org/packages/e9/60/1e1ded9a4fe80d843d7d53b3e395c1db3ff32d6c301e501f393b2e6c1c1f/coverage-7.10.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:388d80e56191bf846c485c14ae2bc8898aa3124d9d35903fef7d907780477634", size = 217560, upload-time = "2025-08-29T15:33:30.748Z" }, - { url = "https://files.pythonhosted.org/packages/b8/25/52136173c14e26dfed8b106ed725811bb53c30b896d04d28d74cb64318b3/coverage-7.10.6-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:90cb5b1a4670662719591aa92d0095bb41714970c0b065b02a2610172dbf0af6", size = 249053, upload-time = "2025-08-29T15:33:32.041Z" }, - { url = "https://files.pythonhosted.org/packages/cb/1d/ae25a7dc58fcce8b172d42ffe5313fc267afe61c97fa872b80ee72d9515a/coverage-7.10.6-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:961834e2f2b863a0e14260a9a273aff07ff7818ab6e66d2addf5628590c628f9", size = 251802, upload-time = "2025-08-29T15:33:33.625Z" }, - { url = "https://files.pythonhosted.org/packages/f5/7a/1f561d47743710fe996957ed7c124b421320f150f1d38523d8d9102d3e2a/coverage-7.10.6-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf9a19f5012dab774628491659646335b1928cfc931bf8d97b0d5918dd58033c", size = 252935, upload-time = "2025-08-29T15:33:34.909Z" }, - { url = "https://files.pythonhosted.org/packages/6c/ad/8b97cd5d28aecdfde792dcbf646bac141167a5cacae2cd775998b45fabb5/coverage-7.10.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:99c4283e2a0e147b9c9cc6bc9c96124de9419d6044837e9799763a0e29a7321a", size = 250855, upload-time = "2025-08-29T15:33:36.922Z" }, - { url = "https://files.pythonhosted.org/packages/33/6a/95c32b558d9a61858ff9d79580d3877df3eb5bc9eed0941b1f187c89e143/coverage-7.10.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:282b1b20f45df57cc508c1e033403f02283adfb67d4c9c35a90281d81e5c52c5", size = 248974, upload-time = "2025-08-29T15:33:38.175Z" }, - { url = "https://files.pythonhosted.org/packages/0d/9c/8ce95dee640a38e760d5b747c10913e7a06554704d60b41e73fdea6a1ffd/coverage-7.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8cdbe264f11afd69841bd8c0d83ca10b5b32853263ee62e6ac6a0ab63895f972", size = 250409, upload-time = "2025-08-29T15:33:39.447Z" }, - { url = "https://files.pythonhosted.org/packages/04/12/7a55b0bdde78a98e2eb2356771fd2dcddb96579e8342bb52aa5bc52e96f0/coverage-7.10.6-cp312-cp312-win32.whl", hash = "sha256:a517feaf3a0a3eca1ee985d8373135cfdedfbba3882a5eab4362bda7c7cf518d", size = 219724, upload-time = "2025-08-29T15:33:41.172Z" }, - { url = "https://files.pythonhosted.org/packages/36/4a/32b185b8b8e327802c9efce3d3108d2fe2d9d31f153a0f7ecfd59c773705/coverage-7.10.6-cp312-cp312-win_amd64.whl", hash = "sha256:856986eadf41f52b214176d894a7de05331117f6035a28ac0016c0f63d887629", size = 220536, upload-time = "2025-08-29T15:33:42.524Z" }, - { url = "https://files.pythonhosted.org/packages/08/3a/d5d8dc703e4998038c3099eaf77adddb00536a3cec08c8dcd556a36a3eb4/coverage-7.10.6-cp312-cp312-win_arm64.whl", hash = "sha256:acf36b8268785aad739443fa2780c16260ee3fa09d12b3a70f772ef100939d80", size = 219171, upload-time = "2025-08-29T15:33:43.974Z" }, - { url = "https://files.pythonhosted.org/packages/bd/e7/917e5953ea29a28c1057729c1d5af9084ab6d9c66217523fd0e10f14d8f6/coverage-7.10.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ffea0575345e9ee0144dfe5701aa17f3ba546f8c3bb48db62ae101afb740e7d6", size = 217351, upload-time = "2025-08-29T15:33:45.438Z" }, - { url = "https://files.pythonhosted.org/packages/eb/86/2e161b93a4f11d0ea93f9bebb6a53f113d5d6e416d7561ca41bb0a29996b/coverage-7.10.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:95d91d7317cde40a1c249d6b7382750b7e6d86fad9d8eaf4fa3f8f44cf171e80", size = 217600, upload-time = "2025-08-29T15:33:47.269Z" }, - { url = "https://files.pythonhosted.org/packages/0e/66/d03348fdd8df262b3a7fb4ee5727e6e4936e39e2f3a842e803196946f200/coverage-7.10.6-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3e23dd5408fe71a356b41baa82892772a4cefcf758f2ca3383d2aa39e1b7a003", size = 248600, upload-time = "2025-08-29T15:33:48.953Z" }, - { url = "https://files.pythonhosted.org/packages/73/dd/508420fb47d09d904d962f123221bc249f64b5e56aa93d5f5f7603be475f/coverage-7.10.6-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0f3f56e4cb573755e96a16501a98bf211f100463d70275759e73f3cbc00d4f27", size = 251206, upload-time = "2025-08-29T15:33:50.697Z" }, - { url = "https://files.pythonhosted.org/packages/e9/1f/9020135734184f439da85c70ea78194c2730e56c2d18aee6e8ff1719d50d/coverage-7.10.6-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:db4a1d897bbbe7339946ffa2fe60c10cc81c43fab8b062d3fcb84188688174a4", size = 252478, upload-time = "2025-08-29T15:33:52.303Z" }, - { url = "https://files.pythonhosted.org/packages/a4/a4/3d228f3942bb5a2051fde28c136eea23a761177dc4ff4ef54533164ce255/coverage-7.10.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d8fd7879082953c156d5b13c74aa6cca37f6a6f4747b39538504c3f9c63d043d", size = 250637, upload-time = "2025-08-29T15:33:53.67Z" }, - { url = "https://files.pythonhosted.org/packages/36/e3/293dce8cdb9a83de971637afc59b7190faad60603b40e32635cbd15fbf61/coverage-7.10.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:28395ca3f71cd103b8c116333fa9db867f3a3e1ad6a084aa3725ae002b6583bc", size = 248529, upload-time = "2025-08-29T15:33:55.022Z" }, - { url = "https://files.pythonhosted.org/packages/90/26/64eecfa214e80dd1d101e420cab2901827de0e49631d666543d0e53cf597/coverage-7.10.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:61c950fc33d29c91b9e18540e1aed7d9f6787cc870a3e4032493bbbe641d12fc", size = 250143, upload-time = "2025-08-29T15:33:56.386Z" }, - { url = "https://files.pythonhosted.org/packages/3e/70/bd80588338f65ea5b0d97e424b820fb4068b9cfb9597fbd91963086e004b/coverage-7.10.6-cp313-cp313-win32.whl", hash = "sha256:160c00a5e6b6bdf4e5984b0ef21fc860bc94416c41b7df4d63f536d17c38902e", size = 219770, upload-time = "2025-08-29T15:33:58.063Z" }, - { url = "https://files.pythonhosted.org/packages/a7/14/0b831122305abcc1060c008f6c97bbdc0a913ab47d65070a01dc50293c2b/coverage-7.10.6-cp313-cp313-win_amd64.whl", hash = "sha256:628055297f3e2aa181464c3808402887643405573eb3d9de060d81531fa79d32", size = 220566, upload-time = "2025-08-29T15:33:59.766Z" }, - { url = "https://files.pythonhosted.org/packages/83/c6/81a83778c1f83f1a4a168ed6673eeedc205afb562d8500175292ca64b94e/coverage-7.10.6-cp313-cp313-win_arm64.whl", hash = "sha256:df4ec1f8540b0bcbe26ca7dd0f541847cc8a108b35596f9f91f59f0c060bfdd2", size = 219195, upload-time = "2025-08-29T15:34:01.191Z" }, - { url = "https://files.pythonhosted.org/packages/d7/1c/ccccf4bf116f9517275fa85047495515add43e41dfe8e0bef6e333c6b344/coverage-7.10.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:c9a8b7a34a4de3ed987f636f71881cd3b8339f61118b1aa311fbda12741bff0b", size = 218059, upload-time = "2025-08-29T15:34:02.91Z" }, - { url = "https://files.pythonhosted.org/packages/92/97/8a3ceff833d27c7492af4f39d5da6761e9ff624831db9e9f25b3886ddbca/coverage-7.10.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8dd5af36092430c2b075cee966719898f2ae87b636cefb85a653f1d0ba5d5393", size = 218287, upload-time = "2025-08-29T15:34:05.106Z" }, - { url = "https://files.pythonhosted.org/packages/92/d8/50b4a32580cf41ff0423777a2791aaf3269ab60c840b62009aec12d3970d/coverage-7.10.6-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:b0353b0f0850d49ada66fdd7d0c7cdb0f86b900bb9e367024fd14a60cecc1e27", size = 259625, upload-time = "2025-08-29T15:34:06.575Z" }, - { url = "https://files.pythonhosted.org/packages/7e/7e/6a7df5a6fb440a0179d94a348eb6616ed4745e7df26bf2a02bc4db72c421/coverage-7.10.6-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d6b9ae13d5d3e8aeca9ca94198aa7b3ebbc5acfada557d724f2a1f03d2c0b0df", size = 261801, upload-time = "2025-08-29T15:34:08.006Z" }, - { url = "https://files.pythonhosted.org/packages/3a/4c/a270a414f4ed5d196b9d3d67922968e768cd971d1b251e1b4f75e9362f75/coverage-7.10.6-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:675824a363cc05781b1527b39dc2587b8984965834a748177ee3c37b64ffeafb", size = 264027, upload-time = "2025-08-29T15:34:09.806Z" }, - { url = "https://files.pythonhosted.org/packages/9c/8b/3210d663d594926c12f373c5370bf1e7c5c3a427519a8afa65b561b9a55c/coverage-7.10.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:692d70ea725f471a547c305f0d0fc6a73480c62fb0da726370c088ab21aed282", size = 261576, upload-time = "2025-08-29T15:34:11.585Z" }, - { url = "https://files.pythonhosted.org/packages/72/d0/e1961eff67e9e1dba3fc5eb7a4caf726b35a5b03776892da8d79ec895775/coverage-7.10.6-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:851430a9a361c7a8484a36126d1d0ff8d529d97385eacc8dfdc9bfc8c2d2cbe4", size = 259341, upload-time = "2025-08-29T15:34:13.159Z" }, - { url = "https://files.pythonhosted.org/packages/3a/06/d6478d152cd189b33eac691cba27a40704990ba95de49771285f34a5861e/coverage-7.10.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d9369a23186d189b2fc95cc08b8160ba242057e887d766864f7adf3c46b2df21", size = 260468, upload-time = "2025-08-29T15:34:14.571Z" }, - { url = "https://files.pythonhosted.org/packages/ed/73/737440247c914a332f0b47f7598535b29965bf305e19bbc22d4c39615d2b/coverage-7.10.6-cp313-cp313t-win32.whl", hash = "sha256:92be86fcb125e9bda0da7806afd29a3fd33fdf58fba5d60318399adf40bf37d0", size = 220429, upload-time = "2025-08-29T15:34:16.394Z" }, - { url = "https://files.pythonhosted.org/packages/bd/76/b92d3214740f2357ef4a27c75a526eb6c28f79c402e9f20a922c295c05e2/coverage-7.10.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6b3039e2ca459a70c79523d39347d83b73f2f06af5624905eba7ec34d64d80b5", size = 221493, upload-time = "2025-08-29T15:34:17.835Z" }, - { url = "https://files.pythonhosted.org/packages/fc/8e/6dcb29c599c8a1f654ec6cb68d76644fe635513af16e932d2d4ad1e5ac6e/coverage-7.10.6-cp313-cp313t-win_arm64.whl", hash = "sha256:3fb99d0786fe17b228eab663d16bee2288e8724d26a199c29325aac4b0319b9b", size = 219757, upload-time = "2025-08-29T15:34:19.248Z" }, - { url = "https://files.pythonhosted.org/packages/d3/aa/76cf0b5ec00619ef208da4689281d48b57f2c7fde883d14bf9441b74d59f/coverage-7.10.6-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:6008a021907be8c4c02f37cdc3ffb258493bdebfeaf9a839f9e71dfdc47b018e", size = 217331, upload-time = "2025-08-29T15:34:20.846Z" }, - { url = "https://files.pythonhosted.org/packages/65/91/8e41b8c7c505d398d7730206f3cbb4a875a35ca1041efc518051bfce0f6b/coverage-7.10.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:5e75e37f23eb144e78940b40395b42f2321951206a4f50e23cfd6e8a198d3ceb", size = 217607, upload-time = "2025-08-29T15:34:22.433Z" }, - { url = "https://files.pythonhosted.org/packages/87/7f/f718e732a423d442e6616580a951b8d1ec3575ea48bcd0e2228386805e79/coverage-7.10.6-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:0f7cb359a448e043c576f0da00aa8bfd796a01b06aa610ca453d4dde09cc1034", size = 248663, upload-time = "2025-08-29T15:34:24.425Z" }, - { url = "https://files.pythonhosted.org/packages/e6/52/c1106120e6d801ac03e12b5285e971e758e925b6f82ee9b86db3aa10045d/coverage-7.10.6-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c68018e4fc4e14b5668f1353b41ccf4bc83ba355f0e1b3836861c6f042d89ac1", size = 251197, upload-time = "2025-08-29T15:34:25.906Z" }, - { url = "https://files.pythonhosted.org/packages/3d/ec/3a8645b1bb40e36acde9c0609f08942852a4af91a937fe2c129a38f2d3f5/coverage-7.10.6-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cd4b2b0707fc55afa160cd5fc33b27ccbf75ca11d81f4ec9863d5793fc6df56a", size = 252551, upload-time = "2025-08-29T15:34:27.337Z" }, - { url = "https://files.pythonhosted.org/packages/a1/70/09ecb68eeb1155b28a1d16525fd3a9b65fbe75337311a99830df935d62b6/coverage-7.10.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4cec13817a651f8804a86e4f79d815b3b28472c910e099e4d5a0e8a3b6a1d4cb", size = 250553, upload-time = "2025-08-29T15:34:29.065Z" }, - { url = "https://files.pythonhosted.org/packages/c6/80/47df374b893fa812e953b5bc93dcb1427a7b3d7a1a7d2db33043d17f74b9/coverage-7.10.6-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:f2a6a8e06bbda06f78739f40bfb56c45d14eb8249d0f0ea6d4b3d48e1f7c695d", size = 248486, upload-time = "2025-08-29T15:34:30.897Z" }, - { url = "https://files.pythonhosted.org/packages/4a/65/9f98640979ecee1b0d1a7164b589de720ddf8100d1747d9bbdb84be0c0fb/coverage-7.10.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:081b98395ced0d9bcf60ada7661a0b75f36b78b9d7e39ea0790bb4ed8da14747", size = 249981, upload-time = "2025-08-29T15:34:32.365Z" }, - { url = "https://files.pythonhosted.org/packages/1f/55/eeb6603371e6629037f47bd25bef300387257ed53a3c5fdb159b7ac8c651/coverage-7.10.6-cp314-cp314-win32.whl", hash = "sha256:6937347c5d7d069ee776b2bf4e1212f912a9f1f141a429c475e6089462fcecc5", size = 220054, upload-time = "2025-08-29T15:34:34.124Z" }, - { url = "https://files.pythonhosted.org/packages/15/d1/a0912b7611bc35412e919a2cd59ae98e7ea3b475e562668040a43fb27897/coverage-7.10.6-cp314-cp314-win_amd64.whl", hash = "sha256:adec1d980fa07e60b6ef865f9e5410ba760e4e1d26f60f7e5772c73b9a5b0713", size = 220851, upload-time = "2025-08-29T15:34:35.651Z" }, - { url = "https://files.pythonhosted.org/packages/ef/2d/11880bb8ef80a45338e0b3e0725e4c2d73ffbb4822c29d987078224fd6a5/coverage-7.10.6-cp314-cp314-win_arm64.whl", hash = "sha256:a80f7aef9535442bdcf562e5a0d5a5538ce8abe6bb209cfbf170c462ac2c2a32", size = 219429, upload-time = "2025-08-29T15:34:37.16Z" }, - { url = "https://files.pythonhosted.org/packages/83/c0/1f00caad775c03a700146f55536ecd097a881ff08d310a58b353a1421be0/coverage-7.10.6-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:0de434f4fbbe5af4fa7989521c655c8c779afb61c53ab561b64dcee6149e4c65", size = 218080, upload-time = "2025-08-29T15:34:38.919Z" }, - { url = "https://files.pythonhosted.org/packages/a9/c4/b1c5d2bd7cc412cbeb035e257fd06ed4e3e139ac871d16a07434e145d18d/coverage-7.10.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6e31b8155150c57e5ac43ccd289d079eb3f825187d7c66e755a055d2c85794c6", size = 218293, upload-time = "2025-08-29T15:34:40.425Z" }, - { url = "https://files.pythonhosted.org/packages/3f/07/4468d37c94724bf6ec354e4ec2f205fda194343e3e85fd2e59cec57e6a54/coverage-7.10.6-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:98cede73eb83c31e2118ae8d379c12e3e42736903a8afcca92a7218e1f2903b0", size = 259800, upload-time = "2025-08-29T15:34:41.996Z" }, - { url = "https://files.pythonhosted.org/packages/82/d8/f8fb351be5fee31690cd8da768fd62f1cfab33c31d9f7baba6cd8960f6b8/coverage-7.10.6-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f863c08f4ff6b64fa8045b1e3da480f5374779ef187f07b82e0538c68cb4ff8e", size = 261965, upload-time = "2025-08-29T15:34:43.61Z" }, - { url = "https://files.pythonhosted.org/packages/e8/70/65d4d7cfc75c5c6eb2fed3ee5cdf420fd8ae09c4808723a89a81d5b1b9c3/coverage-7.10.6-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2b38261034fda87be356f2c3f42221fdb4171c3ce7658066ae449241485390d5", size = 264220, upload-time = "2025-08-29T15:34:45.387Z" }, - { url = "https://files.pythonhosted.org/packages/98/3c/069df106d19024324cde10e4ec379fe2fb978017d25e97ebee23002fbadf/coverage-7.10.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0e93b1476b79eae849dc3872faeb0bf7948fd9ea34869590bc16a2a00b9c82a7", size = 261660, upload-time = "2025-08-29T15:34:47.288Z" }, - { url = "https://files.pythonhosted.org/packages/fc/8a/2974d53904080c5dc91af798b3a54a4ccb99a45595cc0dcec6eb9616a57d/coverage-7.10.6-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:ff8a991f70f4c0cf53088abf1e3886edcc87d53004c7bb94e78650b4d3dac3b5", size = 259417, upload-time = "2025-08-29T15:34:48.779Z" }, - { url = "https://files.pythonhosted.org/packages/30/38/9616a6b49c686394b318974d7f6e08f38b8af2270ce7488e879888d1e5db/coverage-7.10.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ac765b026c9f33044419cbba1da913cfb82cca1b60598ac1c7a5ed6aac4621a0", size = 260567, upload-time = "2025-08-29T15:34:50.718Z" }, - { url = "https://files.pythonhosted.org/packages/76/16/3ed2d6312b371a8cf804abf4e14895b70e4c3491c6e53536d63fd0958a8d/coverage-7.10.6-cp314-cp314t-win32.whl", hash = "sha256:441c357d55f4936875636ef2cfb3bee36e466dcf50df9afbd398ce79dba1ebb7", size = 220831, upload-time = "2025-08-29T15:34:52.653Z" }, - { url = "https://files.pythonhosted.org/packages/d5/e5/d38d0cb830abede2adb8b147770d2a3d0e7fecc7228245b9b1ae6c24930a/coverage-7.10.6-cp314-cp314t-win_amd64.whl", hash = "sha256:073711de3181b2e204e4870ac83a7c4853115b42e9cd4d145f2231e12d670930", size = 221950, upload-time = "2025-08-29T15:34:54.212Z" }, - { url = "https://files.pythonhosted.org/packages/f4/51/e48e550f6279349895b0ffcd6d2a690e3131ba3a7f4eafccc141966d4dea/coverage-7.10.6-cp314-cp314t-win_arm64.whl", hash = "sha256:137921f2bac5559334ba66122b753db6dc5d1cf01eb7b64eb412bb0d064ef35b", size = 219969, upload-time = "2025-08-29T15:34:55.83Z" }, - { url = "https://files.pythonhosted.org/packages/44/0c/50db5379b615854b5cf89146f8f5bd1d5a9693d7f3a987e269693521c404/coverage-7.10.6-py3-none-any.whl", hash = "sha256:92c4ecf6bf11b2e85fd4d8204814dc26e6a19f0c9d938c207c5cb0eadfcabbe3", size = 208986, upload-time = "2025-08-29T15:35:14.506Z" }, +version = "7.13.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/24/56/95b7e30fa389756cb56630faa728da46a27b8c6eb46f9d557c68fff12b65/coverage-7.13.4.tar.gz", hash = "sha256:e5c8f6ed1e61a8b2dcdf31eb0b9bbf0130750ca79c1c49eb898e2ad86f5ccc91", size = 827239, upload-time = "2026-02-09T12:59:03.86Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/d4/7827d9ffa34d5d4d752eec907022aa417120936282fc488306f5da08c292/coverage-7.13.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0fc31c787a84f8cd6027eba44010517020e0d18487064cd3d8968941856d1415", size = 219152, upload-time = "2026-02-09T12:56:11.974Z" }, + { url = "https://files.pythonhosted.org/packages/35/b0/d69df26607c64043292644dbb9dc54b0856fabaa2cbb1eeee3331cc9e280/coverage-7.13.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a32ebc02a1805adf637fc8dec324b5cdacd2e493515424f70ee33799573d661b", size = 219667, upload-time = "2026-02-09T12:56:13.33Z" }, + { url = "https://files.pythonhosted.org/packages/82/a4/c1523f7c9e47b2271dbf8c2a097e7a1f89ef0d66f5840bb59b7e8814157b/coverage-7.13.4-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e24f9156097ff9dc286f2f913df3a7f63c0e333dcafa3c196f2c18b4175ca09a", size = 246425, upload-time = "2026-02-09T12:56:14.552Z" }, + { url = "https://files.pythonhosted.org/packages/f8/02/aa7ec01d1a5023c4b680ab7257f9bfde9defe8fdddfe40be096ac19e8177/coverage-7.13.4-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8041b6c5bfdc03257666e9881d33b1abc88daccaf73f7b6340fb7946655cd10f", size = 248229, upload-time = "2026-02-09T12:56:16.31Z" }, + { url = "https://files.pythonhosted.org/packages/35/98/85aba0aed5126d896162087ef3f0e789a225697245256fc6181b95f47207/coverage-7.13.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a09cfa6a5862bc2fc6ca7c3def5b2926194a56b8ab78ffcf617d28911123012", size = 250106, upload-time = "2026-02-09T12:56:18.024Z" }, + { url = "https://files.pythonhosted.org/packages/96/72/1db59bd67494bc162e3e4cd5fbc7edba2c7026b22f7c8ef1496d58c2b94c/coverage-7.13.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:296f8b0af861d3970c2a4d8c91d48eb4dd4771bcef9baedec6a9b515d7de3def", size = 252021, upload-time = "2026-02-09T12:56:19.272Z" }, + { url = "https://files.pythonhosted.org/packages/9d/97/72899c59c7066961de6e3daa142d459d47d104956db43e057e034f015c8a/coverage-7.13.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e101609bcbbfb04605ea1027b10dc3735c094d12d40826a60f897b98b1c30256", size = 247114, upload-time = "2026-02-09T12:56:21.051Z" }, + { url = "https://files.pythonhosted.org/packages/39/1f/f1885573b5970235e908da4389176936c8933e86cb316b9620aab1585fa2/coverage-7.13.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:aa3feb8db2e87ff5e6d00d7e1480ae241876286691265657b500886c98f38bda", size = 248143, upload-time = "2026-02-09T12:56:22.585Z" }, + { url = "https://files.pythonhosted.org/packages/a8/cf/e80390c5b7480b722fa3e994f8202807799b85bc562aa4f1dde209fbb7be/coverage-7.13.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:4fc7fa81bbaf5a02801b65346c8b3e657f1d93763e58c0abdf7c992addd81a92", size = 246152, upload-time = "2026-02-09T12:56:23.748Z" }, + { url = "https://files.pythonhosted.org/packages/44/bf/f89a8350d85572f95412debb0fb9bb4795b1d5b5232bd652923c759e787b/coverage-7.13.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:33901f604424145c6e9c2398684b92e176c0b12df77d52db81c20abd48c3794c", size = 249959, upload-time = "2026-02-09T12:56:25.209Z" }, + { url = "https://files.pythonhosted.org/packages/f7/6e/612a02aece8178c818df273e8d1642190c4875402ca2ba74514394b27aba/coverage-7.13.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:bb28c0f2cf2782508a40cec377935829d5fcc3ad9a3681375af4e84eb34b6b58", size = 246416, upload-time = "2026-02-09T12:56:26.475Z" }, + { url = "https://files.pythonhosted.org/packages/cb/98/b5afc39af67c2fa6786b03c3a7091fc300947387ce8914b096db8a73d67a/coverage-7.13.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9d107aff57a83222ddbd8d9ee705ede2af2cc926608b57abed8ef96b50b7e8f9", size = 247025, upload-time = "2026-02-09T12:56:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/51/30/2bba8ef0682d5bd210c38fe497e12a06c9f8d663f7025e9f5c2c31ce847d/coverage-7.13.4-cp310-cp310-win32.whl", hash = "sha256:a6f94a7d00eb18f1b6d403c91a88fd58cfc92d4b16080dfdb774afc8294469bf", size = 221758, upload-time = "2026-02-09T12:56:29.051Z" }, + { url = "https://files.pythonhosted.org/packages/78/13/331f94934cf6c092b8ea59ff868eb587bc8fe0893f02c55bc6c0183a192e/coverage-7.13.4-cp310-cp310-win_amd64.whl", hash = "sha256:2cb0f1e000ebc419632bbe04366a8990b6e32c4e0b51543a6484ffe15eaeda95", size = 222693, upload-time = "2026-02-09T12:56:30.366Z" }, + { url = "https://files.pythonhosted.org/packages/b4/ad/b59e5b451cf7172b8d1043dc0fa718f23aab379bc1521ee13d4bd9bfa960/coverage-7.13.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d490ba50c3f35dd7c17953c68f3270e7ccd1c6642e2d2afe2d8e720b98f5a053", size = 219278, upload-time = "2026-02-09T12:56:31.673Z" }, + { url = "https://files.pythonhosted.org/packages/f1/17/0cb7ca3de72e5f4ef2ec2fa0089beafbcaaaead1844e8b8a63d35173d77d/coverage-7.13.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:19bc3c88078789f8ef36acb014d7241961dbf883fd2533d18cb1e7a5b4e28b11", size = 219783, upload-time = "2026-02-09T12:56:33.104Z" }, + { url = "https://files.pythonhosted.org/packages/ab/63/325d8e5b11e0eaf6d0f6a44fad444ae58820929a9b0de943fa377fe73e85/coverage-7.13.4-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3998e5a32e62fdf410c0dbd3115df86297995d6e3429af80b8798aad894ca7aa", size = 250200, upload-time = "2026-02-09T12:56:34.474Z" }, + { url = "https://files.pythonhosted.org/packages/76/53/c16972708cbb79f2942922571a687c52bd109a7bd51175aeb7558dff2236/coverage-7.13.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8e264226ec98e01a8e1054314af91ee6cde0eacac4f465cc93b03dbe0bce2fd7", size = 252114, upload-time = "2026-02-09T12:56:35.749Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c2/7ab36d8b8cc412bec9ea2d07c83c48930eb4ba649634ba00cb7e4e0f9017/coverage-7.13.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a3aa4e7b9e416774b21797365b358a6e827ffadaaca81b69ee02946852449f00", size = 254220, upload-time = "2026-02-09T12:56:37.796Z" }, + { url = "https://files.pythonhosted.org/packages/d6/4d/cf52c9a3322c89a0e6febdfbc83bb45c0ed3c64ad14081b9503adee702e7/coverage-7.13.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:71ca20079dd8f27fcf808817e281e90220475cd75115162218d0e27549f95fef", size = 256164, upload-time = "2026-02-09T12:56:39.016Z" }, + { url = "https://files.pythonhosted.org/packages/78/e9/eb1dd17bd6de8289df3580e967e78294f352a5df8a57ff4671ee5fc3dcd0/coverage-7.13.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e2f25215f1a359ab17320b47bcdaca3e6e6356652e8256f2441e4ef972052903", size = 250325, upload-time = "2026-02-09T12:56:40.668Z" }, + { url = "https://files.pythonhosted.org/packages/71/07/8c1542aa873728f72267c07278c5cc0ec91356daf974df21335ccdb46368/coverage-7.13.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d65b2d373032411e86960604dc4edac91fdfb5dca539461cf2cbe78327d1e64f", size = 251913, upload-time = "2026-02-09T12:56:41.97Z" }, + { url = "https://files.pythonhosted.org/packages/74/d7/c62e2c5e4483a748e27868e4c32ad3daa9bdddbba58e1bc7a15e252baa74/coverage-7.13.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94eb63f9b363180aff17de3e7c8760c3ba94664ea2695c52f10111244d16a299", size = 249974, upload-time = "2026-02-09T12:56:43.323Z" }, + { url = "https://files.pythonhosted.org/packages/98/9f/4c5c015a6e98ced54efd0f5cf8d31b88e5504ecb6857585fc0161bb1e600/coverage-7.13.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e856bf6616714c3a9fbc270ab54103f4e685ba236fa98c054e8f87f266c93505", size = 253741, upload-time = "2026-02-09T12:56:45.155Z" }, + { url = "https://files.pythonhosted.org/packages/bd/59/0f4eef89b9f0fcd9633b5d350016f54126ab49426a70ff4c4e87446cabdc/coverage-7.13.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:65dfcbe305c3dfe658492df2d85259e0d79ead4177f9ae724b6fb245198f55d6", size = 249695, upload-time = "2026-02-09T12:56:46.636Z" }, + { url = "https://files.pythonhosted.org/packages/b5/2c/b7476f938deb07166f3eb281a385c262675d688ff4659ad56c6c6b8e2e70/coverage-7.13.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b507778ae8a4c915436ed5c2e05b4a6cecfa70f734e19c22a005152a11c7b6a9", size = 250599, upload-time = "2026-02-09T12:56:48.13Z" }, + { url = "https://files.pythonhosted.org/packages/b8/34/c3420709d9846ee3785b9f2831b4d94f276f38884032dca1457fa83f7476/coverage-7.13.4-cp311-cp311-win32.whl", hash = "sha256:784fc3cf8be001197b652d51d3fd259b1e2262888693a4636e18879f613a62a9", size = 221780, upload-time = "2026-02-09T12:56:50.479Z" }, + { url = "https://files.pythonhosted.org/packages/61/08/3d9c8613079d2b11c185b865de9a4c1a68850cfda2b357fae365cf609f29/coverage-7.13.4-cp311-cp311-win_amd64.whl", hash = "sha256:2421d591f8ca05b308cf0092807308b2facbefe54af7c02ac22548b88b95c98f", size = 222715, upload-time = "2026-02-09T12:56:51.815Z" }, + { url = "https://files.pythonhosted.org/packages/18/1a/54c3c80b2f056164cc0a6cdcb040733760c7c4be9d780fe655f356f433e4/coverage-7.13.4-cp311-cp311-win_arm64.whl", hash = "sha256:79e73a76b854d9c6088fe5d8b2ebe745f8681c55f7397c3c0a016192d681045f", size = 221385, upload-time = "2026-02-09T12:56:53.194Z" }, + { url = "https://files.pythonhosted.org/packages/d1/81/4ce2fdd909c5a0ed1f6dedb88aa57ab79b6d1fbd9b588c1ac7ef45659566/coverage-7.13.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:02231499b08dabbe2b96612993e5fc34217cdae907a51b906ac7fca8027a4459", size = 219449, upload-time = "2026-02-09T12:56:54.889Z" }, + { url = "https://files.pythonhosted.org/packages/5d/96/5238b1efc5922ddbdc9b0db9243152c09777804fb7c02ad1741eb18a11c0/coverage-7.13.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40aa8808140e55dc022b15d8aa7f651b6b3d68b365ea0398f1441e0b04d859c3", size = 219810, upload-time = "2026-02-09T12:56:56.33Z" }, + { url = "https://files.pythonhosted.org/packages/78/72/2f372b726d433c9c35e56377cf1d513b4c16fe51841060d826b95caacec1/coverage-7.13.4-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5b856a8ccf749480024ff3bd7310adaef57bf31fd17e1bfc404b7940b6986634", size = 251308, upload-time = "2026-02-09T12:56:57.858Z" }, + { url = "https://files.pythonhosted.org/packages/5d/a0/2ea570925524ef4e00bb6c82649f5682a77fac5ab910a65c9284de422600/coverage-7.13.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2c048ea43875fbf8b45d476ad79f179809c590ec7b79e2035c662e7afa3192e3", size = 254052, upload-time = "2026-02-09T12:56:59.754Z" }, + { url = "https://files.pythonhosted.org/packages/e8/ac/45dc2e19a1939098d783c846e130b8f862fbb50d09e0af663988f2f21973/coverage-7.13.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b7b38448866e83176e28086674fe7368ab8590e4610fb662b44e345b86d63ffa", size = 255165, upload-time = "2026-02-09T12:57:01.287Z" }, + { url = "https://files.pythonhosted.org/packages/2d/4d/26d236ff35abc3b5e63540d3386e4c3b192168c1d96da5cb2f43c640970f/coverage-7.13.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:de6defc1c9badbf8b9e67ae90fd00519186d6ab64e5cc5f3d21359c2a9b2c1d3", size = 257432, upload-time = "2026-02-09T12:57:02.637Z" }, + { url = "https://files.pythonhosted.org/packages/ec/55/14a966c757d1348b2e19caf699415a2a4c4f7feaa4bbc6326a51f5c7dd1b/coverage-7.13.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7eda778067ad7ffccd23ecffce537dface96212576a07924cbf0d8799d2ded5a", size = 251716, upload-time = "2026-02-09T12:57:04.056Z" }, + { url = "https://files.pythonhosted.org/packages/77/33/50116647905837c66d28b2af1321b845d5f5d19be9655cb84d4a0ea806b4/coverage-7.13.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e87f6c587c3f34356c3759f0420693e35e7eb0e2e41e4c011cb6ec6ecbbf1db7", size = 253089, upload-time = "2026-02-09T12:57:05.503Z" }, + { url = "https://files.pythonhosted.org/packages/c2/b4/8efb11a46e3665d92635a56e4f2d4529de6d33f2cb38afd47d779d15fc99/coverage-7.13.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:8248977c2e33aecb2ced42fef99f2d319e9904a36e55a8a68b69207fb7e43edc", size = 251232, upload-time = "2026-02-09T12:57:06.879Z" }, + { url = "https://files.pythonhosted.org/packages/51/24/8cd73dd399b812cc76bb0ac260e671c4163093441847ffe058ac9fda1e32/coverage-7.13.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:25381386e80ae727608e662474db537d4df1ecd42379b5ba33c84633a2b36d47", size = 255299, upload-time = "2026-02-09T12:57:08.245Z" }, + { url = "https://files.pythonhosted.org/packages/03/94/0a4b12f1d0e029ce1ccc1c800944a9984cbe7d678e470bb6d3c6bc38a0da/coverage-7.13.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:ee756f00726693e5ba94d6df2bdfd64d4852d23b09bb0bc700e3b30e6f333985", size = 250796, upload-time = "2026-02-09T12:57:10.142Z" }, + { url = "https://files.pythonhosted.org/packages/73/44/6002fbf88f6698ca034360ce474c406be6d5a985b3fdb3401128031eef6b/coverage-7.13.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fdfc1e28e7c7cdce44985b3043bc13bbd9c747520f94a4d7164af8260b3d91f0", size = 252673, upload-time = "2026-02-09T12:57:12.197Z" }, + { url = "https://files.pythonhosted.org/packages/de/c6/a0279f7c00e786be75a749a5674e6fa267bcbd8209cd10c9a450c655dfa7/coverage-7.13.4-cp312-cp312-win32.whl", hash = "sha256:01d4cbc3c283a17fc1e42d614a119f7f438eabb593391283adca8dc86eff1246", size = 221990, upload-time = "2026-02-09T12:57:14.085Z" }, + { url = "https://files.pythonhosted.org/packages/77/4e/c0a25a425fcf5557d9abd18419c95b63922e897bc86c1f327f155ef234a9/coverage-7.13.4-cp312-cp312-win_amd64.whl", hash = "sha256:9401ebc7ef522f01d01d45532c68c5ac40fb27113019b6b7d8b208f6e9baa126", size = 222800, upload-time = "2026-02-09T12:57:15.944Z" }, + { url = "https://files.pythonhosted.org/packages/47/ac/92da44ad9a6f4e3a7debd178949d6f3769bedca33830ce9b1dcdab589a37/coverage-7.13.4-cp312-cp312-win_arm64.whl", hash = "sha256:b1ec7b6b6e93255f952e27ab58fbc68dcc468844b16ecbee881aeb29b6ab4d8d", size = 221415, upload-time = "2026-02-09T12:57:17.497Z" }, + { url = "https://files.pythonhosted.org/packages/db/23/aad45061a31677d68e47499197a131eea55da4875d16c1f42021ab963503/coverage-7.13.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b66a2da594b6068b48b2692f043f35d4d3693fb639d5ea8b39533c2ad9ac3ab9", size = 219474, upload-time = "2026-02-09T12:57:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/a5/70/9b8b67a0945f3dfec1fd896c5cefb7c19d5a3a6d74630b99a895170999ae/coverage-7.13.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3599eb3992d814d23b35c536c28df1a882caa950f8f507cef23d1cbf334995ac", size = 219844, upload-time = "2026-02-09T12:57:20.66Z" }, + { url = "https://files.pythonhosted.org/packages/97/fd/7e859f8fab324cef6c4ad7cff156ca7c489fef9179d5749b0c8d321281c2/coverage-7.13.4-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:93550784d9281e374fb5a12bf1324cc8a963fd63b2d2f223503ef0fd4aa339ea", size = 250832, upload-time = "2026-02-09T12:57:22.007Z" }, + { url = "https://files.pythonhosted.org/packages/e4/dc/b2442d10020c2f52617828862d8b6ee337859cd8f3a1f13d607dddda9cf7/coverage-7.13.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b720ce6a88a2755f7c697c23268ddc47a571b88052e6b155224347389fdf6a3b", size = 253434, upload-time = "2026-02-09T12:57:23.339Z" }, + { url = "https://files.pythonhosted.org/packages/5a/88/6728a7ad17428b18d836540630487231f5470fb82454871149502f5e5aa2/coverage-7.13.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7b322db1284a2ed3aa28ffd8ebe3db91c929b7a333c0820abec3d838ef5b3525", size = 254676, upload-time = "2026-02-09T12:57:24.774Z" }, + { url = "https://files.pythonhosted.org/packages/7c/bc/21244b1b8cedf0dff0a2b53b208015fe798d5f2a8d5348dbfece04224fff/coverage-7.13.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f4594c67d8a7c89cf922d9df0438c7c7bb022ad506eddb0fdb2863359ff78242", size = 256807, upload-time = "2026-02-09T12:57:26.125Z" }, + { url = "https://files.pythonhosted.org/packages/97/a0/ddba7ed3251cff51006737a727d84e05b61517d1784a9988a846ba508877/coverage-7.13.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:53d133df809c743eb8bce33b24bcababb371f4441340578cd406e084d94a6148", size = 251058, upload-time = "2026-02-09T12:57:27.614Z" }, + { url = "https://files.pythonhosted.org/packages/9b/55/e289addf7ff54d3a540526f33751951bf0878f3809b47f6dfb3def69c6f7/coverage-7.13.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:76451d1978b95ba6507a039090ba076105c87cc76fc3efd5d35d72093964d49a", size = 252805, upload-time = "2026-02-09T12:57:29.066Z" }, + { url = "https://files.pythonhosted.org/packages/13/4e/cc276b1fa4a59be56d96f1dabddbdc30f4ba22e3b1cd42504c37b3313255/coverage-7.13.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7f57b33491e281e962021de110b451ab8a24182589be17e12a22c79047935e23", size = 250766, upload-time = "2026-02-09T12:57:30.522Z" }, + { url = "https://files.pythonhosted.org/packages/94/44/1093b8f93018f8b41a8cf29636c9292502f05e4a113d4d107d14a3acd044/coverage-7.13.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:1731dc33dc276dafc410a885cbf5992f1ff171393e48a21453b78727d090de80", size = 254923, upload-time = "2026-02-09T12:57:31.946Z" }, + { url = "https://files.pythonhosted.org/packages/8b/55/ea2796da2d42257f37dbea1aab239ba9263b31bd91d5527cdd6db5efe174/coverage-7.13.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:bd60d4fe2f6fa7dff9223ca1bbc9f05d2b6697bc5961072e5d3b952d46e1b1ea", size = 250591, upload-time = "2026-02-09T12:57:33.842Z" }, + { url = "https://files.pythonhosted.org/packages/d4/fa/7c4bb72aacf8af5020675aa633e59c1fbe296d22aed191b6a5b711eb2bc7/coverage-7.13.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9181a3ccead280b828fae232df12b16652702b49d41e99d657f46cc7b1f6ec7a", size = 252364, upload-time = "2026-02-09T12:57:35.743Z" }, + { url = "https://files.pythonhosted.org/packages/5c/38/a8d2ec0146479c20bbaa7181b5b455a0c41101eed57f10dd19a78ab44c80/coverage-7.13.4-cp313-cp313-win32.whl", hash = "sha256:f53d492307962561ac7de4cd1de3e363589b000ab69617c6156a16ba7237998d", size = 222010, upload-time = "2026-02-09T12:57:37.25Z" }, + { url = "https://files.pythonhosted.org/packages/e2/0c/dbfafbe90a185943dcfbc766fe0e1909f658811492d79b741523a414a6cc/coverage-7.13.4-cp313-cp313-win_amd64.whl", hash = "sha256:e6f70dec1cc557e52df5306d051ef56003f74d56e9c4dd7ddb07e07ef32a84dd", size = 222818, upload-time = "2026-02-09T12:57:38.734Z" }, + { url = "https://files.pythonhosted.org/packages/04/d1/934918a138c932c90d78301f45f677fb05c39a3112b96fd2c8e60503cdc7/coverage-7.13.4-cp313-cp313-win_arm64.whl", hash = "sha256:fb07dc5da7e849e2ad31a5d74e9bece81f30ecf5a42909d0a695f8bd1874d6af", size = 221438, upload-time = "2026-02-09T12:57:40.223Z" }, + { url = "https://files.pythonhosted.org/packages/52/57/ee93ced533bcb3e6df961c0c6e42da2fc6addae53fb95b94a89b1e33ebd7/coverage-7.13.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:40d74da8e6c4b9ac18b15331c4b5ebc35a17069410cad462ad4f40dcd2d50c0d", size = 220165, upload-time = "2026-02-09T12:57:41.639Z" }, + { url = "https://files.pythonhosted.org/packages/c5/e0/969fc285a6fbdda49d91af278488d904dcd7651b2693872f0ff94e40e84a/coverage-7.13.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4223b4230a376138939a9173f1bdd6521994f2aff8047fae100d6d94d50c5a12", size = 220516, upload-time = "2026-02-09T12:57:44.215Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b8/9531944e16267e2735a30a9641ff49671f07e8138ecf1ca13db9fd2560c7/coverage-7.13.4-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1d4be36a5114c499f9f1f9195e95ebf979460dbe2d88e6816ea202010ba1c34b", size = 261804, upload-time = "2026-02-09T12:57:45.989Z" }, + { url = "https://files.pythonhosted.org/packages/8a/f3/e63df6d500314a2a60390d1989240d5f27318a7a68fa30ad3806e2a9323e/coverage-7.13.4-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:200dea7d1e8095cc6e98cdabe3fd1d21ab17d3cee6dab00cadbb2fe35d9c15b9", size = 263885, upload-time = "2026-02-09T12:57:47.42Z" }, + { url = "https://files.pythonhosted.org/packages/f3/67/7654810de580e14b37670b60a09c599fa348e48312db5b216d730857ffe6/coverage-7.13.4-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b8eb931ee8e6d8243e253e5ed7336deea6904369d2fd8ae6e43f68abbf167092", size = 266308, upload-time = "2026-02-09T12:57:49.345Z" }, + { url = "https://files.pythonhosted.org/packages/37/6f/39d41eca0eab3cc82115953ad41c4e77935286c930e8fad15eaed1389d83/coverage-7.13.4-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:75eab1ebe4f2f64d9509b984f9314d4aa788540368218b858dad56dc8f3e5eb9", size = 267452, upload-time = "2026-02-09T12:57:50.811Z" }, + { url = "https://files.pythonhosted.org/packages/50/6d/39c0fbb8fc5cd4d2090811e553c2108cf5112e882f82505ee7495349a6bf/coverage-7.13.4-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c35eb28c1d085eb7d8c9b3296567a1bebe03ce72962e932431b9a61f28facf26", size = 261057, upload-time = "2026-02-09T12:57:52.447Z" }, + { url = "https://files.pythonhosted.org/packages/a4/a2/60010c669df5fa603bb5a97fb75407e191a846510da70ac657eb696b7fce/coverage-7.13.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:eb88b316ec33760714a4720feb2816a3a59180fd58c1985012054fa7aebee4c2", size = 263875, upload-time = "2026-02-09T12:57:53.938Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d9/63b22a6bdbd17f1f96e9ed58604c2a6b0e72a9133e37d663bef185877cf6/coverage-7.13.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7d41eead3cc673cbd38a4417deb7fd0b4ca26954ff7dc6078e33f6ff97bed940", size = 261500, upload-time = "2026-02-09T12:57:56.012Z" }, + { url = "https://files.pythonhosted.org/packages/70/bf/69f86ba1ad85bc3ad240e4c0e57a2e620fbc0e1645a47b5c62f0e941ad7f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:fb26a934946a6afe0e326aebe0730cdff393a8bc0bbb65a2f41e30feddca399c", size = 265212, upload-time = "2026-02-09T12:57:57.5Z" }, + { url = "https://files.pythonhosted.org/packages/ae/f2/5f65a278a8c2148731831574c73e42f57204243d33bedaaf18fa79c5958f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:dae88bc0fc77edaa65c14be099bd57ee140cf507e6bfdeea7938457ab387efb0", size = 260398, upload-time = "2026-02-09T12:57:59.027Z" }, + { url = "https://files.pythonhosted.org/packages/ef/80/6e8280a350ee9fea92f14b8357448a242dcaa243cb2c72ab0ca591f66c8c/coverage-7.13.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:845f352911777a8e722bfce168958214951e07e47e5d5d9744109fa5fe77f79b", size = 262584, upload-time = "2026-02-09T12:58:01.129Z" }, + { url = "https://files.pythonhosted.org/packages/22/63/01ff182fc95f260b539590fb12c11ad3e21332c15f9799cb5e2386f71d9f/coverage-7.13.4-cp313-cp313t-win32.whl", hash = "sha256:2fa8d5f8de70688a28240de9e139fa16b153cc3cbb01c5f16d88d6505ebdadf9", size = 222688, upload-time = "2026-02-09T12:58:02.736Z" }, + { url = "https://files.pythonhosted.org/packages/a9/43/89de4ef5d3cd53b886afa114065f7e9d3707bdb3e5efae13535b46ae483d/coverage-7.13.4-cp313-cp313t-win_amd64.whl", hash = "sha256:9351229c8c8407645840edcc277f4a2d44814d1bc34a2128c11c2a031d45a5dd", size = 223746, upload-time = "2026-02-09T12:58:05.362Z" }, + { url = "https://files.pythonhosted.org/packages/35/39/7cf0aa9a10d470a5309b38b289b9bb07ddeac5d61af9b664fe9775a4cb3e/coverage-7.13.4-cp313-cp313t-win_arm64.whl", hash = "sha256:30b8d0512f2dc8c8747557e8fb459d6176a2c9e5731e2b74d311c03b78451997", size = 222003, upload-time = "2026-02-09T12:58:06.952Z" }, + { url = "https://files.pythonhosted.org/packages/92/11/a9cf762bb83386467737d32187756a42094927150c3e107df4cb078e8590/coverage-7.13.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:300deaee342f90696ed186e3a00c71b5b3d27bffe9e827677954f4ee56969601", size = 219522, upload-time = "2026-02-09T12:58:08.623Z" }, + { url = "https://files.pythonhosted.org/packages/d3/28/56e6d892b7b052236d67c95f1936b6a7cf7c3e2634bf27610b8cbd7f9c60/coverage-7.13.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:29e3220258d682b6226a9b0925bc563ed9a1ebcff3cad30f043eceea7eaf2689", size = 219855, upload-time = "2026-02-09T12:58:10.176Z" }, + { url = "https://files.pythonhosted.org/packages/e5/69/233459ee9eb0c0d10fcc2fe425a029b3fa5ce0f040c966ebce851d030c70/coverage-7.13.4-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:391ee8f19bef69210978363ca930f7328081c6a0152f1166c91f0b5fdd2a773c", size = 250887, upload-time = "2026-02-09T12:58:12.503Z" }, + { url = "https://files.pythonhosted.org/packages/06/90/2cdab0974b9b5bbc1623f7876b73603aecac11b8d95b85b5b86b32de5eab/coverage-7.13.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0dd7ab8278f0d58a0128ba2fca25824321f05d059c1441800e934ff2efa52129", size = 253396, upload-time = "2026-02-09T12:58:14.615Z" }, + { url = "https://files.pythonhosted.org/packages/ac/15/ea4da0f85bf7d7b27635039e649e99deb8173fe551096ea15017f7053537/coverage-7.13.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:78cdf0d578b15148b009ccf18c686aa4f719d887e76e6b40c38ffb61d264a552", size = 254745, upload-time = "2026-02-09T12:58:16.162Z" }, + { url = "https://files.pythonhosted.org/packages/99/11/bb356e86920c655ca4d61daee4e2bbc7258f0a37de0be32d233b561134ff/coverage-7.13.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:48685fee12c2eb3b27c62f2658e7ea21e9c3239cba5a8a242801a0a3f6a8c62a", size = 257055, upload-time = "2026-02-09T12:58:17.892Z" }, + { url = "https://files.pythonhosted.org/packages/c9/0f/9ae1f8cb17029e09da06ca4e28c9e1d5c1c0a511c7074592e37e0836c915/coverage-7.13.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4e83efc079eb39480e6346a15a1bcb3e9b04759c5202d157e1dd4303cd619356", size = 250911, upload-time = "2026-02-09T12:58:19.495Z" }, + { url = "https://files.pythonhosted.org/packages/89/3a/adfb68558fa815cbc29747b553bc833d2150228f251b127f1ce97e48547c/coverage-7.13.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ecae9737b72408d6a950f7e525f30aca12d4bd8dd95e37342e5beb3a2a8c4f71", size = 252754, upload-time = "2026-02-09T12:58:21.064Z" }, + { url = "https://files.pythonhosted.org/packages/32/b1/540d0c27c4e748bd3cd0bd001076ee416eda993c2bae47a73b7cc9357931/coverage-7.13.4-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ae4578f8528569d3cf303fef2ea569c7f4c4059a38c8667ccef15c6e1f118aa5", size = 250720, upload-time = "2026-02-09T12:58:22.622Z" }, + { url = "https://files.pythonhosted.org/packages/c7/95/383609462b3ffb1fe133014a7c84fc0dd01ed55ac6140fa1093b5af7ebb1/coverage-7.13.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:6fdef321fdfbb30a197efa02d48fcd9981f0d8ad2ae8903ac318adc653f5df98", size = 254994, upload-time = "2026-02-09T12:58:24.548Z" }, + { url = "https://files.pythonhosted.org/packages/f7/ba/1761138e86c81680bfc3c49579d66312865457f9fe405b033184e5793cb3/coverage-7.13.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b0f6ccf3dbe577170bebfce1318707d0e8c3650003cb4b3a9dd744575daa8b5", size = 250531, upload-time = "2026-02-09T12:58:26.271Z" }, + { url = "https://files.pythonhosted.org/packages/f8/8e/05900df797a9c11837ab59c4d6fe94094e029582aab75c3309a93e6fb4e3/coverage-7.13.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:75fcd519f2a5765db3f0e391eb3b7d150cce1a771bf4c9f861aeab86c767a3c0", size = 252189, upload-time = "2026-02-09T12:58:27.807Z" }, + { url = "https://files.pythonhosted.org/packages/00/bd/29c9f2db9ea4ed2738b8a9508c35626eb205d51af4ab7bf56a21a2e49926/coverage-7.13.4-cp314-cp314-win32.whl", hash = "sha256:8e798c266c378da2bd819b0677df41ab46d78065fb2a399558f3f6cae78b2fbb", size = 222258, upload-time = "2026-02-09T12:58:29.441Z" }, + { url = "https://files.pythonhosted.org/packages/a7/4d/1f8e723f6829977410efeb88f73673d794075091c8c7c18848d273dc9d73/coverage-7.13.4-cp314-cp314-win_amd64.whl", hash = "sha256:245e37f664d89861cf2329c9afa2c1fe9e6d4e1a09d872c947e70718aeeac505", size = 223073, upload-time = "2026-02-09T12:58:31.026Z" }, + { url = "https://files.pythonhosted.org/packages/51/5b/84100025be913b44e082ea32abcf1afbf4e872f5120b7a1cab1d331b1e13/coverage-7.13.4-cp314-cp314-win_arm64.whl", hash = "sha256:ad27098a189e5838900ce4c2a99f2fe42a0bf0c2093c17c69b45a71579e8d4a2", size = 221638, upload-time = "2026-02-09T12:58:32.599Z" }, + { url = "https://files.pythonhosted.org/packages/a7/e4/c884a405d6ead1370433dad1e3720216b4f9fd8ef5b64bfd984a2a60a11a/coverage-7.13.4-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:85480adfb35ffc32d40918aad81b89c69c9cc5661a9b8a81476d3e645321a056", size = 220246, upload-time = "2026-02-09T12:58:34.181Z" }, + { url = "https://files.pythonhosted.org/packages/81/5c/4d7ed8b23b233b0fffbc9dfec53c232be2e695468523242ea9fd30f97ad2/coverage-7.13.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:79be69cf7f3bf9b0deeeb062eab7ac7f36cd4cc4c4dd694bd28921ba4d8596cc", size = 220514, upload-time = "2026-02-09T12:58:35.704Z" }, + { url = "https://files.pythonhosted.org/packages/2f/6f/3284d4203fd2f28edd73034968398cd2d4cb04ab192abc8cff007ea35679/coverage-7.13.4-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:caa421e2684e382c5d8973ac55e4f36bed6821a9bad5c953494de960c74595c9", size = 261877, upload-time = "2026-02-09T12:58:37.864Z" }, + { url = "https://files.pythonhosted.org/packages/09/aa/b672a647bbe1556a85337dc95bfd40d146e9965ead9cc2fe81bde1e5cbce/coverage-7.13.4-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:14375934243ee05f56c45393fe2ce81fe5cc503c07cee2bdf1725fb8bef3ffaf", size = 264004, upload-time = "2026-02-09T12:58:39.492Z" }, + { url = "https://files.pythonhosted.org/packages/79/a1/aa384dbe9181f98bba87dd23dda436f0c6cf2e148aecbb4e50fc51c1a656/coverage-7.13.4-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:25a41c3104d08edb094d9db0d905ca54d0cd41c928bb6be3c4c799a54753af55", size = 266408, upload-time = "2026-02-09T12:58:41.852Z" }, + { url = "https://files.pythonhosted.org/packages/53/5e/5150bf17b4019bc600799f376bb9606941e55bd5a775dc1e096b6ffea952/coverage-7.13.4-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6f01afcff62bf9a08fb32b2c1d6e924236c0383c02c790732b6537269e466a72", size = 267544, upload-time = "2026-02-09T12:58:44.093Z" }, + { url = "https://files.pythonhosted.org/packages/e0/ed/f1de5c675987a4a7a672250d2c5c9d73d289dbf13410f00ed7181d8017dd/coverage-7.13.4-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:eb9078108fbf0bcdde37c3f4779303673c2fa1fe8f7956e68d447d0dd426d38a", size = 260980, upload-time = "2026-02-09T12:58:45.721Z" }, + { url = "https://files.pythonhosted.org/packages/b3/e3/fe758d01850aa172419a6743fe76ba8b92c29d181d4f676ffe2dae2ba631/coverage-7.13.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0e086334e8537ddd17e5f16a344777c1ab8194986ec533711cbe6c41cde841b6", size = 263871, upload-time = "2026-02-09T12:58:47.334Z" }, + { url = "https://files.pythonhosted.org/packages/b6/76/b829869d464115e22499541def9796b25312b8cf235d3bb00b39f1675395/coverage-7.13.4-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:725d985c5ab621268b2edb8e50dfe57633dc69bda071abc470fed55a14935fd3", size = 261472, upload-time = "2026-02-09T12:58:48.995Z" }, + { url = "https://files.pythonhosted.org/packages/14/9e/caedb1679e73e2f6ad240173f55218488bfe043e38da577c4ec977489915/coverage-7.13.4-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:3c06f0f1337c667b971ca2f975523347e63ec5e500b9aa5882d91931cd3ef750", size = 265210, upload-time = "2026-02-09T12:58:51.178Z" }, + { url = "https://files.pythonhosted.org/packages/3a/10/0dd02cb009b16ede425b49ec344aba13a6ae1dc39600840ea6abcb085ac4/coverage-7.13.4-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:590c0ed4bf8e85f745e6b805b2e1c457b2e33d5255dd9729743165253bc9ad39", size = 260319, upload-time = "2026-02-09T12:58:53.081Z" }, + { url = "https://files.pythonhosted.org/packages/92/8e/234d2c927af27c6d7a5ffad5bd2cf31634c46a477b4c7adfbfa66baf7ebb/coverage-7.13.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:eb30bf180de3f632cd043322dad5751390e5385108b2807368997d1a92a509d0", size = 262638, upload-time = "2026-02-09T12:58:55.258Z" }, + { url = "https://files.pythonhosted.org/packages/2f/64/e5547c8ff6964e5965c35a480855911b61509cce544f4d442caa759a0702/coverage-7.13.4-cp314-cp314t-win32.whl", hash = "sha256:c4240e7eded42d131a2d2c4dec70374b781b043ddc79a9de4d55ca71f8e98aea", size = 223040, upload-time = "2026-02-09T12:58:56.936Z" }, + { url = "https://files.pythonhosted.org/packages/c7/96/38086d58a181aac86d503dfa9c47eb20715a79c3e3acbdf786e92e5c09a8/coverage-7.13.4-cp314-cp314t-win_amd64.whl", hash = "sha256:4c7d3cc01e7350f2f0f6f7036caaf5673fb56b6998889ccfe9e1c1fe75a9c932", size = 224148, upload-time = "2026-02-09T12:58:58.645Z" }, + { url = "https://files.pythonhosted.org/packages/ce/72/8d10abd3740a0beb98c305e0c3faf454366221c0f37a8bcf8f60020bb65a/coverage-7.13.4-cp314-cp314t-win_arm64.whl", hash = "sha256:23e3f687cf945070d1c90f85db66d11e3025665d8dafa831301a0e0038f3db9b", size = 222172, upload-time = "2026-02-09T12:59:00.396Z" }, + { url = "https://files.pythonhosted.org/packages/0d/4a/331fe2caf6799d591109bb9c08083080f6de90a823695d412a935622abb2/coverage-7.13.4-py3-none-any.whl", hash = "sha256:1af1641e57cf7ba1bd67d677c9abdbcd6cc2ab7da3bca7fa1e2b7e50e65f2ad0", size = 211242, upload-time = "2026-02-09T12:59:02.032Z" }, ] [package.optional-dependencies] @@ -315,160 +555,282 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, ] +[[package]] +name = "cymem" +version = "2.0.13" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/2f0fbb32535c3731b7c2974c569fb9325e0a38ed5565a08e1139a3b71e82/cymem-2.0.13.tar.gz", hash = "sha256:1c91a92ae8c7104275ac26bd4d29b08ccd3e7faff5893d3858cb6fadf1bc1588", size = 12320, upload-time = "2025-11-14T14:58:36.902Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/14/462018dd384ee1848ac9c1951534a813a325abbfc161a74e2cbcb38d2469/cymem-2.0.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8efc4f308169237aade0e82877a65a563833dec32eb7ab2326120253e0e9e918", size = 43747, upload-time = "2025-11-14T14:57:11.287Z" }, + { url = "https://files.pythonhosted.org/packages/4b/9b/c123ba65dddcd8a2bc0b3c9046766c15abe0e257c315b3040eed22cce1e2/cymem-2.0.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e03bb575a96c59bc210d7d59862747f0012696b0dac3427ce8af33c7afb3d4a2", size = 43328, upload-time = "2025-11-14T14:57:12.578Z" }, + { url = "https://files.pythonhosted.org/packages/bd/be/7b7a4cf9cd2d37e674612a86fc90b3d59bff12177f83430e62b25afaf7fc/cymem-2.0.13-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1775d3fd34cf099929b79c3e48469283642463f977af6801231f3c0e5d9c9369", size = 231539, upload-time = "2025-11-14T14:57:14.441Z" }, + { url = "https://files.pythonhosted.org/packages/79/6d/d165c38cd4caaaf60942e2cec9998b667008f2384047ccfe0b4b5f7a1ffe/cymem-2.0.13-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:84e2976e38cd663f758e40b5497fa5cd183d7c5fb0d04ce81a4b42a1ba124ff0", size = 229674, upload-time = "2025-11-14T14:57:15.685Z" }, + { url = "https://files.pythonhosted.org/packages/95/c1/af83c03a93f890ca81149561b18a4a67a9aa36a1109f15e291dd2703ab12/cymem-2.0.13-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ed9de1b9b042f76fe5c312e4359eab58bf52ac7dfdf6887368a760410d809440", size = 229805, upload-time = "2025-11-14T14:57:17.289Z" }, + { url = "https://files.pythonhosted.org/packages/03/2d/12900758b80345d9aed5892a9d61e8a5f6abbbe5837e4def373a53cd0da2/cymem-2.0.13-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1366c7437a209230f4b797fae10227a8206d4021d37c9f9c0d31fd97ea4feb35", size = 234018, upload-time = "2025-11-14T14:57:18.512Z" }, + { url = "https://files.pythonhosted.org/packages/a6/8b/5fcf5430fc81098aef58cc20340e51f37b49b9d8c15766e0d5d63e7288a3/cymem-2.0.13-cp310-cp310-win_amd64.whl", hash = "sha256:7700b116524b087e0169f10f267539223b48240ef2734c3a727a9e6b4db9a671", size = 40102, upload-time = "2025-11-14T14:57:19.972Z" }, + { url = "https://files.pythonhosted.org/packages/0d/d3/cb6c83758fe399443b858faafb7096b72535621a7af7dd9a54ff0989fa14/cymem-2.0.13-cp310-cp310-win_arm64.whl", hash = "sha256:c8dbfddfe5c604974e17c6f373cedd4d25cd67f84812ede7dea12128fa0c2015", size = 36282, upload-time = "2025-11-14T14:57:21.398Z" }, + { url = "https://files.pythonhosted.org/packages/10/64/1db41f7576a6b69f70367e3c15e968fd775ba7419e12059c9966ceb826f8/cymem-2.0.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:673183466b0ff2e060d97ec5116711d44200b8f7be524323e080d215ee2d44a5", size = 43587, upload-time = "2025-11-14T14:57:22.39Z" }, + { url = "https://files.pythonhosted.org/packages/81/13/57f936fc08551323aab3f92ff6b7f4d4b89d5b4e495c870a67cb8d279757/cymem-2.0.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bee2791b3f6fc034ce41268851462bf662ff87e8947e35fb6dd0115b4644a61f", size = 43139, upload-time = "2025-11-14T14:57:23.363Z" }, + { url = "https://files.pythonhosted.org/packages/32/a6/9345754be51e0479aa387b7b6cffc289d0fd3201aaeb8dade4623abd1e02/cymem-2.0.13-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f3aee3adf16272bca81c5826eed55ba3c938add6d8c9e273f01c6b829ecfde22", size = 245063, upload-time = "2025-11-14T14:57:24.839Z" }, + { url = "https://files.pythonhosted.org/packages/d6/01/6bc654101526fa86e82bf6b05d99b2cd47c30a333cfe8622c26c0592beb2/cymem-2.0.13-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:30c4e75a3a1d809e89106b0b21803eb78e839881aa1f5b9bd27b454bc73afde3", size = 244496, upload-time = "2025-11-14T14:57:26.42Z" }, + { url = "https://files.pythonhosted.org/packages/c4/fb/853b7b021e701a1f41687f3704d5f469aeb2a4f898c3fbb8076806885955/cymem-2.0.13-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec99efa03cf8ec11c8906aa4d4cc0c47df393bc9095c9dd64b89b9b43e220b04", size = 243287, upload-time = "2025-11-14T14:57:27.542Z" }, + { url = "https://files.pythonhosted.org/packages/d4/2b/0e4664cafc581de2896d75000651fd2ce7094d33263f466185c28ffc96e4/cymem-2.0.13-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c90a6ecba994a15b17a3f45d7ec74d34081df2f73bd1b090e2adc0317e4e01b6", size = 248287, upload-time = "2025-11-14T14:57:29.055Z" }, + { url = "https://files.pythonhosted.org/packages/21/0f/f94c6950edbfc2aafb81194fc40b6cacc8e994e9359d3cb4328c5705b9b5/cymem-2.0.13-cp311-cp311-win_amd64.whl", hash = "sha256:ce821e6ba59148ed17c4567113b8683a6a0be9c9ac86f14e969919121efb61a5", size = 40116, upload-time = "2025-11-14T14:57:30.592Z" }, + { url = "https://files.pythonhosted.org/packages/00/df/2455eff6ac0381ff165db6883b311f7016e222e3dd62185517f8e8187ed0/cymem-2.0.13-cp311-cp311-win_arm64.whl", hash = "sha256:0dca715e708e545fd1d97693542378a00394b20a37779c1ae2c8bdbb43acef79", size = 36349, upload-time = "2025-11-14T14:57:31.573Z" }, + { url = "https://files.pythonhosted.org/packages/c9/52/478a2911ab5028cb710b4900d64aceba6f4f882fcb13fd8d40a456a1b6dc/cymem-2.0.13-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e8afbc5162a0fe14b6463e1c4e45248a1b2fe2cbcecc8a5b9e511117080da0eb", size = 43745, upload-time = "2025-11-14T14:57:32.52Z" }, + { url = "https://files.pythonhosted.org/packages/f9/71/f0f8adee945524774b16af326bd314a14a478ed369a728a22834e6785a18/cymem-2.0.13-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9251d889348fe79a75e9b3e4d1b5fa651fca8a64500820685d73a3acc21b6a8", size = 42927, upload-time = "2025-11-14T14:57:33.827Z" }, + { url = "https://files.pythonhosted.org/packages/62/6d/159780fe162ff715d62b809246e5fc20901cef87ca28b67d255a8d741861/cymem-2.0.13-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:742fc19764467a49ed22e56a4d2134c262d73a6c635409584ae3bf9afa092c33", size = 258346, upload-time = "2025-11-14T14:57:34.917Z" }, + { url = "https://files.pythonhosted.org/packages/eb/12/678d16f7aa1996f947bf17b8cfb917ea9c9674ef5e2bd3690c04123d5680/cymem-2.0.13-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f190a92fe46197ee64d32560eb121c2809bb843341733227f51538ce77b3410d", size = 260843, upload-time = "2025-11-14T14:57:36.503Z" }, + { url = "https://files.pythonhosted.org/packages/31/5d/0dd8c167c08cd85e70d274b7235cfe1e31b3cebc99221178eaf4bbb95c6f/cymem-2.0.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d670329ee8dbbbf241b7c08069fe3f1d3a1a3e2d69c7d05ea008a7010d826298", size = 254607, upload-time = "2025-11-14T14:57:38.036Z" }, + { url = "https://files.pythonhosted.org/packages/b7/c9/d6514a412a1160aa65db539836b3d47f9b59f6675f294ec34ae32f867c82/cymem-2.0.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a84ba3178d9128b9ffb52ce81ebab456e9fe959125b51109f5b73ebdfc6b60d6", size = 262421, upload-time = "2025-11-14T14:57:39.265Z" }, + { url = "https://files.pythonhosted.org/packages/dd/fe/3ee37d02ca4040f2fb22d34eb415198f955862b5dd47eee01df4c8f5454c/cymem-2.0.13-cp312-cp312-win_amd64.whl", hash = "sha256:2ff1c41fd59b789579fdace78aa587c5fc091991fa59458c382b116fc36e30dc", size = 40176, upload-time = "2025-11-14T14:57:40.706Z" }, + { url = "https://files.pythonhosted.org/packages/94/fb/1b681635bfd5f2274d0caa8f934b58435db6c091b97f5593738065ddb786/cymem-2.0.13-cp312-cp312-win_arm64.whl", hash = "sha256:6bbd701338df7bf408648191dff52472a9b334f71bcd31a21a41d83821050f67", size = 35959, upload-time = "2025-11-14T14:57:41.682Z" }, + { url = "https://files.pythonhosted.org/packages/ce/0f/95a4d1e3bebfdfa7829252369357cf9a764f67569328cd9221f21e2c952e/cymem-2.0.13-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:891fd9030293a8b652dc7fb9fdc79a910a6c76fc679cd775e6741b819ffea476", size = 43478, upload-time = "2025-11-14T14:57:42.682Z" }, + { url = "https://files.pythonhosted.org/packages/bf/a0/8fc929cc29ae466b7b4efc23ece99cbd3ea34992ccff319089c624d667fd/cymem-2.0.13-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:89c4889bd16513ce1644ccfe1e7c473ba7ca150f0621e66feac3a571bde09e7e", size = 42695, upload-time = "2025-11-14T14:57:43.741Z" }, + { url = "https://files.pythonhosted.org/packages/4a/b3/deeb01354ebaf384438083ffe0310209ef903db3e7ba5a8f584b06d28387/cymem-2.0.13-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:45dcaba0f48bef9cc3d8b0b92058640244a95a9f12542210b51318da97c2cf28", size = 250573, upload-time = "2025-11-14T14:57:44.81Z" }, + { url = "https://files.pythonhosted.org/packages/36/36/bc980b9a14409f3356309c45a8d88d58797d02002a9d794dd6c84e809d3a/cymem-2.0.13-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e96848faaafccc0abd631f1c5fb194eac0caee4f5a8777fdbb3e349d3a21741c", size = 254572, upload-time = "2025-11-14T14:57:46.023Z" }, + { url = "https://files.pythonhosted.org/packages/fd/dd/a12522952624685bd0f8968e26d2ed6d059c967413ce6eb52292f538f1b0/cymem-2.0.13-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e02d3e2c3bfeb21185d5a4a70790d9df40629a87d8d7617dc22b4e864f665fa3", size = 248060, upload-time = "2025-11-14T14:57:47.605Z" }, + { url = "https://files.pythonhosted.org/packages/08/11/5dc933ddfeb2dfea747a0b935cb965b9a7580b324d96fc5f5a1b5ff8df29/cymem-2.0.13-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fece5229fd5ecdcd7a0738affb8c59890e13073ae5626544e13825f26c019d3c", size = 254601, upload-time = "2025-11-14T14:57:48.861Z" }, + { url = "https://files.pythonhosted.org/packages/70/66/d23b06166864fa94e13a98e5922986ce774832936473578febce64448d75/cymem-2.0.13-cp313-cp313-win_amd64.whl", hash = "sha256:38aefeb269597c1a0c2ddf1567dd8605489b661fa0369c6406c1acd433b4c7ba", size = 40103, upload-time = "2025-11-14T14:57:50.396Z" }, + { url = "https://files.pythonhosted.org/packages/2f/9e/c7b21271ab88a21760f3afdec84d2bc09ffa9e6c8d774ad9d4f1afab0416/cymem-2.0.13-cp313-cp313-win_arm64.whl", hash = "sha256:717270dcfd8c8096b479c42708b151002ff98e434a7b6f1f916387a6c791e2ad", size = 36016, upload-time = "2025-11-14T14:57:51.611Z" }, + { url = "https://files.pythonhosted.org/packages/7f/28/d3b03427edc04ae04910edf1c24b993881c3ba93a9729a42bcbb816a1808/cymem-2.0.13-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7e1a863a7f144ffb345397813701509cfc74fc9ed360a4d92799805b4b865dd1", size = 46429, upload-time = "2025-11-14T14:57:52.582Z" }, + { url = "https://files.pythonhosted.org/packages/35/a9/7ed53e481f47ebfb922b0b42e980cec83e98ccb2137dc597ea156642440c/cymem-2.0.13-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c16cb80efc017b054f78998c6b4b013cef509c7b3d802707ce1f85a1d68361bf", size = 46205, upload-time = "2025-11-14T14:57:53.64Z" }, + { url = "https://files.pythonhosted.org/packages/61/39/a3d6ad073cf7f0fbbb8bbf09698c3c8fac11be3f791d710239a4e8dd3438/cymem-2.0.13-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0d78a27c88b26c89bd1ece247d1d5939dba05a1dae6305aad8fd8056b17ddb51", size = 296083, upload-time = "2025-11-14T14:57:55.922Z" }, + { url = "https://files.pythonhosted.org/packages/36/0c/20697c8bc19f624a595833e566f37d7bcb9167b0ce69de896eba7cfc9c2d/cymem-2.0.13-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6d36710760f817194dacb09d9fc45cb6a5062ed75e85f0ef7ad7aeeb13d80cc3", size = 286159, upload-time = "2025-11-14T14:57:57.106Z" }, + { url = "https://files.pythonhosted.org/packages/82/d4/9326e3422d1c2d2b4a8fb859bdcce80138f6ab721ddafa4cba328a505c71/cymem-2.0.13-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c8f30971cadd5dcf73bcfbbc5849b1f1e1f40db8cd846c4aa7d3b5e035c7b583", size = 288186, upload-time = "2025-11-14T14:57:58.334Z" }, + { url = "https://files.pythonhosted.org/packages/ed/bc/68da7dd749b72884dc22e898562f335002d70306069d496376e5ff3b6153/cymem-2.0.13-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:9d441d0e45798ec1fd330373bf7ffa6b795f229275f64016b6a193e6e2a51522", size = 290353, upload-time = "2025-11-14T14:58:00.562Z" }, + { url = "https://files.pythonhosted.org/packages/50/23/dbf2ad6ecd19b99b3aab6203b1a06608bbd04a09c522d836b854f2f30f73/cymem-2.0.13-cp313-cp313t-win_amd64.whl", hash = "sha256:d1c950eebb9f0f15e3ef3591313482a5a611d16fc12d545e2018cd607f40f472", size = 44764, upload-time = "2025-11-14T14:58:01.793Z" }, + { url = "https://files.pythonhosted.org/packages/54/3f/35701c13e1fc7b0895198c8b20068c569a841e0daf8e0b14d1dc0816b28f/cymem-2.0.13-cp313-cp313t-win_arm64.whl", hash = "sha256:042e8611ef862c34a97b13241f5d0da86d58aca3cecc45c533496678e75c5a1f", size = 38964, upload-time = "2025-11-14T14:58:02.87Z" }, + { url = "https://files.pythonhosted.org/packages/a7/2e/f0e1596010a9a57fa9ebd124a678c07c5b2092283781ae51e79edcf5cb98/cymem-2.0.13-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d2a4bf67db76c7b6afc33de44fb1c318207c3224a30da02c70901936b5aafdf1", size = 43812, upload-time = "2025-11-14T14:58:04.227Z" }, + { url = "https://files.pythonhosted.org/packages/bc/45/8ccc21df08fcbfa6aa3efeb7efc11a1c81c90e7476e255768bb9c29ba02a/cymem-2.0.13-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:92a2ce50afa5625fb5ce7c9302cee61e23a57ccac52cd0410b4858e572f8614b", size = 42951, upload-time = "2025-11-14T14:58:05.424Z" }, + { url = "https://files.pythonhosted.org/packages/01/8c/fe16531631f051d3d1226fa42e2d76fd2c8d5cfa893ec93baee90c7a9d90/cymem-2.0.13-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bc116a70cc3a5dc3d1684db5268eff9399a0be8603980005e5b889564f1ea42f", size = 249878, upload-time = "2025-11-14T14:58:06.95Z" }, + { url = "https://files.pythonhosted.org/packages/47/4b/39d67b80ffb260457c05fcc545de37d82e9e2dbafc93dd6b64f17e09b933/cymem-2.0.13-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:68489bf0035c4c280614067ab6a82815b01dc9fcd486742a5306fe9f68deb7ef", size = 252571, upload-time = "2025-11-14T14:58:08.232Z" }, + { url = "https://files.pythonhosted.org/packages/53/0e/76f6531f74dfdfe7107899cce93ab063bb7ee086ccd3910522b31f623c08/cymem-2.0.13-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:03cb7bdb55718d5eb6ef0340b1d2430ba1386db30d33e9134d01ba9d6d34d705", size = 248555, upload-time = "2025-11-14T14:58:09.429Z" }, + { url = "https://files.pythonhosted.org/packages/c7/7c/eee56757db81f0aefc2615267677ae145aff74228f529838425057003c0d/cymem-2.0.13-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:1710390e7fb2510a8091a1991024d8ae838fd06b02cdfdcd35f006192e3c6b0e", size = 254177, upload-time = "2025-11-14T14:58:10.594Z" }, + { url = "https://files.pythonhosted.org/packages/77/e0/a4b58ec9e53c836dce07ef39837a64a599f4a21a134fc7ca57a3a8f9a4b5/cymem-2.0.13-cp314-cp314-win_amd64.whl", hash = "sha256:ac699c8ec72a3a9de8109bd78821ab22f60b14cf2abccd970b5ff310e14158ed", size = 40853, upload-time = "2025-11-14T14:58:12.116Z" }, + { url = "https://files.pythonhosted.org/packages/61/81/9931d1f83e5aeba175440af0b28f0c2e6f71274a5a7b688bc3e907669388/cymem-2.0.13-cp314-cp314-win_arm64.whl", hash = "sha256:90c2d0c04bcda12cd5cebe9be93ce3af6742ad8da96e1b1907e3f8e00291def1", size = 36970, upload-time = "2025-11-14T14:58:13.114Z" }, + { url = "https://files.pythonhosted.org/packages/b7/ef/af447c2184dec6dec973be14614df8ccb4d16d1c74e0784ab4f02538433c/cymem-2.0.13-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:ff036bbc1464993552fd1251b0a83fe102af334b301e3896d7aa05a4999ad042", size = 46804, upload-time = "2025-11-14T14:58:14.113Z" }, + { url = "https://files.pythonhosted.org/packages/8c/95/e10f33a8d4fc17f9b933d451038218437f9326c2abb15a3e7f58ce2a06ec/cymem-2.0.13-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:fb8291691ba7ff4e6e000224cc97a744a8d9588418535c9454fd8436911df612", size = 46254, upload-time = "2025-11-14T14:58:15.156Z" }, + { url = "https://files.pythonhosted.org/packages/e7/7a/5efeb2d2ea6ebad2745301ad33a4fa9a8f9a33b66623ee4d9185683007a6/cymem-2.0.13-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d8d06ea59006b1251ad5794bcc00121e148434826090ead0073c7b7fedebe431", size = 296061, upload-time = "2025-11-14T14:58:16.254Z" }, + { url = "https://files.pythonhosted.org/packages/0b/28/2a3f65842cc8443c2c0650cf23d525be06c8761ab212e0a095a88627be1b/cymem-2.0.13-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c0046a619ecc845ccb4528b37b63426a0cbcb4f14d7940add3391f59f13701e6", size = 285784, upload-time = "2025-11-14T14:58:17.412Z" }, + { url = "https://files.pythonhosted.org/packages/98/73/dd5f9729398f0108c2e71d942253d0d484d299d08b02e474d7cfc43ed0b0/cymem-2.0.13-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:18ad5b116a82fa3674bc8838bd3792891b428971e2123ae8c0fd3ca472157c5e", size = 288062, upload-time = "2025-11-14T14:58:20.225Z" }, + { url = "https://files.pythonhosted.org/packages/5a/01/ffe51729a8f961a437920560659073e47f575d4627445216c1177ecd4a41/cymem-2.0.13-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:666ce6146bc61b9318aa70d91ce33f126b6344a25cf0b925621baed0c161e9cc", size = 290465, upload-time = "2025-11-14T14:58:21.815Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ac/c9e7d68607f71ef978c81e334ab2898b426944c71950212b1467186f69f9/cymem-2.0.13-cp314-cp314t-win_amd64.whl", hash = "sha256:84c1168c563d9d1e04546cb65e3e54fde2bf814f7c7faf11fc06436598e386d1", size = 46665, upload-time = "2025-11-14T14:58:23.512Z" }, + { url = "https://files.pythonhosted.org/packages/66/66/150e406a2db5535533aa3c946de58f0371f2e412e23f050c704588023e6e/cymem-2.0.13-cp314-cp314t-win_arm64.whl", hash = "sha256:e9027764dc5f1999fb4b4cabee1d0322c59e330c0a6485b436a68275f614277f", size = 39715, upload-time = "2025-11-14T14:58:24.773Z" }, +] + +[[package]] +name = "dill" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/81/e1/56027a71e31b02ddc53c7d65b01e68edf64dea2932122fe7746a516f75d5/dill-0.4.1.tar.gz", hash = "sha256:423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa", size = 187315, upload-time = "2026-01-19T02:36:56.85Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/77/dc8c558f7593132cf8fefec57c4f60c83b16941c574ac5f619abb3ae7933/dill-0.4.1-py3-none-any.whl", hash = "sha256:1e1ce33e978ae97fcfcff5638477032b801c46c7c65cf717f95fbc2248f79a9d", size = 120019, upload-time = "2026-01-19T02:36:55.663Z" }, +] + [[package]] name = "exceptiongroup" -version = "1.3.0" +version = "1.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749, upload-time = "2025-05-10T17:42:51.123Z" } +sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10", size = 16674, upload-time = "2025-05-10T17:42:49.33Z" }, + { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload-time = "2025-11-21T23:01:53.443Z" }, ] [[package]] name = "flake8" -version = "7.2.0" +version = "7.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mccabe" }, { name = "pycodestyle" }, { name = "pyflakes" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e7/c4/5842fc9fc94584c455543540af62fd9900faade32511fab650e9891ec225/flake8-7.2.0.tar.gz", hash = "sha256:fa558ae3f6f7dbf2b4f22663e5343b6b6023620461f8d4ff2019ef4b5ee70426", size = 48177, upload-time = "2025-03-29T20:08:39.329Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9b/af/fbfe3c4b5a657d79e5c47a2827a362f9e1b763336a52f926126aa6dc7123/flake8-7.3.0.tar.gz", hash = "sha256:fe044858146b9fc69b551a4b490d69cf960fcb78ad1edcb84e7fbb1b4a8e3872", size = 48326, upload-time = "2025-06-20T19:31:35.838Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/83/5c/0627be4c9976d56b1217cb5187b7504e7fd7d3503f8bfd312a04077bd4f7/flake8-7.2.0-py2.py3-none-any.whl", hash = "sha256:93b92ba5bdb60754a6da14fa3b93a9361fd00a59632ada61fd7b130436c40343", size = 57786, upload-time = "2025-03-29T20:08:37.902Z" }, + { url = "https://files.pythonhosted.org/packages/9f/56/13ab06b4f93ca7cac71078fbe37fcea175d3216f31f85c3168a6bbd0bb9a/flake8-7.3.0-py2.py3-none-any.whl", hash = "sha256:b9696257b9ce8beb888cdbe31cf885c90d31928fe202be0889a7cdafad32f01e", size = 57922, upload-time = "2025-06-20T19:31:34.425Z" }, ] [[package]] name = "fonttools" -version = "4.59.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0d/a5/fba25f9fbdab96e26dedcaeeba125e5f05a09043bf888e0305326e55685b/fonttools-4.59.2.tar.gz", hash = "sha256:e72c0749b06113f50bcb80332364c6be83a9582d6e3db3fe0b280f996dc2ef22", size = 3540889, upload-time = "2025-08-27T16:40:30.97Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/a6/e72083ec030232f2aac372857d8f97240cf0c2886bac65fef5287b735633/fonttools-4.59.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2a159e36ae530650acd13604f364b3a2477eff7408dcac6a640d74a3744d2514", size = 2753389, upload-time = "2025-08-27T16:38:30.021Z" }, - { url = "https://files.pythonhosted.org/packages/fe/96/6e511adbde7b44c0e57e27b767a46cde11d88de8ce76321d749ec7003fe2/fonttools-4.59.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8bd733e47bf4c6dee2b2d8af7a1f7b0c091909b22dbb969a29b2b991e61e5ba4", size = 2334628, upload-time = "2025-08-27T16:38:32.552Z" }, - { url = "https://files.pythonhosted.org/packages/cc/bb/acc8a09327e9bf3efd8db46f992e4d969575b8069a635716149749f78983/fonttools-4.59.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7bb32e0e33795e3b7795bb9b88cb6a9d980d3cbe26dd57642471be547708e17a", size = 4850251, upload-time = "2025-08-27T16:38:34.454Z" }, - { url = "https://files.pythonhosted.org/packages/31/ed/abed08178e06fab3513b845c045cb09145c877d50121668add2f308a6c19/fonttools-4.59.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cdcdf7aad4bab7fd0f2938624a5a84eb4893be269f43a6701b0720b726f24df0", size = 4779256, upload-time = "2025-08-27T16:38:36.527Z" }, - { url = "https://files.pythonhosted.org/packages/dc/1d/5ee99572c3e0e9004445dcfd694b5548ae9a218397fa6824e8cdaca4d253/fonttools-4.59.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4d974312a9f405628e64f475b1f5015a61fd338f0a1b61d15c4822f97d6b045b", size = 4829617, upload-time = "2025-08-27T16:38:39.37Z" }, - { url = "https://files.pythonhosted.org/packages/7d/29/0e20a6c18f550a64ed240b369296161a53bf9e4cf37733385afc62ede804/fonttools-4.59.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:12dc4670e6e6cc4553e8de190f86a549e08ca83a036363115d94a2d67488831e", size = 4939871, upload-time = "2025-08-27T16:38:41.558Z" }, - { url = "https://files.pythonhosted.org/packages/ad/19/969f586b401b0dce5d029491c9c2d6e80aafe2789ba055322e80b117ad67/fonttools-4.59.2-cp310-cp310-win32.whl", hash = "sha256:1603b85d5922042563eea518e272b037baf273b9a57d0f190852b0b075079000", size = 2219867, upload-time = "2025-08-27T16:38:43.642Z" }, - { url = "https://files.pythonhosted.org/packages/de/70/b439062e4b82082704f3f620077100361382a43539d4ff1d8f016b988fd5/fonttools-4.59.2-cp310-cp310-win_amd64.whl", hash = "sha256:2543b81641ea5b8ddfcae7926e62aafd5abc604320b1b119e5218c014a7a5d3c", size = 2264378, upload-time = "2025-08-27T16:38:45.497Z" }, - { url = "https://files.pythonhosted.org/packages/f8/53/742fcd750ae0bdc74de4c0ff923111199cc2f90a4ee87aaddad505b6f477/fonttools-4.59.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:511946e8d7ea5c0d6c7a53c4cb3ee48eda9ab9797cd9bf5d95829a398400354f", size = 2774961, upload-time = "2025-08-27T16:38:47.536Z" }, - { url = "https://files.pythonhosted.org/packages/57/2a/976f5f9fa3b4dd911dc58d07358467bec20e813d933bc5d3db1a955dd456/fonttools-4.59.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8e5e2682cf7be766d84f462ba8828d01e00c8751a8e8e7ce12d7784ccb69a30d", size = 2344690, upload-time = "2025-08-27T16:38:49.723Z" }, - { url = "https://files.pythonhosted.org/packages/c1/8f/b7eefc274fcf370911e292e95565c8253b0b87c82a53919ab3c795a4f50e/fonttools-4.59.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5729e12a982dba3eeae650de48b06f3b9ddb51e9aee2fcaf195b7d09a96250e2", size = 5026910, upload-time = "2025-08-27T16:38:51.904Z" }, - { url = "https://files.pythonhosted.org/packages/69/95/864726eaa8f9d4e053d0c462e64d5830ec7c599cbdf1db9e40f25ca3972e/fonttools-4.59.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c52694eae5d652361d59ecdb5a2246bff7cff13b6367a12da8499e9df56d148d", size = 4971031, upload-time = "2025-08-27T16:38:53.676Z" }, - { url = "https://files.pythonhosted.org/packages/24/4c/b8c4735ebdea20696277c70c79e0de615dbe477834e5a7c2569aa1db4033/fonttools-4.59.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f1f1bbc23ba1312bd8959896f46f667753b90216852d2a8cfa2d07e0cb234144", size = 5006112, upload-time = "2025-08-27T16:38:55.69Z" }, - { url = "https://files.pythonhosted.org/packages/3b/23/f9ea29c292aa2fc1ea381b2e5621ac436d5e3e0a5dee24ffe5404e58eae8/fonttools-4.59.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1a1bfe5378962825dabe741720885e8b9ae9745ec7ecc4a5ec1f1ce59a6062bf", size = 5117671, upload-time = "2025-08-27T16:38:58.984Z" }, - { url = "https://files.pythonhosted.org/packages/ba/07/cfea304c555bf06e86071ff2a3916bc90f7c07ec85b23bab758d4908c33d/fonttools-4.59.2-cp311-cp311-win32.whl", hash = "sha256:e937790f3c2c18a1cbc7da101550a84319eb48023a715914477d2e7faeaba570", size = 2218157, upload-time = "2025-08-27T16:39:00.75Z" }, - { url = "https://files.pythonhosted.org/packages/d7/de/35d839aa69db737a3f9f3a45000ca24721834d40118652a5775d5eca8ebb/fonttools-4.59.2-cp311-cp311-win_amd64.whl", hash = "sha256:9836394e2f4ce5f9c0a7690ee93bd90aa1adc6b054f1a57b562c5d242c903104", size = 2265846, upload-time = "2025-08-27T16:39:02.453Z" }, - { url = "https://files.pythonhosted.org/packages/ba/3d/1f45db2df51e7bfa55492e8f23f383d372200be3a0ded4bf56a92753dd1f/fonttools-4.59.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:82906d002c349cad647a7634b004825a7335f8159d0d035ae89253b4abf6f3ea", size = 2769711, upload-time = "2025-08-27T16:39:04.423Z" }, - { url = "https://files.pythonhosted.org/packages/29/df/cd236ab32a8abfd11558f296e064424258db5edefd1279ffdbcfd4fd8b76/fonttools-4.59.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a10c1bd7644dc58f8862d8ba0cf9fb7fef0af01ea184ba6ce3f50ab7dfe74d5a", size = 2340225, upload-time = "2025-08-27T16:39:06.143Z" }, - { url = "https://files.pythonhosted.org/packages/98/12/b6f9f964fe6d4b4dd4406bcbd3328821c3de1f909ffc3ffa558fe72af48c/fonttools-4.59.2-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:738f31f23e0339785fd67652a94bc69ea49e413dfdb14dcb8c8ff383d249464e", size = 4912766, upload-time = "2025-08-27T16:39:08.138Z" }, - { url = "https://files.pythonhosted.org/packages/73/78/82bde2f2d2c306ef3909b927363170b83df96171f74e0ccb47ad344563cd/fonttools-4.59.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ec99f9bdfee9cdb4a9172f9e8fd578cce5feb231f598909e0aecf5418da4f25", size = 4955178, upload-time = "2025-08-27T16:39:10.094Z" }, - { url = "https://files.pythonhosted.org/packages/92/77/7de766afe2d31dda8ee46d7e479f35c7d48747e558961489a2d6e3a02bd4/fonttools-4.59.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0476ea74161322e08c7a982f83558a2b81b491509984523a1a540baf8611cc31", size = 4897898, upload-time = "2025-08-27T16:39:12.087Z" }, - { url = "https://files.pythonhosted.org/packages/c5/77/ce0e0b905d62a06415fda9f2b2e109a24a5db54a59502b769e9e297d2242/fonttools-4.59.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:95922a922daa1f77cc72611747c156cfb38030ead72436a2c551d30ecef519b9", size = 5049144, upload-time = "2025-08-27T16:39:13.84Z" }, - { url = "https://files.pythonhosted.org/packages/d9/ea/870d93aefd23fff2e07cbeebdc332527868422a433c64062c09d4d5e7fe6/fonttools-4.59.2-cp312-cp312-win32.whl", hash = "sha256:39ad9612c6a622726a6a130e8ab15794558591f999673f1ee7d2f3d30f6a3e1c", size = 2206473, upload-time = "2025-08-27T16:39:15.854Z" }, - { url = "https://files.pythonhosted.org/packages/61/c4/e44bad000c4a4bb2e9ca11491d266e857df98ab6d7428441b173f0fe2517/fonttools-4.59.2-cp312-cp312-win_amd64.whl", hash = "sha256:980fd7388e461b19a881d35013fec32c713ffea1fc37aef2f77d11f332dfd7da", size = 2254706, upload-time = "2025-08-27T16:39:17.893Z" }, - { url = "https://files.pythonhosted.org/packages/13/7b/d0d3b9431642947b5805201fbbbe938a47b70c76685ef1f0cb5f5d7140d6/fonttools-4.59.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:381bde13216ba09489864467f6bc0c57997bd729abfbb1ce6f807ba42c06cceb", size = 2761563, upload-time = "2025-08-27T16:39:20.286Z" }, - { url = "https://files.pythonhosted.org/packages/76/be/fc5fe58dd76af7127b769b68071dbc32d4b95adc8b58d1d28d42d93c90f2/fonttools-4.59.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f33839aa091f7eef4e9078f5b7ab1b8ea4b1d8a50aeaef9fdb3611bba80869ec", size = 2335671, upload-time = "2025-08-27T16:39:22.027Z" }, - { url = "https://files.pythonhosted.org/packages/f2/9f/bf231c2a3fac99d1d7f1d89c76594f158693f981a4aa02be406e9f036832/fonttools-4.59.2-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6235fc06bcbdb40186f483ba9d5d68f888ea68aa3c8dac347e05a7c54346fbc8", size = 4893967, upload-time = "2025-08-27T16:39:23.664Z" }, - { url = "https://files.pythonhosted.org/packages/26/a9/d46d2ad4fcb915198504d6727f83aa07f46764c64f425a861aa38756c9fd/fonttools-4.59.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:83ad6e5d06ef3a2884c4fa6384a20d6367b5cfe560e3b53b07c9dc65a7020e73", size = 4951986, upload-time = "2025-08-27T16:39:25.379Z" }, - { url = "https://files.pythonhosted.org/packages/07/90/1cc8d7dd8f707dfeeca472b82b898d3add0ebe85b1f645690dcd128ee63f/fonttools-4.59.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d029804c70fddf90be46ed5305c136cae15800a2300cb0f6bba96d48e770dde0", size = 4891630, upload-time = "2025-08-27T16:39:27.494Z" }, - { url = "https://files.pythonhosted.org/packages/d8/04/f0345b0d9fe67d65aa8d3f2d4cbf91d06f111bc7b8d802e65914eb06194d/fonttools-4.59.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:95807a3b5e78f2714acaa26a33bc2143005cc05c0217b322361a772e59f32b89", size = 5035116, upload-time = "2025-08-27T16:39:29.406Z" }, - { url = "https://files.pythonhosted.org/packages/d7/7d/5ba5eefffd243182fbd067cdbfeb12addd4e5aec45011b724c98a344ea33/fonttools-4.59.2-cp313-cp313-win32.whl", hash = "sha256:b3ebda00c3bb8f32a740b72ec38537d54c7c09f383a4cfefb0b315860f825b08", size = 2204907, upload-time = "2025-08-27T16:39:31.42Z" }, - { url = "https://files.pythonhosted.org/packages/ea/a9/be7219fc64a6026cc0aded17fa3720f9277001c185434230bd351bf678e6/fonttools-4.59.2-cp313-cp313-win_amd64.whl", hash = "sha256:a72155928d7053bbde499d32a9c77d3f0f3d29ae72b5a121752481bcbd71e50f", size = 2253742, upload-time = "2025-08-27T16:39:33.079Z" }, - { url = "https://files.pythonhosted.org/packages/fc/c7/486580d00be6fa5d45e41682e5ffa5c809f3d25773c6f39628d60f333521/fonttools-4.59.2-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:d09e487d6bfbe21195801323ba95c91cb3523f0fcc34016454d4d9ae9eaa57fe", size = 2762444, upload-time = "2025-08-27T16:39:34.759Z" }, - { url = "https://files.pythonhosted.org/packages/d3/9b/950ea9b7b764ceb8d18645c62191e14ce62124d8e05cb32a4dc5e65fde0b/fonttools-4.59.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:dec2f22486d7781087b173799567cffdcc75e9fb2f1c045f05f8317ccce76a3e", size = 2333256, upload-time = "2025-08-27T16:39:40.777Z" }, - { url = "https://files.pythonhosted.org/packages/9b/4d/8ee9d563126de9002eede950cde0051be86cc4e8c07c63eca0c9fc95734a/fonttools-4.59.2-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:1647201af10993090120da2e66e9526c4e20e88859f3e34aa05b8c24ded2a564", size = 4834846, upload-time = "2025-08-27T16:39:42.885Z" }, - { url = "https://files.pythonhosted.org/packages/03/26/f26d947b0712dce3d118e92ce30ca88f98938b066498f60d0ee000a892ae/fonttools-4.59.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:47742c33fe65f41eabed36eec2d7313a8082704b7b808752406452f766c573fc", size = 4930871, upload-time = "2025-08-27T16:39:44.818Z" }, - { url = "https://files.pythonhosted.org/packages/fc/7f/ebe878061a5a5e6b6502f0548489e01100f7e6c0049846e6546ba19a3ab4/fonttools-4.59.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:92ac2d45794f95d1ad4cb43fa07e7e3776d86c83dc4b9918cf82831518165b4b", size = 4876971, upload-time = "2025-08-27T16:39:47.027Z" }, - { url = "https://files.pythonhosted.org/packages/eb/0d/0d22e3a20ac566836098d30718092351935487e3271fd57385db1adb2fde/fonttools-4.59.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:fa9ecaf2dcef8941fb5719e16322345d730f4c40599bbf47c9753de40eb03882", size = 4987478, upload-time = "2025-08-27T16:39:48.774Z" }, - { url = "https://files.pythonhosted.org/packages/3b/a3/960cc83182a408ffacc795e61b5f698c6f7b0cfccf23da4451c39973f3c8/fonttools-4.59.2-cp314-cp314-win32.whl", hash = "sha256:a8d40594982ed858780e18a7e4c80415af65af0f22efa7de26bdd30bf24e1e14", size = 2208640, upload-time = "2025-08-27T16:39:50.592Z" }, - { url = "https://files.pythonhosted.org/packages/d8/74/55e5c57c414fa3965fee5fc036ed23f26a5c4e9e10f7f078a54ff9c7dfb7/fonttools-4.59.2-cp314-cp314-win_amd64.whl", hash = "sha256:9cde8b6a6b05f68516573523f2013a3574cb2c75299d7d500f44de82ba947b80", size = 2258457, upload-time = "2025-08-27T16:39:52.611Z" }, - { url = "https://files.pythonhosted.org/packages/e1/dc/8e4261dc591c5cfee68fecff3ffee2a9b29e1edc4c4d9cbafdc5aefe74ee/fonttools-4.59.2-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:036cd87a2dbd7ef72f7b68df8314ced00b8d9973aee296f2464d06a836aeb9a9", size = 2829901, upload-time = "2025-08-27T16:39:55.014Z" }, - { url = "https://files.pythonhosted.org/packages/fb/05/331538dcf21fd6331579cd628268150e85210d0d2bdae20f7598c2b36c05/fonttools-4.59.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:14870930181493b1d740b6f25483e20185e5aea58aec7d266d16da7be822b4bb", size = 2362717, upload-time = "2025-08-27T16:39:56.843Z" }, - { url = "https://files.pythonhosted.org/packages/60/ae/d26428ca9ede809c0a93f0af91f44c87433dc0251e2aec333da5ed00d38f/fonttools-4.59.2-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7ff58ea1eb8fc7e05e9a949419f031890023f8785c925b44d6da17a6a7d6e85d", size = 4835120, upload-time = "2025-08-27T16:39:59.06Z" }, - { url = "https://files.pythonhosted.org/packages/07/c4/0f6ac15895de509e07688cb1d45f1ae583adbaa0fa5a5699d73f3bd58ca0/fonttools-4.59.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6dee142b8b3096514c96ad9e2106bf039e2fe34a704c587585b569a36df08c3c", size = 5071115, upload-time = "2025-08-27T16:40:01.009Z" }, - { url = "https://files.pythonhosted.org/packages/b2/b6/147a711b7ecf7ea39f9da9422a55866f6dd5747c2f36b3b0a7a7e0c6820b/fonttools-4.59.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8991bdbae39cf78bcc9cd3d81f6528df1f83f2e7c23ccf6f990fa1f0b6e19708", size = 4943905, upload-time = "2025-08-27T16:40:03.179Z" }, - { url = "https://files.pythonhosted.org/packages/5b/4e/2ab19006646b753855e2b02200fa1cabb75faa4eeca4ef289f269a936974/fonttools-4.59.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:53c1a411b7690042535a4f0edf2120096a39a506adeb6c51484a232e59f2aa0c", size = 4960313, upload-time = "2025-08-27T16:40:05.45Z" }, - { url = "https://files.pythonhosted.org/packages/98/3d/df77907e5be88adcca93cc2cee00646d039da220164be12bee028401e1cf/fonttools-4.59.2-cp314-cp314t-win32.whl", hash = "sha256:59d85088e29fa7a8f87d19e97a1beae2a35821ee48d8ef6d2c4f965f26cb9f8a", size = 2269719, upload-time = "2025-08-27T16:40:07.553Z" }, - { url = "https://files.pythonhosted.org/packages/2d/a0/d4c4bc5b50275449a9a908283b567caa032a94505fe1976e17f994faa6be/fonttools-4.59.2-cp314-cp314t-win_amd64.whl", hash = "sha256:7ad5d8d8cc9e43cb438b3eb4a0094dd6d4088daa767b0a24d52529361fd4c199", size = 2333169, upload-time = "2025-08-27T16:40:09.656Z" }, - { url = "https://files.pythonhosted.org/packages/65/a4/d2f7be3c86708912c02571db0b550121caab8cd88a3c0aacb9cfa15ea66e/fonttools-4.59.2-py3-none-any.whl", hash = "sha256:8bd0f759020e87bb5d323e6283914d9bf4ae35a7307dafb2cbd1e379e720ad37", size = 1132315, upload-time = "2025-08-27T16:40:28.984Z" }, +version = "4.61.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/ca/cf17b88a8df95691275a3d77dc0a5ad9907f328ae53acbe6795da1b2f5ed/fonttools-4.61.1.tar.gz", hash = "sha256:6675329885c44657f826ef01d9e4fb33b9158e9d93c537d84ad8399539bc6f69", size = 3565756, upload-time = "2025-12-12T17:31:24.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/94/8a28707adb00bed1bf22dac16ccafe60faf2ade353dcb32c3617ee917307/fonttools-4.61.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c7db70d57e5e1089a274cbb2b1fd635c9a24de809a231b154965d415d6c6d24", size = 2854799, upload-time = "2025-12-12T17:29:27.5Z" }, + { url = "https://files.pythonhosted.org/packages/94/93/c2e682faaa5ee92034818d8f8a8145ae73eb83619600495dcf8503fa7771/fonttools-4.61.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5fe9fd43882620017add5eabb781ebfbc6998ee49b35bd7f8f79af1f9f99a958", size = 2403032, upload-time = "2025-12-12T17:29:30.115Z" }, + { url = "https://files.pythonhosted.org/packages/f1/62/1748f7e7e1ee41aa52279fd2e3a6d0733dc42a673b16932bad8e5d0c8b28/fonttools-4.61.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8db08051fc9e7d8bc622f2112511b8107d8f27cd89e2f64ec45e9825e8288da", size = 4897863, upload-time = "2025-12-12T17:29:32.535Z" }, + { url = "https://files.pythonhosted.org/packages/69/69/4ca02ee367d2c98edcaeb83fc278d20972502ee071214ad9d8ca85e06080/fonttools-4.61.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a76d4cb80f41ba94a6691264be76435e5f72f2cb3cab0b092a6212855f71c2f6", size = 4859076, upload-time = "2025-12-12T17:29:34.907Z" }, + { url = "https://files.pythonhosted.org/packages/8c/f5/660f9e3cefa078861a7f099107c6d203b568a6227eef163dd173bfc56bdc/fonttools-4.61.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a13fc8aeb24bad755eea8f7f9d409438eb94e82cf86b08fe77a03fbc8f6a96b1", size = 4875623, upload-time = "2025-12-12T17:29:37.33Z" }, + { url = "https://files.pythonhosted.org/packages/63/d1/9d7c5091d2276ed47795c131c1bf9316c3c1ab2789c22e2f59e0572ccd38/fonttools-4.61.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b846a1fcf8beadeb9ea4f44ec5bdde393e2f1569e17d700bfc49cd69bde75881", size = 4993327, upload-time = "2025-12-12T17:29:39.781Z" }, + { url = "https://files.pythonhosted.org/packages/6f/2d/28def73837885ae32260d07660a052b99f0aa00454867d33745dfe49dbf0/fonttools-4.61.1-cp310-cp310-win32.whl", hash = "sha256:78a7d3ab09dc47ac1a363a493e6112d8cabed7ba7caad5f54dbe2f08676d1b47", size = 1502180, upload-time = "2025-12-12T17:29:42.217Z" }, + { url = "https://files.pythonhosted.org/packages/63/fa/bfdc98abb4dd2bd491033e85e3ba69a2313c850e759a6daa014bc9433b0f/fonttools-4.61.1-cp310-cp310-win_amd64.whl", hash = "sha256:eff1ac3cc66c2ac7cda1e64b4e2f3ffef474b7335f92fc3833fc632d595fcee6", size = 1550654, upload-time = "2025-12-12T17:29:44.564Z" }, + { url = "https://files.pythonhosted.org/packages/69/12/bf9f4eaa2fad039356cc627587e30ed008c03f1cebd3034376b5ee8d1d44/fonttools-4.61.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c6604b735bb12fef8e0efd5578c9fb5d3d8532d5001ea13a19cddf295673ee09", size = 2852213, upload-time = "2025-12-12T17:29:46.675Z" }, + { url = "https://files.pythonhosted.org/packages/ac/49/4138d1acb6261499bedde1c07f8c2605d1d8f9d77a151e5507fd3ef084b6/fonttools-4.61.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5ce02f38a754f207f2f06557523cd39a06438ba3aafc0639c477ac409fc64e37", size = 2401689, upload-time = "2025-12-12T17:29:48.769Z" }, + { url = "https://files.pythonhosted.org/packages/e5/fe/e6ce0fe20a40e03aef906af60aa87668696f9e4802fa283627d0b5ed777f/fonttools-4.61.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:77efb033d8d7ff233385f30c62c7c79271c8885d5c9657d967ede124671bbdfb", size = 5058809, upload-time = "2025-12-12T17:29:51.701Z" }, + { url = "https://files.pythonhosted.org/packages/79/61/1ca198af22f7dd22c17ab86e9024ed3c06299cfdb08170640e9996d501a0/fonttools-4.61.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:75c1a6dfac6abd407634420c93864a1e274ebc1c7531346d9254c0d8f6ca00f9", size = 5036039, upload-time = "2025-12-12T17:29:53.659Z" }, + { url = "https://files.pythonhosted.org/packages/99/cc/fa1801e408586b5fce4da9f5455af8d770f4fc57391cd5da7256bb364d38/fonttools-4.61.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0de30bfe7745c0d1ffa2b0b7048fb7123ad0d71107e10ee090fa0b16b9452e87", size = 5034714, upload-time = "2025-12-12T17:29:55.592Z" }, + { url = "https://files.pythonhosted.org/packages/bf/aa/b7aeafe65adb1b0a925f8f25725e09f078c635bc22754f3fecb7456955b0/fonttools-4.61.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:58b0ee0ab5b1fc9921eccfe11d1435added19d6494dde14e323f25ad2bc30c56", size = 5158648, upload-time = "2025-12-12T17:29:57.861Z" }, + { url = "https://files.pythonhosted.org/packages/99/f9/08ea7a38663328881384c6e7777bbefc46fd7d282adfd87a7d2b84ec9d50/fonttools-4.61.1-cp311-cp311-win32.whl", hash = "sha256:f79b168428351d11e10c5aeb61a74e1851ec221081299f4cf56036a95431c43a", size = 2280681, upload-time = "2025-12-12T17:29:59.943Z" }, + { url = "https://files.pythonhosted.org/packages/07/ad/37dd1ae5fa6e01612a1fbb954f0927681f282925a86e86198ccd7b15d515/fonttools-4.61.1-cp311-cp311-win_amd64.whl", hash = "sha256:fe2efccb324948a11dd09d22136fe2ac8a97d6c1347cf0b58a911dcd529f66b7", size = 2331951, upload-time = "2025-12-12T17:30:02.254Z" }, + { url = "https://files.pythonhosted.org/packages/6f/16/7decaa24a1bd3a70c607b2e29f0adc6159f36a7e40eaba59846414765fd4/fonttools-4.61.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f3cb4a569029b9f291f88aafc927dd53683757e640081ca8c412781ea144565e", size = 2851593, upload-time = "2025-12-12T17:30:04.225Z" }, + { url = "https://files.pythonhosted.org/packages/94/98/3c4cb97c64713a8cf499b3245c3bf9a2b8fd16a3e375feff2aed78f96259/fonttools-4.61.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41a7170d042e8c0024703ed13b71893519a1a6d6e18e933e3ec7507a2c26a4b2", size = 2400231, upload-time = "2025-12-12T17:30:06.47Z" }, + { url = "https://files.pythonhosted.org/packages/b7/37/82dbef0f6342eb01f54bca073ac1498433d6ce71e50c3c3282b655733b31/fonttools-4.61.1-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:10d88e55330e092940584774ee5e8a6971b01fc2f4d3466a1d6c158230880796", size = 4954103, upload-time = "2025-12-12T17:30:08.432Z" }, + { url = "https://files.pythonhosted.org/packages/6c/44/f3aeac0fa98e7ad527f479e161aca6c3a1e47bb6996b053d45226fe37bf2/fonttools-4.61.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:15acc09befd16a0fb8a8f62bc147e1a82817542d72184acca9ce6e0aeda9fa6d", size = 5004295, upload-time = "2025-12-12T17:30:10.56Z" }, + { url = "https://files.pythonhosted.org/packages/14/e8/7424ced75473983b964d09f6747fa09f054a6d656f60e9ac9324cf40c743/fonttools-4.61.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e6bcdf33aec38d16508ce61fd81838f24c83c90a1d1b8c68982857038673d6b8", size = 4944109, upload-time = "2025-12-12T17:30:12.874Z" }, + { url = "https://files.pythonhosted.org/packages/c8/8b/6391b257fa3d0b553d73e778f953a2f0154292a7a7a085e2374b111e5410/fonttools-4.61.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5fade934607a523614726119164ff621e8c30e8fa1ffffbbd358662056ba69f0", size = 5093598, upload-time = "2025-12-12T17:30:15.79Z" }, + { url = "https://files.pythonhosted.org/packages/d9/71/fd2ea96cdc512d92da5678a1c98c267ddd4d8c5130b76d0f7a80f9a9fde8/fonttools-4.61.1-cp312-cp312-win32.whl", hash = "sha256:75da8f28eff26defba42c52986de97b22106cb8f26515b7c22443ebc9c2d3261", size = 2269060, upload-time = "2025-12-12T17:30:18.058Z" }, + { url = "https://files.pythonhosted.org/packages/80/3b/a3e81b71aed5a688e89dfe0e2694b26b78c7d7f39a5ffd8a7d75f54a12a8/fonttools-4.61.1-cp312-cp312-win_amd64.whl", hash = "sha256:497c31ce314219888c0e2fce5ad9178ca83fe5230b01a5006726cdf3ac9f24d9", size = 2319078, upload-time = "2025-12-12T17:30:22.862Z" }, + { url = "https://files.pythonhosted.org/packages/4b/cf/00ba28b0990982530addb8dc3e9e6f2fa9cb5c20df2abdda7baa755e8fe1/fonttools-4.61.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c56c488ab471628ff3bfa80964372fc13504ece601e0d97a78ee74126b2045c", size = 2846454, upload-time = "2025-12-12T17:30:24.938Z" }, + { url = "https://files.pythonhosted.org/packages/5a/ca/468c9a8446a2103ae645d14fee3f610567b7042aba85031c1c65e3ef7471/fonttools-4.61.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dc492779501fa723b04d0ab1f5be046797fee17d27700476edc7ee9ae535a61e", size = 2398191, upload-time = "2025-12-12T17:30:27.343Z" }, + { url = "https://files.pythonhosted.org/packages/a3/4b/d67eedaed19def5967fade3297fed8161b25ba94699efc124b14fb68cdbc/fonttools-4.61.1-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:64102ca87e84261419c3747a0d20f396eb024bdbeb04c2bfb37e2891f5fadcb5", size = 4928410, upload-time = "2025-12-12T17:30:29.771Z" }, + { url = "https://files.pythonhosted.org/packages/b0/8d/6fb3494dfe61a46258cd93d979cf4725ded4eb46c2a4ca35e4490d84daea/fonttools-4.61.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c1b526c8d3f615a7b1867f38a9410849c8f4aef078535742198e942fba0e9bd", size = 4984460, upload-time = "2025-12-12T17:30:32.073Z" }, + { url = "https://files.pythonhosted.org/packages/f7/f1/a47f1d30b3dc00d75e7af762652d4cbc3dff5c2697a0dbd5203c81afd9c3/fonttools-4.61.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:41ed4b5ec103bd306bb68f81dc166e77409e5209443e5773cb4ed837bcc9b0d3", size = 4925800, upload-time = "2025-12-12T17:30:34.339Z" }, + { url = "https://files.pythonhosted.org/packages/a7/01/e6ae64a0981076e8a66906fab01539799546181e32a37a0257b77e4aa88b/fonttools-4.61.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b501c862d4901792adaec7c25b1ecc749e2662543f68bb194c42ba18d6eec98d", size = 5067859, upload-time = "2025-12-12T17:30:36.593Z" }, + { url = "https://files.pythonhosted.org/packages/73/aa/28e40b8d6809a9b5075350a86779163f074d2b617c15d22343fce81918db/fonttools-4.61.1-cp313-cp313-win32.whl", hash = "sha256:4d7092bb38c53bbc78e9255a59158b150bcdc115a1e3b3ce0b5f267dc35dd63c", size = 2267821, upload-time = "2025-12-12T17:30:38.478Z" }, + { url = "https://files.pythonhosted.org/packages/1a/59/453c06d1d83dc0951b69ef692d6b9f1846680342927df54e9a1ca91c6f90/fonttools-4.61.1-cp313-cp313-win_amd64.whl", hash = "sha256:21e7c8d76f62ab13c9472ccf74515ca5b9a761d1bde3265152a6dc58700d895b", size = 2318169, upload-time = "2025-12-12T17:30:40.951Z" }, + { url = "https://files.pythonhosted.org/packages/32/8f/4e7bf82c0cbb738d3c2206c920ca34ca74ef9dabde779030145d28665104/fonttools-4.61.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fff4f534200a04b4a36e7ae3cb74493afe807b517a09e99cb4faa89a34ed6ecd", size = 2846094, upload-time = "2025-12-12T17:30:43.511Z" }, + { url = "https://files.pythonhosted.org/packages/71/09/d44e45d0a4f3a651f23a1e9d42de43bc643cce2971b19e784cc67d823676/fonttools-4.61.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d9203500f7c63545b4ce3799319fe4d9feb1a1b89b28d3cb5abd11b9dd64147e", size = 2396589, upload-time = "2025-12-12T17:30:45.681Z" }, + { url = "https://files.pythonhosted.org/packages/89/18/58c64cafcf8eb677a99ef593121f719e6dcbdb7d1c594ae5a10d4997ca8a/fonttools-4.61.1-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fa646ecec9528bef693415c79a86e733c70a4965dd938e9a226b0fc64c9d2e6c", size = 4877892, upload-time = "2025-12-12T17:30:47.709Z" }, + { url = "https://files.pythonhosted.org/packages/8a/ec/9e6b38c7ba1e09eb51db849d5450f4c05b7e78481f662c3b79dbde6f3d04/fonttools-4.61.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:11f35ad7805edba3aac1a3710d104592df59f4b957e30108ae0ba6c10b11dd75", size = 4972884, upload-time = "2025-12-12T17:30:49.656Z" }, + { url = "https://files.pythonhosted.org/packages/5e/87/b5339da8e0256734ba0dbbf5b6cdebb1dd79b01dc8c270989b7bcd465541/fonttools-4.61.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b931ae8f62db78861b0ff1ac017851764602288575d65b8e8ff1963fed419063", size = 4924405, upload-time = "2025-12-12T17:30:51.735Z" }, + { url = "https://files.pythonhosted.org/packages/0b/47/e3409f1e1e69c073a3a6fd8cb886eb18c0bae0ee13db2c8d5e7f8495e8b7/fonttools-4.61.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b148b56f5de675ee16d45e769e69f87623a4944f7443850bf9a9376e628a89d2", size = 5035553, upload-time = "2025-12-12T17:30:54.823Z" }, + { url = "https://files.pythonhosted.org/packages/bf/b6/1f6600161b1073a984294c6c031e1a56ebf95b6164249eecf30012bb2e38/fonttools-4.61.1-cp314-cp314-win32.whl", hash = "sha256:9b666a475a65f4e839d3d10473fad6d47e0a9db14a2f4a224029c5bfde58ad2c", size = 2271915, upload-time = "2025-12-12T17:30:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/52/7b/91e7b01e37cc8eb0e1f770d08305b3655e4f002fc160fb82b3390eabacf5/fonttools-4.61.1-cp314-cp314-win_amd64.whl", hash = "sha256:4f5686e1fe5fce75d82d93c47a438a25bf0d1319d2843a926f741140b2b16e0c", size = 2323487, upload-time = "2025-12-12T17:30:59.804Z" }, + { url = "https://files.pythonhosted.org/packages/39/5c/908ad78e46c61c3e3ed70c3b58ff82ab48437faf84ec84f109592cabbd9f/fonttools-4.61.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:e76ce097e3c57c4bcb67c5aa24a0ecdbd9f74ea9219997a707a4061fbe2707aa", size = 2929571, upload-time = "2025-12-12T17:31:02.574Z" }, + { url = "https://files.pythonhosted.org/packages/bd/41/975804132c6dea64cdbfbaa59f3518a21c137a10cccf962805b301ac6ab2/fonttools-4.61.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:9cfef3ab326780c04d6646f68d4b4742aae222e8b8ea1d627c74e38afcbc9d91", size = 2435317, upload-time = "2025-12-12T17:31:04.974Z" }, + { url = "https://files.pythonhosted.org/packages/b0/5a/aef2a0a8daf1ebaae4cfd83f84186d4a72ee08fd6a8451289fcd03ffa8a4/fonttools-4.61.1-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a75c301f96db737e1c5ed5fd7d77d9c34466de16095a266509e13da09751bd19", size = 4882124, upload-time = "2025-12-12T17:31:07.456Z" }, + { url = "https://files.pythonhosted.org/packages/80/33/d6db3485b645b81cea538c9d1c9219d5805f0877fda18777add4671c5240/fonttools-4.61.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:91669ccac46bbc1d09e9273546181919064e8df73488ea087dcac3e2968df9ba", size = 5100391, upload-time = "2025-12-12T17:31:09.732Z" }, + { url = "https://files.pythonhosted.org/packages/6c/d6/675ba631454043c75fcf76f0ca5463eac8eb0666ea1d7badae5fea001155/fonttools-4.61.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c33ab3ca9d3ccd581d58e989d67554e42d8d4ded94ab3ade3508455fe70e65f7", size = 4978800, upload-time = "2025-12-12T17:31:11.681Z" }, + { url = "https://files.pythonhosted.org/packages/7f/33/d3ec753d547a8d2bdaedd390d4a814e8d5b45a093d558f025c6b990b554c/fonttools-4.61.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:664c5a68ec406f6b1547946683008576ef8b38275608e1cee6c061828171c118", size = 5006426, upload-time = "2025-12-12T17:31:13.764Z" }, + { url = "https://files.pythonhosted.org/packages/b4/40/cc11f378b561a67bea850ab50063366a0d1dd3f6d0a30ce0f874b0ad5664/fonttools-4.61.1-cp314-cp314t-win32.whl", hash = "sha256:aed04cabe26f30c1647ef0e8fbb207516fd40fe9472e9439695f5c6998e60ac5", size = 2335377, upload-time = "2025-12-12T17:31:16.49Z" }, + { url = "https://files.pythonhosted.org/packages/e4/ff/c9a2b66b39f8628531ea58b320d66d951267c98c6a38684daa8f50fb02f8/fonttools-4.61.1-cp314-cp314t-win_amd64.whl", hash = "sha256:2180f14c141d2f0f3da43f3a81bc8aa4684860f6b0e6f9e165a4831f24e6a23b", size = 2400613, upload-time = "2025-12-12T17:31:18.769Z" }, + { url = "https://files.pythonhosted.org/packages/c7/4e/ce75a57ff3aebf6fc1f4e9d508b8e5810618a33d900ad6c19eb30b290b97/fonttools-4.61.1-py3-none-any.whl", hash = "sha256:17d2bf5d541add43822bcf0c43d7d847b160c9bb01d15d5007d84e2217aaa371", size = 1148996, upload-time = "2025-12-12T17:31:21.03Z" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, ] [[package]] name = "iniconfig" -version = "2.1.0" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, +] + +[[package]] +name = "isort" +version = "7.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 4793, upload-time = "2025-03-19T20:09:59.721Z" } +sdist = { url = "https://files.pythonhosted.org/packages/63/53/4f3c058e3bace40282876f9b553343376ee687f3c35a525dc79dbd450f88/isort-7.0.0.tar.gz", hash = "sha256:5513527951aadb3ac4292a41a16cbc50dd1642432f5e8c20057d414bdafb4187", size = 805049, upload-time = "2025-10-11T13:30:59.107Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050, upload-time = "2025-03-19T20:10:01.071Z" }, + { url = "https://files.pythonhosted.org/packages/7f/ed/e3705d6d02b4f7aea715a353c8ce193efd0b5db13e204df895d38734c244/isort-7.0.0-py3-none-any.whl", hash = "sha256:1bcabac8bc3c36c7fb7b98a76c8abb18e0f841a3ba81decac7691008592499c1", size = 94672, upload-time = "2025-10-11T13:30:57.665Z" }, ] [[package]] name = "jellyfish" -version = "1.2.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7c/29/c0d39be806b5d5c201e9bf5265e43cf0e88bd63fb4e38edfc7a212ca38a7/jellyfish-1.2.0.tar.gz", hash = "sha256:5c7d73db4045dcc53b6efbfea21f3d3da432d3e052dc51827574d1a447fc23b4", size = 364693, upload-time = "2025-03-31T15:43:18.43Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0f/9c/1d3102a61776d44e8028af5a38a2638a6d4ad8ad719cf48a6bfe6b8ce894/jellyfish-1.2.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:50b6d2a123d3e0929cf136c6c26a6774338be7eb9d140a94223f56e3339b2f80", size = 328461, upload-time = "2025-03-31T15:41:38.783Z" }, - { url = "https://files.pythonhosted.org/packages/04/77/5a4d5367eaabff85977fb3f322616f24d29d70d567fc0ea4f927317e81bd/jellyfish-1.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:baa1e44244cba9da6d67a50d3076dd7567e3b91caa9887bb68e20f321e0d2500", size = 325248, upload-time = "2025-03-31T15:41:42.344Z" }, - { url = "https://files.pythonhosted.org/packages/51/3d/c27b3ee999063caba206cf2f21542fe19d85e2d4ebe739e76a02b621a084/jellyfish-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65082288f76b3821e5cfeae6c2290621f9e8eff75e3fe2d90817dcd068c5bf36", size = 355959, upload-time = "2025-03-31T15:41:44.424Z" }, - { url = "https://files.pythonhosted.org/packages/51/de/874bb9fa8f1daf4723bdc9c8718951a4e0e1ca6361ff5c1a09b1ee76b55b/jellyfish-1.2.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4309d536a5427c008bab096fd38cb2d44c7e475c494b23f2554cfdcf8a19f7fb", size = 363956, upload-time = "2025-03-31T15:41:45.834Z" }, - { url = "https://files.pythonhosted.org/packages/48/08/fc3fd641dc09754a6986f3f00e625fd1aac89b1f012a1d4087c53391de64/jellyfish-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa0ac18693162b751bdd010a2c35136500a326b6a0bd0b18e6d973c524048ac7", size = 357026, upload-time = "2025-03-31T15:41:47.062Z" }, - { url = "https://files.pythonhosted.org/packages/7f/16/5466c0319a36f0b96f909e928e25f7ae311660903af57f382bf81a76bd45/jellyfish-1.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c19d70cfbfe4eb9c7c6a1df848cfa48f6e5166a3f23362a2c1d7a2e763674113", size = 533905, upload-time = "2025-03-31T15:41:48.188Z" }, - { url = "https://files.pythonhosted.org/packages/b3/70/0852e2b85b8114c564ad2d4d2d9e332feb84cef6719b7c197b74c0580a1c/jellyfish-1.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5616698941afc730aa6cc162a4686bda29aa8127d70bcb939321143b1170238a", size = 555397, upload-time = "2025-03-31T15:41:49.725Z" }, - { url = "https://files.pythonhosted.org/packages/39/f2/c54b7670ae67bb24fa87b34aa106385415a26a28c66731bbf4db520aea09/jellyfish-1.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b28ad8da20561f07ca4bf1297bd5519d8cd947b8b5593e00cc7ceb255b2a1d84", size = 527740, upload-time = "2025-03-31T15:41:51.875Z" }, - { url = "https://files.pythonhosted.org/packages/c7/bf/b0d88b6dab19789e5893064f83eb6a0b15498f46a887fcfa3a614f962d0a/jellyfish-1.2.0-cp310-cp310-win32.whl", hash = "sha256:6ec6db8301bf91de85ee5084a44f0b5d399cc030c86910730d5ae69f1e712438", size = 212500, upload-time = "2025-03-31T15:41:53.454Z" }, - { url = "https://files.pythonhosted.org/packages/c1/b9/a252acda71bd81314d43397f084eec6c2a58c69ca5afcb71ffe6941b6c66/jellyfish-1.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:8ed2393f6d0c7e8ec53ab0627dc81e1613bc2e76a9c30332197d0a1df5e39356", size = 217140, upload-time = "2025-03-31T15:41:54.662Z" }, - { url = "https://files.pythonhosted.org/packages/30/eb/17ca88570c3ac4144101d614cddbccd1effc25f812cbc4ab8ad15b75730e/jellyfish-1.2.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:b4f8ff3cda0e00f6f62fe98ffce28bd7f21d1d55875470f8275a2fdbd84cfb6a", size = 328511, upload-time = "2025-03-31T15:41:55.791Z" }, - { url = "https://files.pythonhosted.org/packages/1e/9a/521cbf0b77e86b2b3cda2b42b1afaf3498d4cc16b4240c6ff5b8941d8966/jellyfish-1.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:792cb481816626396892bccf53643ccc55a7f7c2b129de61360d01044a539afd", size = 325221, upload-time = "2025-03-31T15:41:57.064Z" }, - { url = "https://files.pythonhosted.org/packages/74/a0/344f432fc8a730dd896446164ed0843e388ed676c632536f6d1b1746c0af/jellyfish-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ca2c84d3aaeea4bd7c9bdb174229789e69c7dd58916b47813f52db3a1b62495", size = 355848, upload-time = "2025-03-31T15:41:58.554Z" }, - { url = "https://files.pythonhosted.org/packages/9f/8c/0fadfebdab24b7095531828e2757753525fa835a415c2a6694de9dae2339/jellyfish-1.2.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3ebc962fd90b2dcb33eb308e70c3a356a931c4b10c76d8d9d63df1d5dac42be4", size = 364054, upload-time = "2025-03-31T15:41:59.654Z" }, - { url = "https://files.pythonhosted.org/packages/ba/2b/e6ce825f2ae5638b7c6f8dfa675051424fcb45960a2759b332fd6be6dcb2/jellyfish-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0d765888bf186b75bf16b3d9a1b7f088f5f5ccbf62b414c25d92b404aad9c2a", size = 356926, upload-time = "2025-03-31T15:42:00.808Z" }, - { url = "https://files.pythonhosted.org/packages/45/4a/64e9f022df383651adb0b80a3473d31bf34f8ae79c9c27cea0a964ea008e/jellyfish-1.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:85c5eca0d56241d07a0a89f2896bc7d1ec66ee72ffa801847c70f404b0214fad", size = 533845, upload-time = "2025-03-31T15:42:02.264Z" }, - { url = "https://files.pythonhosted.org/packages/0a/d6/11178c93e59fad2ac9d1dbc750bc4f8d637a5e780ae8b4fd53b3d740b599/jellyfish-1.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:13d7d925760bd8c3fd8831fcc0ad5a32ceae82c66e8aa19df45082afe5c4be2a", size = 555528, upload-time = "2025-03-31T15:42:04.192Z" }, - { url = "https://files.pythonhosted.org/packages/e6/32/5be368336b901f792d137e1771e8446b102e6b6dbb5f82a2a92ef9467f0d/jellyfish-1.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ccc330b6104c87e22dbb22c2578abcf0e36d1346c1810eec3f67571089b36874", size = 527595, upload-time = "2025-03-31T15:42:05.361Z" }, - { url = "https://files.pythonhosted.org/packages/67/b2/6df2229e03f273f9b24cedea3174f5cb58b7d2856b8778913f4d44423f3d/jellyfish-1.2.0-cp311-cp311-win32.whl", hash = "sha256:75d131a51202e679b653507f99634bc13c4aa6a4afabe06a1c3d200f72e18b9b", size = 212604, upload-time = "2025-03-31T15:42:06.485Z" }, - { url = "https://files.pythonhosted.org/packages/9a/54/f1dca498a808e427374d3bd81832045f9cfbbecafbc7f49461a6425dfd0a/jellyfish-1.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:63f58a0a7c9c0bb9a69562d2b9dd1a3f6729e94b0dcb6adf54b45b4da853eb94", size = 217095, upload-time = "2025-03-31T15:42:07.627Z" }, - { url = "https://files.pythonhosted.org/packages/4a/d5/89424092e3d1e6948eb215fb1f58126fc8090989475f6cbc6545a0eae72c/jellyfish-1.2.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:088c9b7e7077802ce2254b876486ae3b49d81f4f07f6c692c612ba40e1a42177", size = 326154, upload-time = "2025-03-31T15:42:08.819Z" }, - { url = "https://files.pythonhosted.org/packages/91/af/881ef6fb6e2e534b7383c6ace369485e1c285dc70b9bab54e35796d4f1fd/jellyfish-1.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:393664438fbb98886f9c97675179d4b552b68c3d0099d4df3cdec6412deaeea0", size = 322983, upload-time = "2025-03-31T15:42:09.942Z" }, - { url = "https://files.pythonhosted.org/packages/1e/ee/d73ac46c3ad0f1d8b28de452b117080bab7d7a3565a05f1b34a5b6085f4e/jellyfish-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a54a83905596dd712948b6af7fccc2b28d37624bfc9eab4868518c3f8106c739", size = 355339, upload-time = "2025-03-31T15:42:11.04Z" }, - { url = "https://files.pythonhosted.org/packages/e4/1a/8952b21f9b52931c5997dc2d24b2a1660d76bb34aa69460b0d4e126501a9/jellyfish-1.2.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e2f68cdb689b59653fa70345c8fcb09bfee12d34c0f7ae223ce70fa5175cb2ee", size = 363903, upload-time = "2025-03-31T15:42:12.164Z" }, - { url = "https://files.pythonhosted.org/packages/25/df/bdeb876920dc26405e90a6abf014eff5a1892652a7875733ed0e91a0e424/jellyfish-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:019542af342973c537275b289c1e891fb2b62b011bfdb68c816da4527477b74d", size = 355931, upload-time = "2025-03-31T15:42:14.108Z" }, - { url = "https://files.pythonhosted.org/packages/dd/c3/cb05e3d092eb929d2043e4945d172f30781321d90b198a05316b8dfb97df/jellyfish-1.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:079ec6fceb5336e7c2f99b43ee035f85b39022db897c70e736439ed1d4fc8462", size = 533430, upload-time = "2025-03-31T15:42:15.559Z" }, - { url = "https://files.pythonhosted.org/packages/34/a0/af60a3d7ec0d7f537dd32efb485ed7969c0d8b3856cd3cc7445fa7b0bc3d/jellyfish-1.2.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:a5ddd20e6d87c7dc173717ffe0df0bba50aa0b0c51e3d57d6cce1706ea6a1167", size = 554656, upload-time = "2025-03-31T15:42:16.733Z" }, - { url = "https://files.pythonhosted.org/packages/8f/db/92026263a56dea6751d9935a4c41c78f5561aa49c6b20e068389b25e6bfb/jellyfish-1.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:08a1a3f6adc033eb3735a8ba121188a5d3fdc6630eec6a946c30260c1ac680ac", size = 526659, upload-time = "2025-03-31T15:42:17.864Z" }, - { url = "https://files.pythonhosted.org/packages/e6/4e/c8c546a422090eb75c232454465aefb49e1030fad043a99a73ba12f80fee/jellyfish-1.2.0-cp312-cp312-win32.whl", hash = "sha256:65ec39cfed29e475df33c9d7fc70d76eb39ce6dfb7fedf19599caff497a9b3c7", size = 212397, upload-time = "2025-03-31T15:42:19.056Z" }, - { url = "https://files.pythonhosted.org/packages/90/6d/5770b7fb1767c12559aabe2bf5f629bee8d738dbe110301c14aa276d2c8a/jellyfish-1.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:199baa59412723ef76126303fc236728b2613a4723fba83eede942c89e1dad1c", size = 216558, upload-time = "2025-03-31T15:42:20.173Z" }, - { url = "https://files.pythonhosted.org/packages/f0/4e/2f10011b5a80c56bb0f2775ee7283a3290fb9ec4e67c48c0342671a6d6e0/jellyfish-1.2.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:8b995bdf97d43cdca1e6bd5375f351bcb85c7f5e8760fe4a28c63eb0e6104075", size = 325372, upload-time = "2025-03-31T15:42:21.563Z" }, - { url = "https://files.pythonhosted.org/packages/f8/7e/e15034422abf21e28b43155d21f4e34ae7349fad6c682be12c739d79119b/jellyfish-1.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:559c1d6f17ba51639843b958a0d57ece5c4155e6b820c4acb3f3437437625ef3", size = 322333, upload-time = "2025-03-31T15:42:23.015Z" }, - { url = "https://files.pythonhosted.org/packages/0b/62/cdb56ed6641c5a23bb00c775ea54108423b40d2376bed186455cc39f4a0b/jellyfish-1.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4439f4066ccc5dd6a7a15cb06941f5150bab646201e9e014a7d34d65cbe89fe", size = 354567, upload-time = "2025-03-31T15:42:24.22Z" }, - { url = "https://files.pythonhosted.org/packages/e0/97/47830ff857307936313e345010cf7626e7b3a233549cfc258c7342553de4/jellyfish-1.2.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dbf866d2b967fd2d5380134fdcb47d4f113e24d659b46c38e55da80c215d2042", size = 363379, upload-time = "2025-03-31T15:42:25.407Z" }, - { url = "https://files.pythonhosted.org/packages/8e/95/4e3d5bac918aa7b0e1cebff39822add0844dbfc433870949dccc3df8aae3/jellyfish-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9290b82276bba1941ad0f98226f51b43aeef7bdedb927b9266516b4519b9012", size = 355215, upload-time = "2025-03-31T15:42:26.695Z" }, - { url = "https://files.pythonhosted.org/packages/6e/2f/1d7aa3b7dc3d7e6a7f9e832a98440d14641670394c11718f7584dab434b2/jellyfish-1.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:052345ded2b00104a50acbab35c671efe06f40790202f6a2fc279ad645f31ab2", size = 532669, upload-time = "2025-03-31T15:42:27.806Z" }, - { url = "https://files.pythonhosted.org/packages/f6/0e/d527f9425e9462463e3b0ae748ec39ec5a2ebaa829725ca8c09f8753e364/jellyfish-1.2.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:465dcf8b17162e3dae2cae0072b22ea9637e6ce8ddd8294181758437cd9c0673", size = 554223, upload-time = "2025-03-31T15:42:29.362Z" }, - { url = "https://files.pythonhosted.org/packages/04/71/533b48054f1ddab7d9b7ad3833a87963200c7aef7ce81e082379da6d1264/jellyfish-1.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ae5f2e3c5ef14cb5b86afe7ed4078e504f75dd61ca9d9560bef597f9d2237c63", size = 526103, upload-time = "2025-03-31T15:42:30.528Z" }, - { url = "https://files.pythonhosted.org/packages/f4/d7/6c5ce80088495b7bb002931d7d0a313143b45fa10e826f11aadd4a97ccdb/jellyfish-1.2.0-cp313-cp313-win32.whl", hash = "sha256:13ee212b6fa294a1b6306693a1553b760d876780e757b9f016010748fe811b4d", size = 212179, upload-time = "2025-03-31T15:42:31.628Z" }, - { url = "https://files.pythonhosted.org/packages/40/aa/332fd282668a353570bdad56d65f526bc28ab73da1a3dd99e670af687186/jellyfish-1.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:c8089e918ddb1abae946e92d053f646a7f686d0d051ef69cdfaa28b37352bbdf", size = 216066, upload-time = "2025-03-31T15:42:32.75Z" }, - { url = "https://files.pythonhosted.org/packages/a3/a3/ac72cdab59f0eb52eecda5f739ef69fa61ed6d5f7b0129043219e9ce8b58/jellyfish-1.2.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3c0d9d4136341c34ed0fb3fb406801d7a2724a1fa4996577822bc5e5b27870b4", size = 330579, upload-time = "2025-03-31T15:42:46.677Z" }, - { url = "https://files.pythonhosted.org/packages/3d/77/9a7734d7afb5ee349be7a627821d2bf5e84f2469010c9628d4bb21c813ec/jellyfish-1.2.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:36e53729ac0bd387c8f7fd60c8727e6784113976058d8aa2f62398fcdfe209f1", size = 326878, upload-time = "2025-03-31T15:42:48.154Z" }, - { url = "https://files.pythonhosted.org/packages/ba/38/9d1d0c7288a35ed7a9bef87fab745df2740222bed67677c270bae65ce21f/jellyfish-1.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10b178b8351e90e463d937e53c8b5525627a0bb2ca6f7e49ac7452b0608a1020", size = 357373, upload-time = "2025-03-31T15:42:49.453Z" }, - { url = "https://files.pythonhosted.org/packages/93/90/987343f6e43757731fbd62e5e74cfa0c519ad07faef2ff9c31c45386a42c/jellyfish-1.2.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e79225fba34bb082d2f21fa5cd7dc015c856ff04b8340e98ce122ab71a445cad", size = 365456, upload-time = "2025-03-31T15:42:51.136Z" }, - { url = "https://files.pythonhosted.org/packages/6d/12/0834bedcbc107bc17582787d8cd6b6ef21b0290e2847212d1997ec3353bc/jellyfish-1.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18a1ea2d395a4c9c00224b3abd57b73bd2cb4ca17fc6e2024c8433b31e1b1061", size = 358547, upload-time = "2025-03-31T15:42:52.478Z" }, - { url = "https://files.pythonhosted.org/packages/99/5a/5518f6f8c57c75fffba0163f06e3c0ce5df7ef6f40a1a0affb78de767881/jellyfish-1.2.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:b27ff486175b9c8fecdc9147c7dde1d835675bd76df12c1521f378a2fab70493", size = 535731, upload-time = "2025-03-31T15:42:53.667Z" }, - { url = "https://files.pythonhosted.org/packages/25/87/21376b582989cc9103fea496690ce8651fc3587c0c9a546a99cced2d9d0f/jellyfish-1.2.0-pp310-pypy310_pp73-musllinux_1_1_i686.whl", hash = "sha256:4b6b1109174e6ae780f6c2b8454b2fcfc7efeb8fae767f757c481ccca16fb842", size = 557248, upload-time = "2025-03-31T15:42:54.862Z" }, - { url = "https://files.pythonhosted.org/packages/81/ff/8f6d536cb1afda322f989d294cbfb9fa22aa2493e0bbe8b62a35f87e7f0e/jellyfish-1.2.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:dfb4e76c2b6c3e94ea3778510c94609893ddc7172255838b3221eba1ec9aa5cc", size = 529209, upload-time = "2025-03-31T15:42:56.062Z" }, - { url = "https://files.pythonhosted.org/packages/1a/39/99494ab43d6127d7e2bd415c34b37e89fe16fb796a872b9c272558729ca0/jellyfish-1.2.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:07384e33e5f9bfd3d1356cf73d94388af295ed8f196a1d9f09bc381c5ea79be8", size = 330535, upload-time = "2025-03-31T15:42:57.222Z" }, - { url = "https://files.pythonhosted.org/packages/eb/5f/7b3bcb94a3fef83b4119608e40ecc70a1dd97cebc7a0122847b85593b9f8/jellyfish-1.2.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:03754194fc2f5cf65136f2b5f2aeacf48a805ddf21f4ff9f1a6cffc67756d937", size = 326847, upload-time = "2025-03-31T15:42:58.338Z" }, - { url = "https://files.pythonhosted.org/packages/28/96/9aed3d95e50d41d2fa9fe64d88e4d87927cdd56a1a399cbd0d31cc2ef870/jellyfish-1.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57a0c408c588c4477bdcd82c0c1c33f08900aca5c2dfc9d5e78f2e0919294a68", size = 357277, upload-time = "2025-03-31T15:42:59.975Z" }, - { url = "https://files.pythonhosted.org/packages/4f/ac/e91fe4f5742902d4ce2b39c18553c2939c3d0b713b8aa5a43127e371cdc2/jellyfish-1.2.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72062c9772ff672535463954828e9921fb1bf1d63c66602db2956567e9e50aa8", size = 365524, upload-time = "2025-03-31T15:43:01.595Z" }, - { url = "https://files.pythonhosted.org/packages/e7/4e/a94fbc02e7f9781e354ddf8eab01cb9acdf437933cf83c7c7cb5a49f9a96/jellyfish-1.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb3b464faeb8e4f4f6f7987fbd3f5de759fc0d460bbe4768b446e3f1c003026a", size = 358459, upload-time = "2025-03-31T15:43:02.917Z" }, - { url = "https://files.pythonhosted.org/packages/5b/d7/05a8608e26f62c2ea2e33bba9670d39995231f307b12eb0692d6e091a607/jellyfish-1.2.0-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:33c5d80209b278807a770a463f39d0b6a3f95dacf9a64fd322ad4add63a52516", size = 535658, upload-time = "2025-03-31T15:43:04.039Z" }, - { url = "https://files.pythonhosted.org/packages/71/ac/bb1c3b58f7882b0c26e3f0cc2d2333fe5ed283f95ea0bc0e767cc31bf9d8/jellyfish-1.2.0-pp311-pypy311_pp73-musllinux_1_1_i686.whl", hash = "sha256:0787a5fef60aa838732f325064cc4401425e450023bb8fc8d3b2bd2ee75df57d", size = 557211, upload-time = "2025-03-31T15:43:05.268Z" }, - { url = "https://files.pythonhosted.org/packages/86/f2/28437297b00e64edb74a7c2dd05b50e905a5a8bb1ec72b519a70507a7762/jellyfish-1.2.0-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:dee4cc60f2b342f3f62784787f1ba811e505b9a8d8f68cc7505d496c563143b5", size = 529113, upload-time = "2025-03-31T15:43:06.478Z" }, +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/14/fc5bdb637996df181e5c4fa3b15dcc27d33215e6c41753564ae453bdb40f/jellyfish-1.2.1.tar.gz", hash = "sha256:72d2fda61b23babe862018729be73c8b0dc12e3e6601f36f6e65d905e249f4db", size = 364417, upload-time = "2025-10-11T19:36:37.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/3f/b1734e45d4fe1620916616829a87486b26b7455352a23b9939110a26dbde/jellyfish-1.2.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:b35d4b5b688f759ffd075190a9850b04671bad14c5b37124eb43e99306ec16ea", size = 325627, upload-time = "2025-10-11T19:34:53.199Z" }, + { url = "https://files.pythonhosted.org/packages/c5/a3/eb770060544a553281654aa6b03f379231c1ef677e6b9a62735c4a9b3c69/jellyfish-1.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b37b76ea338c4a473c34a9b9e1e033a78aafb9040a8c0eea579fc5805d8e4b46", size = 320325, upload-time = "2025-10-11T19:34:54.914Z" }, + { url = "https://files.pythonhosted.org/packages/4b/81/461c20d8e60801a4da33c81f970991910db0dc398e7ddfad9a25bf0da764/jellyfish-1.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:137cfcc26396d0f2e1265ac61f800bb921921ea722a43dd897e58190f767c474", size = 353308, upload-time = "2025-10-11T19:34:56.195Z" }, + { url = "https://files.pythonhosted.org/packages/bc/ca/b53c9869d4cc8183f0d09b073459937d8f39df2b02d1ab05b25c6f4cfc14/jellyfish-1.2.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab1bfea271ce4bda09d975080d5465cf5a8b127e7c0ea61ea3f972417a7a2193", size = 362931, upload-time = "2025-10-11T19:34:57.527Z" }, + { url = "https://files.pythonhosted.org/packages/b3/5f/a08be31c51249d13b324be4c443acd18e172f9f511b70d63c791209ec9f9/jellyfish-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2348f698f9c1d72023afc8d39939045421a01da9b7e3078e3029227e35f28419", size = 360672, upload-time = "2025-10-11T19:34:58.821Z" }, + { url = "https://files.pythonhosted.org/packages/ec/7e/a04b682872295507437f96567cfea5cc71199cbbd8a541c8310b9b48126e/jellyfish-1.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4072e21ad4036af41bd57b447b1dda64fe60aa679cfa8854ba0a0338152439f1", size = 533943, upload-time = "2025-10-11T19:35:00.839Z" }, + { url = "https://files.pythonhosted.org/packages/70/8d/a4f6e6b8fc626e4a42ec190428efe74806290bf7fd9d61a864e68b8a9f74/jellyfish-1.2.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cf6cd68921f2bacc547ba1cf64ad0e76bc1727f3bab13bba2e5f5869aba038b1", size = 554469, upload-time = "2025-10-11T19:35:02.152Z" }, + { url = "https://files.pythonhosted.org/packages/f9/80/66ad92b292e0a8096ebd2c2d6363219cf23df02e90a275b6d3b9df740d29/jellyfish-1.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:01647c12261bc1f7b102e918e7665497176d87f6fc96271439c8855872bc2606", size = 523928, upload-time = "2025-10-11T19:35:03.47Z" }, + { url = "https://files.pythonhosted.org/packages/9f/de/fab776c8c4eb997d147bc6a1374d14e7229f42915ccd3471619e761020f2/jellyfish-1.2.1-cp310-cp310-win32.whl", hash = "sha256:ddf05ea471da2808d77ecfa425d8884124b4754f4d483afa7703b6655530cf5c", size = 209286, upload-time = "2025-10-11T19:35:04.438Z" }, + { url = "https://files.pythonhosted.org/packages/f3/95/3257c5483c9a31819aad394db64451b81937f7749aed98b26a51928da2cb/jellyfish-1.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:e4a210a960f3917da757b0581750b6e0a8db9acef68dafbc1b6e2ae39e847ba8", size = 213572, upload-time = "2025-10-11T19:35:05.605Z" }, + { url = "https://files.pythonhosted.org/packages/ee/67/5d5ec4004d92573cbccd33fc84d0ad61e523b29f7b17b062913b183961e1/jellyfish-1.2.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:9913789a98ccf49213fbb1dabc597847a0ec33d3b0e151689498f4b38ba9be0f", size = 325488, upload-time = "2025-10-11T19:35:06.87Z" }, + { url = "https://files.pythonhosted.org/packages/83/21/6cf3add349cd0002cc586178bd8f1fd006894e5c70f959a8db5507cfe075/jellyfish-1.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4e36d9000d4f7e1a35689a74ec7749d27a216dfa6c47cac2e5ad3de8a523bd69", size = 320226, upload-time = "2025-10-11T19:35:08.314Z" }, + { url = "https://files.pythonhosted.org/packages/1c/ed/b5458b09482913caece2e9f807599318e48490b01c3c3134b636ecd7af8c/jellyfish-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7853d2ed7d6929c029312ec849410f1ea7ae76ce72ad1140fb73f6e8a1e6aa4f", size = 353091, upload-time = "2025-10-11T19:35:09.395Z" }, + { url = "https://files.pythonhosted.org/packages/67/be/7e01fda506f3249d3548d35d1203e009a850734297ccfe4039ce76a927dc/jellyfish-1.2.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:68080af234256ef943f0add6fc79816b0c643d8df291c17a85c1b6e45bdfbb96", size = 362820, upload-time = "2025-10-11T19:35:11.28Z" }, + { url = "https://files.pythonhosted.org/packages/f5/95/39302d0df1e1b7c348c1fe6fda27cc6cd4c0bd0b27d79f34de3981a14e55/jellyfish-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c5acb213aa75a61bcfc176566e20f2503069667e760d83d403b59e115fef0dd", size = 360560, upload-time = "2025-10-11T19:35:12.266Z" }, + { url = "https://files.pythonhosted.org/packages/ac/9d/b477787bc032e8b5b1ffd798e1c638ecbd54621967dc5577ccd10b5e9444/jellyfish-1.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4b28fcefc0c3534277ff0306e6c10672fb050f4784b5f3be7037e80801569fb5", size = 533823, upload-time = "2025-10-11T19:35:13.268Z" }, + { url = "https://files.pythonhosted.org/packages/73/7e/c6e389c4fccfc2838b1d3fe21736b5bf9ea1e739287d128a291eb84df158/jellyfish-1.2.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:f69aeb08659a6c81d559bbe319075e3417434ae5b3a5e4a758d1c4055a03497a", size = 554439, upload-time = "2025-10-11T19:35:14.595Z" }, + { url = "https://files.pythonhosted.org/packages/17/1e/3239b2dfdfb2f1d8795a8d35936c5eadb90475dbbeebacf45e083579d560/jellyfish-1.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:63770120cc3386dcc13bcc4df508ab281a6b14c3b2c0e33586439a6c40ee122f", size = 523762, upload-time = "2025-10-11T19:35:15.614Z" }, + { url = "https://files.pythonhosted.org/packages/2c/05/62f16bec1d2cd74e6944dfb18a8511bd9df9f2d58e041567f909da22ee26/jellyfish-1.2.1-cp311-cp311-win32.whl", hash = "sha256:ecf62d4aad0baa8832ab60f96e7baedbe6558bd292597503d927e9c5bce745d8", size = 208967, upload-time = "2025-10-11T19:35:16.616Z" }, + { url = "https://files.pythonhosted.org/packages/87/a4/69b65d9090d297407bc530f2e5b8707aa1caa9484e7281a04da6821f13be/jellyfish-1.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:bd186c041d9be86c4fa5e2490943ce5d7f05b472f45d7f49426f259f3dd20bc4", size = 213556, upload-time = "2025-10-11T19:35:17.528Z" }, + { url = "https://files.pythonhosted.org/packages/9c/52/4112537334f1b21ead968a663f0aeb8a5774f42f9c92ded69bad21db1c5e/jellyfish-1.2.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:32a85b752cb51463face13e2b1797cfa617cd7fb7073f15feaa4020a86a346ce", size = 323225, upload-time = "2025-10-11T19:35:18.555Z" }, + { url = "https://files.pythonhosted.org/packages/b2/0d/c54aa2476e5e63673910720b75f3b15e2484687fff9a457a84861f3fa898/jellyfish-1.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:675ab43840488944899ca87f02d4813c1e32107e56afaba7489705a70214e8aa", size = 317839, upload-time = "2025-10-11T19:35:19.648Z" }, + { url = "https://files.pythonhosted.org/packages/51/3f/a81347d705150a69e446cabcbe8f223ad990164dffd3e6f8178ed44cf198/jellyfish-1.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c888f624d03e55e501bc438906505c79fb307d8da37a6dda18dd1ac2e6d5ea9c", size = 353337, upload-time = "2025-10-11T19:35:20.651Z" }, + { url = "https://files.pythonhosted.org/packages/e7/3a/b655e72b852f6c304a2bc12091485f71e58e8c6374a15c8f21a1f0e1b9cd/jellyfish-1.2.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d2b56a1fd2c5126c4a3362ec4470291cdd3c7daa22f583da67e75e30dc425ce6", size = 362632, upload-time = "2025-10-11T19:35:21.624Z" }, + { url = "https://files.pythonhosted.org/packages/4e/be/f9f9a0b7ba48c994e0573d718e39bde713572cfb11f967d97328420a7aef/jellyfish-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a3ccff843822e7f3ad6f91662488a3630724c8587976bce114f3c7238e8ffa1", size = 360514, upload-time = "2025-10-11T19:35:22.886Z" }, + { url = "https://files.pythonhosted.org/packages/f0/b6/960e556e155f65438c1b70d50f745ceb2989de8255a769ccaad26bf94a3f/jellyfish-1.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:10da696747e2de0336180fd5ba77ef769a7c80f9743123545f7fc0251efbbcec", size = 533973, upload-time = "2025-10-11T19:35:24.077Z" }, + { url = "https://files.pythonhosted.org/packages/24/63/f5b5fb00c0df70387f699535c38190a97f30b79c2e7d4afb97794f838875/jellyfish-1.2.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:c3c18f13175a9c90f3abd8805720b0eb3e10eca1d5d4e0cf57722b2a62d62016", size = 553863, upload-time = "2025-10-11T19:35:25.64Z" }, + { url = "https://files.pythonhosted.org/packages/86/45/4de6626b6045884ed27995e170bacd09239b19549e25d95492cde10ea052/jellyfish-1.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:0368596e176bf548b3be2979ff33e274fb6d5e13b2cebe85137b8b698b002a85", size = 523629, upload-time = "2025-10-11T19:35:26.732Z" }, + { url = "https://files.pythonhosted.org/packages/73/d6/8593e08568438b207f91b2fba2f6c879abc85dc450c0ad599a4e81dd9f07/jellyfish-1.2.1-cp312-cp312-win32.whl", hash = "sha256:451ddf4094e108e33d3b86d7817a7e20a2c5e6812d08c34ee22f6a595f38dcca", size = 209179, upload-time = "2025-10-11T19:35:27.72Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ff/ae991a96e8a370f41bbd91dbabdc94b404a164b0ab268388f43c2ab10d45/jellyfish-1.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:15318c13070fe6d9caeb7e10f9cdf89ff47c9d20f05a9a2c0d3b5cb8062a7033", size = 213630, upload-time = "2025-10-11T19:35:28.978Z" }, + { url = "https://files.pythonhosted.org/packages/5c/e6/75feeda1c3634525296aa56265db151f896005b139e177f8b1a285546a1f/jellyfish-1.2.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:4b3e3223aaad74e18aacc74775e01815e68af810258ceea6fa6a81b19f384312", size = 322958, upload-time = "2025-10-11T19:35:29.906Z" }, + { url = "https://files.pythonhosted.org/packages/0e/66/4b92bb55b545ebefbf085e45cbcda576d2a2a3dc48fd61dae469c27e73a6/jellyfish-1.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e967e67058b78189d2b20a9586c7720a05ec4a580d6a98c796cd5cd2b7b11303", size = 317859, upload-time = "2025-10-11T19:35:31.312Z" }, + { url = "https://files.pythonhosted.org/packages/fe/8e/9d0055f921c884605bf22a96e376b016993928126e8a4c7fd8698260fb4e/jellyfish-1.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32581c50b34a09889b2d96796170e53da313a1e7fde32be63c82e50e7e791e3c", size = 353222, upload-time = "2025-10-11T19:35:32.352Z" }, + { url = "https://files.pythonhosted.org/packages/4f/d2/deca58a62e57f7e2b2172ab39f522831279ee08ec0943fc0d0e33cd6e6f9/jellyfish-1.2.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07b022412ebece96759006cb015d46b8218d7f896d8b327c6bbee784ddf38ed9", size = 362392, upload-time = "2025-10-11T19:35:33.305Z" }, + { url = "https://files.pythonhosted.org/packages/12/40/9a7f62d367f5a862950ce3598188fe0e22e11d1f5d6eaad6eda5adc354b0/jellyfish-1.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80a49eb817eaa6591f43a31e5c93d79904de62537f029907ef88c050d781a638", size = 360358, upload-time = "2025-10-11T19:35:34.585Z" }, + { url = "https://files.pythonhosted.org/packages/a5/e5/6b44a1058df3dfa3dd1174c9f86685c78f780d0b68851a057075aea14587/jellyfish-1.2.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:e1b990fb15985571616f7f40a12d6fa062897b19fb5359b6dec3cd811d802c24", size = 533945, upload-time = "2025-10-11T19:35:35.764Z" }, + { url = "https://files.pythonhosted.org/packages/50/4c/2397f43ad2692a1052299607838b41a4c2dd5707fde4ce459d686e763eb1/jellyfish-1.2.1-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:dd895cf63fac0a9f11b524fff810d9a6081dcf3c518b34172ac8684eb504dd43", size = 553707, upload-time = "2025-10-11T19:35:36.926Z" }, + { url = "https://files.pythonhosted.org/packages/de/aa/dc7cf053c8c40035791de1dc2f45b1f57772a14b0dc53318720e87073831/jellyfish-1.2.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:6d2bac5982d7a08759ea487bfa00149e6aa8a3be7cd43c4ed1be1e3505425c69", size = 523323, upload-time = "2025-10-11T19:35:37.981Z" }, + { url = "https://files.pythonhosted.org/packages/2b/1a/610c7f1f7777646322f489b5ed1e4631370c9fa4fb40a8246af71b496b6d/jellyfish-1.2.1-cp313-cp313-win32.whl", hash = "sha256:509355ebedec69a8bf0cc113a6bf9c01820d12fe2eea44f47dfa809faf2d5463", size = 209143, upload-time = "2025-10-11T19:35:39.276Z" }, + { url = "https://files.pythonhosted.org/packages/80/9a/6102b23b03a6df779fee76c979c0eb819b300c83b468900df78bb574b944/jellyfish-1.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:9c747ae5c0fb4bd519f6abbfe4bd704b2f1c63fd4dd3dbb8d8864478974e1571", size = 213466, upload-time = "2025-10-11T19:35:40.24Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/92190ff494881008ff127d67aba80245a5071ec7c3ff1181ceddc6c9d636/jellyfish-1.2.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:212aaf177236192a735bbbf5938717aa8518d14a25b08b015e47e783e70be060", size = 322379, upload-time = "2025-10-11T19:35:41.21Z" }, + { url = "https://files.pythonhosted.org/packages/d4/db/993c81f3e95e06e2a5cb71aaf9af063d8798a34c9715c8059707ddc12b86/jellyfish-1.2.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:b8986d9768daddd5e87abf513ae168ea0afe690a444d4c82d5b1b14b0d045820", size = 317270, upload-time = "2025-10-11T19:35:43.367Z" }, + { url = "https://files.pythonhosted.org/packages/fc/6a/0f521b098e136c43c7ae1e77db4a792f9e65167fe818820502996488b926/jellyfish-1.2.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fa0ba0946f3c274f6a87aaa3c631dc70a363bd46cceea828ce777e8db653b6f", size = 352931, upload-time = "2025-10-11T19:35:44.402Z" }, + { url = "https://files.pythonhosted.org/packages/a0/c4/5d2242a650f890384b435610ef2962b1ac6091c070912a81a97020d2502a/jellyfish-1.2.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6e76b23431a667cd485fb562428d1ad29bae9fdd0fcdfb5a51cc8087bae0e88c", size = 362473, upload-time = "2025-10-11T19:35:45.427Z" }, + { url = "https://files.pythonhosted.org/packages/d5/fe/831fc45a4d3e497bccc4735809551320968360d14b89eb3d7cb892549316/jellyfish-1.2.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a058f4c6a591d5e5a47569f5648a26303ba19c76a960fef7e0beba2aa959e52e", size = 359772, upload-time = "2025-10-11T19:35:46.65Z" }, + { url = "https://files.pythonhosted.org/packages/b4/0f/d132265e299947e4462c1485f829a08a513c97c41bdfe758754e4a5c1dfe/jellyfish-1.2.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:6a49ce2a580edd3b16b69421137deef464e2f8907f9ef906d49950b1a52908c1", size = 533628, upload-time = "2025-10-11T19:35:47.691Z" }, + { url = "https://files.pythonhosted.org/packages/52/2a/d51dbf0aceb9b141dd8318ce6a41ab08a5deaae56be16a8bf3d8685ac817/jellyfish-1.2.1-cp314-cp314-musllinux_1_1_i686.whl", hash = "sha256:c85aa2bc76a36d92a3197f406f86636664d5b323727dfec4fa2842a8a24a06ae", size = 553614, upload-time = "2025-10-11T19:35:52.928Z" }, + { url = "https://files.pythonhosted.org/packages/f9/e1/fcc7c5919d871537942425f707b764af65b76c7b88377aa71083c5280e37/jellyfish-1.2.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:29cfa8bfb72aacf2d611a3313b358ed4d4140fa3d3efcffea750c8e7f8acb1aa", size = 523057, upload-time = "2025-10-11T19:35:54.423Z" }, + { url = "https://files.pythonhosted.org/packages/95/65/ee5289540b2015643493cc29b50350dbe63ca1977a902de5295a4df8c25a/jellyfish-1.2.1-cp314-cp314-win32.whl", hash = "sha256:f121218dc33fb318c34ddd889dc7362606ce1316af2bb63b73cc1df81523ca34", size = 209340, upload-time = "2025-10-11T19:35:55.69Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e2/fa5de38380b0f5bd531b27a78acb0dc6118dab0b21f56d36008b829aa7de/jellyfish-1.2.1-cp314-cp314-win_amd64.whl", hash = "sha256:9a73b5c6425a70ebd440579a677eb4f03b327b2f59090db34e6c937aeea5aabd", size = 213399, upload-time = "2025-10-11T19:35:56.776Z" }, + { url = "https://files.pythonhosted.org/packages/f5/2b/ef99cc9ed0c14171b62dfb68dca7e1cecec02b4c007ea47709a3d51ffba6/jellyfish-1.2.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c499ea3a134130797c50e367687a6a46a12653c59af381bee92c41a5ab0bd55d", size = 327121, upload-time = "2025-10-11T19:36:09.777Z" }, + { url = "https://files.pythonhosted.org/packages/c1/c9/1159831bf5c2356affab834039cb6fce596ea74e39fc77533ea349f1eef2/jellyfish-1.2.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:91cad49a4fb731b726afc5ae385a3217a7016ed88a04da40c131cff8136a5db5", size = 321825, upload-time = "2025-10-11T19:36:10.887Z" }, + { url = "https://files.pythonhosted.org/packages/bf/66/4328b3ecfb79266b261d195b920c78975e9a0ee793c9fe1e08904e924ad6/jellyfish-1.2.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bda2275f31a64adf3483e39f7a4e2107f7dfe3a3f85f0d2c0cb6ae5fbe4a443", size = 355093, upload-time = "2025-10-11T19:36:11.921Z" }, + { url = "https://files.pythonhosted.org/packages/bb/9d/5bbc2ec2e3fd0f93e54642aa1a0772bd909e7bb2755a6a8ad8b7d75e97b8/jellyfish-1.2.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:98a133b40dc00cfda6609e1b0cb0ab0b77796fc2719aae886a12009514f73499", size = 364202, upload-time = "2025-10-11T19:36:12.867Z" }, + { url = "https://files.pythonhosted.org/packages/99/88/bec6bd9899194355f8007e376bbf0824ff6bb9dd78754a5e8b095ee00c1c/jellyfish-1.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa30c7b59bd1c5e105693108a6d7a98f3e7a1a59e23e15bc5897b91fd5849f5", size = 362053, upload-time = "2025-10-11T19:36:14.086Z" }, + { url = "https://files.pythonhosted.org/packages/6a/15/ca2f05b39145460579b7bfb164d210ce30a68bc1136b74f48bae33e3442b/jellyfish-1.2.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:db97d873f23b0c15b4ed911ece10e5cc0bb96cdc53666d5c3788bd0af81807f1", size = 535693, upload-time = "2025-10-11T19:36:15.205Z" }, + { url = "https://files.pythonhosted.org/packages/d1/82/8889c441d768a80eeea575e471d54613ea88c579883a2c30afa04fa0987b/jellyfish-1.2.1-pp310-pypy310_pp73-musllinux_1_1_i686.whl", hash = "sha256:393f609fd6139ce782e747e22c399483ffc58341009e6a97e39ffe5f5b2c674c", size = 555789, upload-time = "2025-10-11T19:36:16.433Z" }, + { url = "https://files.pythonhosted.org/packages/af/65/abca7f780fb66840500ab7842c2285de6c09c5130a769fe3712a3a647af9/jellyfish-1.2.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:fb3c6e537cb4605c22895a8d4a10cdb26611ba2bbfc7f0b4c1d06bb9d8aad648", size = 525431, upload-time = "2025-10-11T19:36:17.788Z" }, + { url = "https://files.pythonhosted.org/packages/96/72/e4897449abd844d501412873d1d15bd846bcc919648c0b1043e225268b21/jellyfish-1.2.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:748dc45a0394fbe9120b8b3b9a39fab0967c7e2d6ecdd5304af018e774f80f96", size = 326967, upload-time = "2025-10-11T19:36:18.851Z" }, + { url = "https://files.pythonhosted.org/packages/60/3f/c7a550abd212ae40c2a555055a3f16ba39376e486ba0189e150fb25cf6b1/jellyfish-1.2.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:13f1ac9caba22af10bfe42f674822643c0266009f882e0fe652079706dc5d13a", size = 321759, upload-time = "2025-10-11T19:36:19.882Z" }, + { url = "https://files.pythonhosted.org/packages/19/58/a268365ba659f04d4db0c94325042aa9aee69c3a9a5823a5b2a2db308a5c/jellyfish-1.2.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ffeeb6c78c45fbb6d2a22b0173fb8a6af849001d6c26fab49c525136dbd9734", size = 354847, upload-time = "2025-10-11T19:36:20.976Z" }, + { url = "https://files.pythonhosted.org/packages/5d/63/371351a5e0e19d642e33c1c8b4c3ef47538f36bbd8d76a06ee34000b38a2/jellyfish-1.2.1-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1354b558a0a16597b6032dd0af64bebd24994f7e7484cf14993320eb764b06cb", size = 364210, upload-time = "2025-10-11T19:36:22.071Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ed/f43d79b9b6d846189b1235f8303d1246ca9cba79a61a26cac790b57c1789/jellyfish-1.2.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5977810972c6f0b2e61252c4758fd5aee21abf663ff309881195a99d37daa94", size = 361876, upload-time = "2025-10-11T19:36:23.235Z" }, + { url = "https://files.pythonhosted.org/packages/74/5c/82455195b77cd1996c3618bd5aa8f25a9fc254d401a3c1425fb60cf97742/jellyfish-1.2.1-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:536c80d8d4ec7f39cbb10b85d926ff96cef3cde4a83ca0991c07cd9835d5dc13", size = 535488, upload-time = "2025-10-11T19:36:24.252Z" }, + { url = "https://files.pythonhosted.org/packages/74/3d/295468c5df5a8d03f522b0c21fc3e694d6be376602a6d755bf7815947522/jellyfish-1.2.1-pp311-pypy311_pp73-musllinux_1_1_i686.whl", hash = "sha256:21baa92d4a5112167721156f6d061c2ae105f2995b3a5e19cec6662928f0c439", size = 555818, upload-time = "2025-10-11T19:36:25.667Z" }, + { url = "https://files.pythonhosted.org/packages/41/6d/4029265138a5a0b18e4df381560e467339bec477f4efaa7614736dbc433e/jellyfish-1.2.1-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:68ea3ddd4dae1152a7f7155ef02a7bfad919611158d71b301f9aa167685819af", size = 525259, upload-time = "2025-10-11T19:36:26.726Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "joblib" +version = "1.5.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/41/f2/d34e8b3a08a9cc79a50b2208a93dce981fe615b64d5a4d4abee421d898df/joblib-1.5.3.tar.gz", hash = "sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3", size = 331603, upload-time = "2025-12-15T08:41:46.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/91/984aca2ec129e2757d1e4e3c81c3fcda9d0f85b74670a094cc443d9ee949/joblib-1.5.3-py3-none-any.whl", hash = "sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713", size = 309071, upload-time = "2025-12-15T08:41:44.973Z" }, ] [[package]] @@ -579,9 +941,94 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/da/e9/0d4add7873a73e462aeb45c036a2dead2562b825aa46ba326727b3f31016/kiwisolver-1.4.9-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:fb940820c63a9590d31d88b815e7a3aa5915cad3ce735ab45f0c730b39547de1", size = 73929, upload-time = "2025-08-10T21:27:48.236Z" }, ] +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", size = 11631, upload-time = "2025-09-27T18:36:05.558Z" }, + { url = "https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", size = 12057, upload-time = "2025-09-27T18:36:07.165Z" }, + { url = "https://files.pythonhosted.org/packages/40/01/e560d658dc0bb8ab762670ece35281dec7b6c1b33f5fbc09ebb57a185519/markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", size = 22050, upload-time = "2025-09-27T18:36:08.005Z" }, + { url = "https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", size = 20681, upload-time = "2025-09-27T18:36:08.881Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2a/b5c12c809f1c3045c4d580b035a743d12fcde53cf685dbc44660826308da/markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", size = 20705, upload-time = "2025-09-27T18:36:10.131Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e3/9427a68c82728d0a88c50f890d0fc072a1484de2f3ac1ad0bfc1a7214fd5/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", size = 21524, upload-time = "2025-09-27T18:36:11.324Z" }, + { url = "https://files.pythonhosted.org/packages/bc/36/23578f29e9e582a4d0278e009b38081dbe363c5e7165113fad546918a232/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", size = 20282, upload-time = "2025-09-27T18:36:12.573Z" }, + { url = "https://files.pythonhosted.org/packages/56/21/dca11354e756ebd03e036bd8ad58d6d7168c80ce1fe5e75218e4945cbab7/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", size = 20745, upload-time = "2025-09-27T18:36:13.504Z" }, + { url = "https://files.pythonhosted.org/packages/87/99/faba9369a7ad6e4d10b6a5fbf71fa2a188fe4a593b15f0963b73859a1bbd/markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", size = 14571, upload-time = "2025-09-27T18:36:14.779Z" }, + { url = "https://files.pythonhosted.org/packages/d6/25/55dc3ab959917602c96985cb1253efaa4ff42f71194bddeb61eb7278b8be/markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", size = 15056, upload-time = "2025-09-27T18:36:16.125Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9e/0a02226640c255d1da0b8d12e24ac2aa6734da68bff14c05dd53b94a0fc3/markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", size = 13932, upload-time = "2025-09-27T18:36:17.311Z" }, + { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" }, + { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" }, + { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" }, + { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" }, + { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" }, + { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" }, + { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" }, + { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, +] + [[package]] name = "matplotlib" -version = "3.10.6" +version = "3.10.8" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "contourpy", version = "1.3.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, @@ -589,68 +1036,69 @@ dependencies = [ { name = "cycler" }, { name = "fonttools" }, { name = "kiwisolver" }, - { name = "numpy" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "packaging" }, { name = "pillow" }, { name = "pyparsing" }, { name = "python-dateutil" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a0/59/c3e6453a9676ffba145309a73c462bb407f4400de7de3f2b41af70720a3c/matplotlib-3.10.6.tar.gz", hash = "sha256:ec01b645840dd1996df21ee37f208cd8ba57644779fa20464010638013d3203c", size = 34804264, upload-time = "2025-08-30T00:14:25.137Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/da/dc/ab89f7a5efd0cbaaebf2c3cf1881f4cba20c8925bb43f64511059df76895/matplotlib-3.10.6-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:bc7316c306d97463a9866b89d5cc217824e799fa0de346c8f68f4f3d27c8693d", size = 8247159, upload-time = "2025-08-30T00:12:30.507Z" }, - { url = "https://files.pythonhosted.org/packages/30/a5/ddaee1a383ab28174093644fff7438eddb87bf8dbd58f7b85f5cdd6b2485/matplotlib-3.10.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d00932b0d160ef03f59f9c0e16d1e3ac89646f7785165ce6ad40c842db16cc2e", size = 8108011, upload-time = "2025-08-30T00:12:32.771Z" }, - { url = "https://files.pythonhosted.org/packages/75/5b/a53f69bb0522db352b1135bb57cd9fe00fd7252072409392d991d3a755d0/matplotlib-3.10.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8fa4c43d6bfdbfec09c733bca8667de11bfa4970e8324c471f3a3632a0301c15", size = 8680518, upload-time = "2025-08-30T00:12:34.387Z" }, - { url = "https://files.pythonhosted.org/packages/5f/31/e059ddce95f68819b005a2d6820b2d6ed0307827a04598891f00649bed2d/matplotlib-3.10.6-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ea117a9c1627acaa04dbf36265691921b999cbf515a015298e54e1a12c3af837", size = 9514997, upload-time = "2025-08-30T00:12:36.272Z" }, - { url = "https://files.pythonhosted.org/packages/66/d5/28b408a7c0f07b41577ee27e4454fe329e78ca21fe46ae7a27d279165fb5/matplotlib-3.10.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:08fc803293b4e1694ee325896030de97f74c141ccff0be886bb5915269247676", size = 9566440, upload-time = "2025-08-30T00:12:41.675Z" }, - { url = "https://files.pythonhosted.org/packages/2d/99/8325b3386b479b1d182ab1a7fd588fd393ff00a99dc04b7cf7d06668cf0f/matplotlib-3.10.6-cp310-cp310-win_amd64.whl", hash = "sha256:2adf92d9b7527fbfb8818e050260f0ebaa460f79d61546374ce73506c9421d09", size = 8108186, upload-time = "2025-08-30T00:12:43.621Z" }, - { url = "https://files.pythonhosted.org/packages/80/d6/5d3665aa44c49005aaacaa68ddea6fcb27345961cd538a98bb0177934ede/matplotlib-3.10.6-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:905b60d1cb0ee604ce65b297b61cf8be9f4e6cfecf95a3fe1c388b5266bc8f4f", size = 8257527, upload-time = "2025-08-30T00:12:45.31Z" }, - { url = "https://files.pythonhosted.org/packages/8c/af/30ddefe19ca67eebd70047dabf50f899eaff6f3c5e6a1a7edaecaf63f794/matplotlib-3.10.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7bac38d816637343e53d7185d0c66677ff30ffb131044a81898b5792c956ba76", size = 8119583, upload-time = "2025-08-30T00:12:47.236Z" }, - { url = "https://files.pythonhosted.org/packages/d3/29/4a8650a3dcae97fa4f375d46efcb25920d67b512186f8a6788b896062a81/matplotlib-3.10.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:942a8de2b5bfff1de31d95722f702e2966b8a7e31f4e68f7cd963c7cd8861cf6", size = 8692682, upload-time = "2025-08-30T00:12:48.781Z" }, - { url = "https://files.pythonhosted.org/packages/aa/d3/b793b9cb061cfd5d42ff0f69d1822f8d5dbc94e004618e48a97a8373179a/matplotlib-3.10.6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a3276c85370bc0dfca051ec65c5817d1e0f8f5ce1b7787528ec8ed2d524bbc2f", size = 9521065, upload-time = "2025-08-30T00:12:50.602Z" }, - { url = "https://files.pythonhosted.org/packages/f7/c5/53de5629f223c1c66668d46ac2621961970d21916a4bc3862b174eb2a88f/matplotlib-3.10.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9df5851b219225731f564e4b9e7f2ac1e13c9e6481f941b5631a0f8e2d9387ce", size = 9576888, upload-time = "2025-08-30T00:12:52.92Z" }, - { url = "https://files.pythonhosted.org/packages/fc/8e/0a18d6d7d2d0a2e66585032a760d13662e5250c784d53ad50434e9560991/matplotlib-3.10.6-cp311-cp311-win_amd64.whl", hash = "sha256:abb5d9478625dd9c9eb51a06d39aae71eda749ae9b3138afb23eb38824026c7e", size = 8115158, upload-time = "2025-08-30T00:12:54.863Z" }, - { url = "https://files.pythonhosted.org/packages/07/b3/1a5107bb66c261e23b9338070702597a2d374e5aa7004b7adfc754fbed02/matplotlib-3.10.6-cp311-cp311-win_arm64.whl", hash = "sha256:886f989ccfae63659183173bb3fced7fd65e9eb793c3cc21c273add368536951", size = 7992444, upload-time = "2025-08-30T00:12:57.067Z" }, - { url = "https://files.pythonhosted.org/packages/ea/1a/7042f7430055d567cc3257ac409fcf608599ab27459457f13772c2d9778b/matplotlib-3.10.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:31ca662df6a80bd426f871105fdd69db7543e28e73a9f2afe80de7e531eb2347", size = 8272404, upload-time = "2025-08-30T00:12:59.112Z" }, - { url = "https://files.pythonhosted.org/packages/a9/5d/1d5f33f5b43f4f9e69e6a5fe1fb9090936ae7bc8e2ff6158e7a76542633b/matplotlib-3.10.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1678bb61d897bb4ac4757b5ecfb02bfb3fddf7f808000fb81e09c510712fda75", size = 8128262, upload-time = "2025-08-30T00:13:01.141Z" }, - { url = "https://files.pythonhosted.org/packages/67/c3/135fdbbbf84e0979712df58e5e22b4f257b3f5e52a3c4aacf1b8abec0d09/matplotlib-3.10.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:56cd2d20842f58c03d2d6e6c1f1cf5548ad6f66b91e1e48f814e4fb5abd1cb95", size = 8697008, upload-time = "2025-08-30T00:13:03.24Z" }, - { url = "https://files.pythonhosted.org/packages/9c/be/c443ea428fb2488a3ea7608714b1bd85a82738c45da21b447dc49e2f8e5d/matplotlib-3.10.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:662df55604a2f9a45435566d6e2660e41efe83cd94f4288dfbf1e6d1eae4b0bb", size = 9530166, upload-time = "2025-08-30T00:13:05.951Z" }, - { url = "https://files.pythonhosted.org/packages/a9/35/48441422b044d74034aea2a3e0d1a49023f12150ebc58f16600132b9bbaf/matplotlib-3.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:08f141d55148cd1fc870c3387d70ca4df16dee10e909b3b038782bd4bda6ea07", size = 9593105, upload-time = "2025-08-30T00:13:08.356Z" }, - { url = "https://files.pythonhosted.org/packages/45/c3/994ef20eb4154ab84cc08d033834555319e4af970165e6c8894050af0b3c/matplotlib-3.10.6-cp312-cp312-win_amd64.whl", hash = "sha256:590f5925c2d650b5c9d813c5b3b5fc53f2929c3f8ef463e4ecfa7e052044fb2b", size = 8122784, upload-time = "2025-08-30T00:13:10.367Z" }, - { url = "https://files.pythonhosted.org/packages/57/b8/5c85d9ae0e40f04e71bedb053aada5d6bab1f9b5399a0937afb5d6b02d98/matplotlib-3.10.6-cp312-cp312-win_arm64.whl", hash = "sha256:f44c8d264a71609c79a78d50349e724f5d5fc3684ead7c2a473665ee63d868aa", size = 7992823, upload-time = "2025-08-30T00:13:12.24Z" }, - { url = "https://files.pythonhosted.org/packages/a0/db/18380e788bb837e724358287b08e223b32bc8dccb3b0c12fa8ca20bc7f3b/matplotlib-3.10.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:819e409653c1106c8deaf62e6de6b8611449c2cd9939acb0d7d4e57a3d95cc7a", size = 8273231, upload-time = "2025-08-30T00:13:13.881Z" }, - { url = "https://files.pythonhosted.org/packages/d3/0f/38dd49445b297e0d4f12a322c30779df0d43cb5873c7847df8a82e82ec67/matplotlib-3.10.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:59c8ac8382fefb9cb71308dde16a7c487432f5255d8f1fd32473523abecfecdf", size = 8128730, upload-time = "2025-08-30T00:13:15.556Z" }, - { url = "https://files.pythonhosted.org/packages/e5/b8/9eea6630198cb303d131d95d285a024b3b8645b1763a2916fddb44ca8760/matplotlib-3.10.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:84e82d9e0fd70c70bc55739defbd8055c54300750cbacf4740c9673a24d6933a", size = 8698539, upload-time = "2025-08-30T00:13:17.297Z" }, - { url = "https://files.pythonhosted.org/packages/71/34/44c7b1f075e1ea398f88aeabcc2907c01b9cc99e2afd560c1d49845a1227/matplotlib-3.10.6-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:25f7a3eb42d6c1c56e89eacd495661fc815ffc08d9da750bca766771c0fd9110", size = 9529702, upload-time = "2025-08-30T00:13:19.248Z" }, - { url = "https://files.pythonhosted.org/packages/b5/7f/e5c2dc9950c7facaf8b461858d1b92c09dd0cf174fe14e21953b3dda06f7/matplotlib-3.10.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f9c862d91ec0b7842920a4cfdaaec29662195301914ea54c33e01f1a28d014b2", size = 9593742, upload-time = "2025-08-30T00:13:21.181Z" }, - { url = "https://files.pythonhosted.org/packages/ff/1d/70c28528794f6410ee2856cd729fa1f1756498b8d3126443b0a94e1a8695/matplotlib-3.10.6-cp313-cp313-win_amd64.whl", hash = "sha256:1b53bd6337eba483e2e7d29c5ab10eee644bc3a2491ec67cc55f7b44583ffb18", size = 8122753, upload-time = "2025-08-30T00:13:23.44Z" }, - { url = "https://files.pythonhosted.org/packages/e8/74/0e1670501fc7d02d981564caf7c4df42974464625935424ca9654040077c/matplotlib-3.10.6-cp313-cp313-win_arm64.whl", hash = "sha256:cbd5eb50b7058b2892ce45c2f4e92557f395c9991f5c886d1bb74a1582e70fd6", size = 7992973, upload-time = "2025-08-30T00:13:26.632Z" }, - { url = "https://files.pythonhosted.org/packages/b1/4e/60780e631d73b6b02bd7239f89c451a72970e5e7ec34f621eda55cd9a445/matplotlib-3.10.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:acc86dd6e0e695c095001a7fccff158c49e45e0758fdf5dcdbb0103318b59c9f", size = 8316869, upload-time = "2025-08-30T00:13:28.262Z" }, - { url = "https://files.pythonhosted.org/packages/f8/15/baa662374a579413210fc2115d40c503b7360a08e9cc254aa0d97d34b0c1/matplotlib-3.10.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e228cd2ffb8f88b7d0b29e37f68ca9aaf83e33821f24a5ccc4f082dd8396bc27", size = 8178240, upload-time = "2025-08-30T00:13:30.007Z" }, - { url = "https://files.pythonhosted.org/packages/c6/3f/3c38e78d2aafdb8829fcd0857d25aaf9e7dd2dfcf7ec742765b585774931/matplotlib-3.10.6-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:658bc91894adeab669cf4bb4a186d049948262987e80f0857216387d7435d833", size = 8711719, upload-time = "2025-08-30T00:13:31.72Z" }, - { url = "https://files.pythonhosted.org/packages/96/4b/2ec2bbf8cefaa53207cc56118d1fa8a0f9b80642713ea9390235d331ede4/matplotlib-3.10.6-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8913b7474f6dd83ac444c9459c91f7f0f2859e839f41d642691b104e0af056aa", size = 9541422, upload-time = "2025-08-30T00:13:33.611Z" }, - { url = "https://files.pythonhosted.org/packages/83/7d/40255e89b3ef11c7871020563b2dd85f6cb1b4eff17c0f62b6eb14c8fa80/matplotlib-3.10.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:091cea22e059b89f6d7d1a18e2c33a7376c26eee60e401d92a4d6726c4e12706", size = 9594068, upload-time = "2025-08-30T00:13:35.833Z" }, - { url = "https://files.pythonhosted.org/packages/f0/a9/0213748d69dc842537a113493e1c27daf9f96bd7cc316f933dc8ec4de985/matplotlib-3.10.6-cp313-cp313t-win_amd64.whl", hash = "sha256:491e25e02a23d7207629d942c666924a6b61e007a48177fdd231a0097b7f507e", size = 8200100, upload-time = "2025-08-30T00:13:37.668Z" }, - { url = "https://files.pythonhosted.org/packages/be/15/79f9988066ce40b8a6f1759a934ea0cde8dc4adc2262255ee1bc98de6ad0/matplotlib-3.10.6-cp313-cp313t-win_arm64.whl", hash = "sha256:3d80d60d4e54cda462e2cd9a086d85cd9f20943ead92f575ce86885a43a565d5", size = 8042142, upload-time = "2025-08-30T00:13:39.426Z" }, - { url = "https://files.pythonhosted.org/packages/7c/58/e7b6d292beae6fb4283ca6fb7fa47d7c944a68062d6238c07b497dd35493/matplotlib-3.10.6-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:70aaf890ce1d0efd482df969b28a5b30ea0b891224bb315810a3940f67182899", size = 8273802, upload-time = "2025-08-30T00:13:41.006Z" }, - { url = "https://files.pythonhosted.org/packages/9f/f6/7882d05aba16a8cdd594fb9a03a9d3cca751dbb6816adf7b102945522ee9/matplotlib-3.10.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1565aae810ab79cb72e402b22facfa6501365e73ebab70a0fdfb98488d2c3c0c", size = 8131365, upload-time = "2025-08-30T00:13:42.664Z" }, - { url = "https://files.pythonhosted.org/packages/94/bf/ff32f6ed76e78514e98775a53715eca4804b12bdcf35902cdd1cf759d324/matplotlib-3.10.6-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3b23315a01981689aa4e1a179dbf6ef9fbd17143c3eea77548c2ecfb0499438", size = 9533961, upload-time = "2025-08-30T00:13:44.372Z" }, - { url = "https://files.pythonhosted.org/packages/fe/c3/6bf88c2fc2da7708a2ff8d2eeb5d68943130f50e636d5d3dcf9d4252e971/matplotlib-3.10.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:30fdd37edf41a4e6785f9b37969de57aea770696cb637d9946eb37470c94a453", size = 9804262, upload-time = "2025-08-30T00:13:46.614Z" }, - { url = "https://files.pythonhosted.org/packages/0f/7a/e05e6d9446d2d577b459427ad060cd2de5742d0e435db3191fea4fcc7e8b/matplotlib-3.10.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:bc31e693da1c08012c764b053e702c1855378e04102238e6a5ee6a7117c53a47", size = 9595508, upload-time = "2025-08-30T00:13:48.731Z" }, - { url = "https://files.pythonhosted.org/packages/39/fb/af09c463ced80b801629fd73b96f726c9f6124c3603aa2e480a061d6705b/matplotlib-3.10.6-cp314-cp314-win_amd64.whl", hash = "sha256:05be9bdaa8b242bc6ff96330d18c52f1fc59c6fb3a4dd411d953d67e7e1baf98", size = 8252742, upload-time = "2025-08-30T00:13:50.539Z" }, - { url = "https://files.pythonhosted.org/packages/b1/f9/b682f6db9396d9ab8f050c0a3bfbb5f14fb0f6518f08507c04cc02f8f229/matplotlib-3.10.6-cp314-cp314-win_arm64.whl", hash = "sha256:f56a0d1ab05d34c628592435781d185cd99630bdfd76822cd686fb5a0aecd43a", size = 8124237, upload-time = "2025-08-30T00:13:54.3Z" }, - { url = "https://files.pythonhosted.org/packages/b5/d2/b69b4a0923a3c05ab90527c60fdec899ee21ca23ede7f0fb818e6620d6f2/matplotlib-3.10.6-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:94f0b4cacb23763b64b5dace50d5b7bfe98710fed5f0cef5c08135a03399d98b", size = 8316956, upload-time = "2025-08-30T00:13:55.932Z" }, - { url = "https://files.pythonhosted.org/packages/28/e9/dc427b6f16457ffaeecb2fc4abf91e5adb8827861b869c7a7a6d1836fa73/matplotlib-3.10.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:cc332891306b9fb39462673d8225d1b824c89783fee82840a709f96714f17a5c", size = 8178260, upload-time = "2025-08-30T00:14:00.942Z" }, - { url = "https://files.pythonhosted.org/packages/c4/89/1fbd5ad611802c34d1c7ad04607e64a1350b7fb9c567c4ec2c19e066ed35/matplotlib-3.10.6-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee1d607b3fb1590deb04b69f02ea1d53ed0b0bf75b2b1a5745f269afcbd3cdd3", size = 9541422, upload-time = "2025-08-30T00:14:02.664Z" }, - { url = "https://files.pythonhosted.org/packages/b0/3b/65fec8716025b22c1d72d5a82ea079934c76a547696eaa55be6866bc89b1/matplotlib-3.10.6-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:376a624a218116461696b27b2bbf7a8945053e6d799f6502fc03226d077807bf", size = 9803678, upload-time = "2025-08-30T00:14:04.741Z" }, - { url = "https://files.pythonhosted.org/packages/c7/b0/40fb2b3a1ab9381bb39a952e8390357c8be3bdadcf6d5055d9c31e1b35ae/matplotlib-3.10.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:83847b47f6524c34b4f2d3ce726bb0541c48c8e7692729865c3df75bfa0f495a", size = 9594077, upload-time = "2025-08-30T00:14:07.012Z" }, - { url = "https://files.pythonhosted.org/packages/76/34/c4b71b69edf5b06e635eee1ed10bfc73cf8df058b66e63e30e6a55e231d5/matplotlib-3.10.6-cp314-cp314t-win_amd64.whl", hash = "sha256:c7e0518e0d223683532a07f4b512e2e0729b62674f1b3a1a69869f98e6b1c7e3", size = 8342822, upload-time = "2025-08-30T00:14:09.041Z" }, - { url = "https://files.pythonhosted.org/packages/e8/62/aeabeef1a842b6226a30d49dd13e8a7a1e81e9ec98212c0b5169f0a12d83/matplotlib-3.10.6-cp314-cp314t-win_arm64.whl", hash = "sha256:4dd83e029f5b4801eeb87c64efd80e732452781c16a9cf7415b7b63ec8f374d7", size = 8172588, upload-time = "2025-08-30T00:14:11.166Z" }, - { url = "https://files.pythonhosted.org/packages/17/6f/2551e45bea2938e0363ccdd54fa08dae7605ce782d4332497d31a7b97672/matplotlib-3.10.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:13fcd07ccf17e354398358e0307a1f53f5325dca22982556ddb9c52837b5af41", size = 8241220, upload-time = "2025-08-30T00:14:12.888Z" }, - { url = "https://files.pythonhosted.org/packages/54/7e/0f4c6e8b98105fdb162a4efde011af204ca47d7c05d735aff480ebfead1b/matplotlib-3.10.6-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:470fc846d59d1406e34fa4c32ba371039cd12c2fe86801159a965956f2575bd1", size = 8104624, upload-time = "2025-08-30T00:14:14.511Z" }, - { url = "https://files.pythonhosted.org/packages/27/27/c29696702b9317a6ade1ba6f8861e02d7423f18501729203d7a80b686f23/matplotlib-3.10.6-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f7173f8551b88f4ef810a94adae3128c2530e0d07529f7141be7f8d8c365f051", size = 8682271, upload-time = "2025-08-30T00:14:17.273Z" }, - { url = "https://files.pythonhosted.org/packages/12/bb/02c35a51484aae5f49bd29f091286e7af5f3f677a9736c58a92b3c78baeb/matplotlib-3.10.6-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:f2d684c3204fa62421bbf770ddfebc6b50130f9cad65531eeba19236d73bb488", size = 8252296, upload-time = "2025-08-30T00:14:19.49Z" }, - { url = "https://files.pythonhosted.org/packages/7d/85/41701e3092005aee9a2445f5ee3904d9dbd4a7df7a45905ffef29b7ef098/matplotlib-3.10.6-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:6f4a69196e663a41d12a728fab8751177215357906436804217d6d9cf0d4d6cf", size = 8116749, upload-time = "2025-08-30T00:14:21.344Z" }, - { url = "https://files.pythonhosted.org/packages/16/53/8d8fa0ea32a8c8239e04d022f6c059ee5e1b77517769feccd50f1df43d6d/matplotlib-3.10.6-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d6ca6ef03dfd269f4ead566ec6f3fb9becf8dab146fb999022ed85ee9f6b3eb", size = 8693933, upload-time = "2025-08-30T00:14:22.942Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/8a/76/d3c6e3a13fe484ebe7718d14e269c9569c4eb0020a968a327acb3b9a8fe6/matplotlib-3.10.8.tar.gz", hash = "sha256:2299372c19d56bcd35cf05a2738308758d32b9eaed2371898d8f5bd33f084aa3", size = 34806269, upload-time = "2025-12-10T22:56:51.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/be/a30bd917018ad220c400169fba298f2bb7003c8ccbc0c3e24ae2aacad1e8/matplotlib-3.10.8-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:00270d217d6b20d14b584c521f810d60c5c78406dc289859776550df837dcda7", size = 8239828, upload-time = "2025-12-10T22:55:02.313Z" }, + { url = "https://files.pythonhosted.org/packages/58/27/ca01e043c4841078e82cf6e80a6993dfecd315c3d79f5f3153afbb8e1ec6/matplotlib-3.10.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:37b3c1cc42aa184b3f738cfa18c1c1d72fd496d85467a6cf7b807936d39aa656", size = 8128050, upload-time = "2025-12-10T22:55:04.997Z" }, + { url = "https://files.pythonhosted.org/packages/cb/aa/7ab67f2b729ae6a91bcf9dcac0affb95fb8c56f7fd2b2af894ae0b0cf6fa/matplotlib-3.10.8-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ee40c27c795bda6a5292e9cff9890189d32f7e3a0bf04e0e3c9430c4a00c37df", size = 8700452, upload-time = "2025-12-10T22:55:07.47Z" }, + { url = "https://files.pythonhosted.org/packages/73/ae/2d5817b0acee3c49b7e7ccfbf5b273f284957cc8e270adf36375db353190/matplotlib-3.10.8-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a48f2b74020919552ea25d222d5cc6af9ca3f4eb43a93e14d068457f545c2a17", size = 9534928, upload-time = "2025-12-10T22:55:10.566Z" }, + { url = "https://files.pythonhosted.org/packages/c9/5b/8e66653e9f7c39cb2e5cab25fce4810daffa2bff02cbf5f3077cea9e942c/matplotlib-3.10.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f254d118d14a7f99d616271d6c3c27922c092dac11112670b157798b89bf4933", size = 9586377, upload-time = "2025-12-10T22:55:12.362Z" }, + { url = "https://files.pythonhosted.org/packages/e2/e2/fd0bbadf837f81edb0d208ba8f8cb552874c3b16e27cb91a31977d90875d/matplotlib-3.10.8-cp310-cp310-win_amd64.whl", hash = "sha256:f9b587c9c7274c1613a30afabf65a272114cd6cdbe67b3406f818c79d7ab2e2a", size = 8128127, upload-time = "2025-12-10T22:55:14.436Z" }, + { url = "https://files.pythonhosted.org/packages/f8/86/de7e3a1cdcfc941483af70609edc06b83e7c8a0e0dc9ac325200a3f4d220/matplotlib-3.10.8-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6be43b667360fef5c754dda5d25a32e6307a03c204f3c0fc5468b78fa87b4160", size = 8251215, upload-time = "2025-12-10T22:55:16.175Z" }, + { url = "https://files.pythonhosted.org/packages/fd/14/baad3222f424b19ce6ad243c71de1ad9ec6b2e4eb1e458a48fdc6d120401/matplotlib-3.10.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a2b336e2d91a3d7006864e0990c83b216fcdca64b5a6484912902cef87313d78", size = 8139625, upload-time = "2025-12-10T22:55:17.712Z" }, + { url = "https://files.pythonhosted.org/packages/8f/a0/7024215e95d456de5883e6732e708d8187d9753a21d32f8ddb3befc0c445/matplotlib-3.10.8-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:efb30e3baaea72ce5928e32bab719ab4770099079d66726a62b11b1ef7273be4", size = 8712614, upload-time = "2025-12-10T22:55:20.8Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f4/b8347351da9a5b3f41e26cf547252d861f685c6867d179a7c9d60ad50189/matplotlib-3.10.8-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d56a1efd5bfd61486c8bc968fa18734464556f0fb8e51690f4ac25d85cbbbbc2", size = 9540997, upload-time = "2025-12-10T22:55:23.258Z" }, + { url = "https://files.pythonhosted.org/packages/9e/c0/c7b914e297efe0bc36917bf216b2acb91044b91e930e878ae12981e461e5/matplotlib-3.10.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:238b7ce5717600615c895050239ec955d91f321c209dd110db988500558e70d6", size = 9596825, upload-time = "2025-12-10T22:55:25.217Z" }, + { url = "https://files.pythonhosted.org/packages/6f/d3/a4bbc01c237ab710a1f22b4da72f4ff6d77eb4c7735ea9811a94ae239067/matplotlib-3.10.8-cp311-cp311-win_amd64.whl", hash = "sha256:18821ace09c763ec93aef5eeff087ee493a24051936d7b9ebcad9662f66501f9", size = 8135090, upload-time = "2025-12-10T22:55:27.162Z" }, + { url = "https://files.pythonhosted.org/packages/89/dd/a0b6588f102beab33ca6f5218b31725216577b2a24172f327eaf6417d5c9/matplotlib-3.10.8-cp311-cp311-win_arm64.whl", hash = "sha256:bab485bcf8b1c7d2060b4fcb6fc368a9e6f4cd754c9c2fea281f4be21df394a2", size = 8012377, upload-time = "2025-12-10T22:55:29.185Z" }, + { url = "https://files.pythonhosted.org/packages/9e/67/f997cdcbb514012eb0d10cd2b4b332667997fb5ebe26b8d41d04962fa0e6/matplotlib-3.10.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:64fcc24778ca0404ce0cb7b6b77ae1f4c7231cdd60e6778f999ee05cbd581b9a", size = 8260453, upload-time = "2025-12-10T22:55:30.709Z" }, + { url = "https://files.pythonhosted.org/packages/7e/65/07d5f5c7f7c994f12c768708bd2e17a4f01a2b0f44a1c9eccad872433e2e/matplotlib-3.10.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b9a5ca4ac220a0cdd1ba6bcba3608547117d30468fefce49bb26f55c1a3d5c58", size = 8148321, upload-time = "2025-12-10T22:55:33.265Z" }, + { url = "https://files.pythonhosted.org/packages/3e/f3/c5195b1ae57ef85339fd7285dfb603b22c8b4e79114bae5f4f0fcf688677/matplotlib-3.10.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3ab4aabc72de4ff77b3ec33a6d78a68227bf1123465887f9905ba79184a1cc04", size = 8716944, upload-time = "2025-12-10T22:55:34.922Z" }, + { url = "https://files.pythonhosted.org/packages/00/f9/7638f5cc82ec8a7aa005de48622eecc3ed7c9854b96ba15bd76b7fd27574/matplotlib-3.10.8-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:24d50994d8c5816ddc35411e50a86ab05f575e2530c02752e02538122613371f", size = 9550099, upload-time = "2025-12-10T22:55:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/57/61/78cd5920d35b29fd2a0fe894de8adf672ff52939d2e9b43cb83cd5ce1bc7/matplotlib-3.10.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:99eefd13c0dc3b3c1b4d561c1169e65fe47aab7b8158754d7c084088e2329466", size = 9613040, upload-time = "2025-12-10T22:55:38.715Z" }, + { url = "https://files.pythonhosted.org/packages/30/4e/c10f171b6e2f44d9e3a2b96efa38b1677439d79c99357600a62cc1e9594e/matplotlib-3.10.8-cp312-cp312-win_amd64.whl", hash = "sha256:dd80ecb295460a5d9d260df63c43f4afbdd832d725a531f008dad1664f458adf", size = 8142717, upload-time = "2025-12-10T22:55:41.103Z" }, + { url = "https://files.pythonhosted.org/packages/f1/76/934db220026b5fef85f45d51a738b91dea7d70207581063cd9bd8fafcf74/matplotlib-3.10.8-cp312-cp312-win_arm64.whl", hash = "sha256:3c624e43ed56313651bc18a47f838b60d7b8032ed348911c54906b130b20071b", size = 8012751, upload-time = "2025-12-10T22:55:42.684Z" }, + { url = "https://files.pythonhosted.org/packages/3d/b9/15fd5541ef4f5b9a17eefd379356cf12175fe577424e7b1d80676516031a/matplotlib-3.10.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3f2e409836d7f5ac2f1c013110a4d50b9f7edc26328c108915f9075d7d7a91b6", size = 8261076, upload-time = "2025-12-10T22:55:44.648Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a0/2ba3473c1b66b9c74dc7107c67e9008cb1782edbe896d4c899d39ae9cf78/matplotlib-3.10.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:56271f3dac49a88d7fca5060f004d9d22b865f743a12a23b1e937a0be4818ee1", size = 8148794, upload-time = "2025-12-10T22:55:46.252Z" }, + { url = "https://files.pythonhosted.org/packages/75/97/a471f1c3eb1fd6f6c24a31a5858f443891d5127e63a7788678d14e249aea/matplotlib-3.10.8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a0a7f52498f72f13d4a25ea70f35f4cb60642b466cbb0a9be951b5bc3f45a486", size = 8718474, upload-time = "2025-12-10T22:55:47.864Z" }, + { url = "https://files.pythonhosted.org/packages/01/be/cd478f4b66f48256f42927d0acbcd63a26a893136456cd079c0cc24fbabf/matplotlib-3.10.8-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:646d95230efb9ca614a7a594d4fcacde0ac61d25e37dd51710b36477594963ce", size = 9549637, upload-time = "2025-12-10T22:55:50.048Z" }, + { url = "https://files.pythonhosted.org/packages/5d/7c/8dc289776eae5109e268c4fb92baf870678dc048a25d4ac903683b86d5bf/matplotlib-3.10.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f89c151aab2e2e23cb3fe0acad1e8b82841fd265379c4cecd0f3fcb34c15e0f6", size = 9613678, upload-time = "2025-12-10T22:55:52.21Z" }, + { url = "https://files.pythonhosted.org/packages/64/40/37612487cc8a437d4dd261b32ca21fe2d79510fe74af74e1f42becb1bdb8/matplotlib-3.10.8-cp313-cp313-win_amd64.whl", hash = "sha256:e8ea3e2d4066083e264e75c829078f9e149fa119d27e19acd503de65e0b13149", size = 8142686, upload-time = "2025-12-10T22:55:54.253Z" }, + { url = "https://files.pythonhosted.org/packages/66/52/8d8a8730e968185514680c2a6625943f70269509c3dcfc0dcf7d75928cb8/matplotlib-3.10.8-cp313-cp313-win_arm64.whl", hash = "sha256:c108a1d6fa78a50646029cb6d49808ff0fc1330fda87fa6f6250c6b5369b6645", size = 8012917, upload-time = "2025-12-10T22:55:56.268Z" }, + { url = "https://files.pythonhosted.org/packages/b5/27/51fe26e1062f298af5ef66343d8ef460e090a27fea73036c76c35821df04/matplotlib-3.10.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ad3d9833a64cf48cc4300f2b406c3d0f4f4724a91c0bd5640678a6ba7c102077", size = 8305679, upload-time = "2025-12-10T22:55:57.856Z" }, + { url = "https://files.pythonhosted.org/packages/2c/1e/4de865bc591ac8e3062e835f42dd7fe7a93168d519557837f0e37513f629/matplotlib-3.10.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:eb3823f11823deade26ce3b9f40dcb4a213da7a670013929f31d5f5ed1055b22", size = 8198336, upload-time = "2025-12-10T22:55:59.371Z" }, + { url = "https://files.pythonhosted.org/packages/c6/cb/2f7b6e75fb4dce87ef91f60cac4f6e34f4c145ab036a22318ec837971300/matplotlib-3.10.8-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d9050fee89a89ed57b4fb2c1bfac9a3d0c57a0d55aed95949eedbc42070fea39", size = 8731653, upload-time = "2025-12-10T22:56:01.032Z" }, + { url = "https://files.pythonhosted.org/packages/46/b3/bd9c57d6ba670a37ab31fb87ec3e8691b947134b201f881665b28cc039ff/matplotlib-3.10.8-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b44d07310e404ba95f8c25aa5536f154c0a8ec473303535949e52eb71d0a1565", size = 9561356, upload-time = "2025-12-10T22:56:02.95Z" }, + { url = "https://files.pythonhosted.org/packages/c0/3d/8b94a481456dfc9dfe6e39e93b5ab376e50998cddfd23f4ae3b431708f16/matplotlib-3.10.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0a33deb84c15ede243aead39f77e990469fff93ad1521163305095b77b72ce4a", size = 9614000, upload-time = "2025-12-10T22:56:05.411Z" }, + { url = "https://files.pythonhosted.org/packages/bd/cd/bc06149fe5585ba800b189a6a654a75f1f127e8aab02fd2be10df7fa500c/matplotlib-3.10.8-cp313-cp313t-win_amd64.whl", hash = "sha256:3a48a78d2786784cc2413e57397981fb45c79e968d99656706018d6e62e57958", size = 8220043, upload-time = "2025-12-10T22:56:07.551Z" }, + { url = "https://files.pythonhosted.org/packages/e3/de/b22cf255abec916562cc04eef457c13e58a1990048de0c0c3604d082355e/matplotlib-3.10.8-cp313-cp313t-win_arm64.whl", hash = "sha256:15d30132718972c2c074cd14638c7f4592bd98719e2308bccea40e0538bc0cb5", size = 8062075, upload-time = "2025-12-10T22:56:09.178Z" }, + { url = "https://files.pythonhosted.org/packages/3c/43/9c0ff7a2f11615e516c3b058e1e6e8f9614ddeca53faca06da267c48345d/matplotlib-3.10.8-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:b53285e65d4fa4c86399979e956235deb900be5baa7fc1218ea67fbfaeaadd6f", size = 8262481, upload-time = "2025-12-10T22:56:10.885Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ca/e8ae28649fcdf039fda5ef554b40a95f50592a3c47e6f7270c9561c12b07/matplotlib-3.10.8-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:32f8dce744be5569bebe789e46727946041199030db8aeb2954d26013a0eb26b", size = 8151473, upload-time = "2025-12-10T22:56:12.377Z" }, + { url = "https://files.pythonhosted.org/packages/f1/6f/009d129ae70b75e88cbe7e503a12a4c0670e08ed748a902c2568909e9eb5/matplotlib-3.10.8-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4cf267add95b1c88300d96ca837833d4112756045364f5c734a2276038dae27d", size = 9553896, upload-time = "2025-12-10T22:56:14.432Z" }, + { url = "https://files.pythonhosted.org/packages/f5/26/4221a741eb97967bc1fd5e4c52b9aa5a91b2f4ec05b59f6def4d820f9df9/matplotlib-3.10.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2cf5bd12cecf46908f286d7838b2abc6c91cda506c0445b8223a7c19a00df008", size = 9824193, upload-time = "2025-12-10T22:56:16.29Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f3/3abf75f38605772cf48a9daf5821cd4f563472f38b4b828c6fba6fa6d06e/matplotlib-3.10.8-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:41703cc95688f2516b480f7f339d8851a6035f18e100ee6a32bc0b8536a12a9c", size = 9615444, upload-time = "2025-12-10T22:56:18.155Z" }, + { url = "https://files.pythonhosted.org/packages/93/a5/de89ac80f10b8dc615807ee1133cd99ac74082581196d4d9590bea10690d/matplotlib-3.10.8-cp314-cp314-win_amd64.whl", hash = "sha256:83d282364ea9f3e52363da262ce32a09dfe241e4080dcedda3c0db059d3c1f11", size = 8272719, upload-time = "2025-12-10T22:56:20.366Z" }, + { url = "https://files.pythonhosted.org/packages/69/ce/b006495c19ccc0a137b48083168a37bd056392dee02f87dba0472f2797fe/matplotlib-3.10.8-cp314-cp314-win_arm64.whl", hash = "sha256:2c1998e92cd5999e295a731bcb2911c75f597d937341f3030cc24ef2733d78a8", size = 8144205, upload-time = "2025-12-10T22:56:22.239Z" }, + { url = "https://files.pythonhosted.org/packages/68/d9/b31116a3a855bd313c6fcdb7226926d59b041f26061c6c5b1be66a08c826/matplotlib-3.10.8-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:b5a2b97dbdc7d4f353ebf343744f1d1f1cca8aa8bfddb4262fcf4306c3761d50", size = 8305785, upload-time = "2025-12-10T22:56:24.218Z" }, + { url = "https://files.pythonhosted.org/packages/1e/90/6effe8103f0272685767ba5f094f453784057072f49b393e3ea178fe70a5/matplotlib-3.10.8-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3f5c3e4da343bba819f0234186b9004faba952cc420fbc522dc4e103c1985908", size = 8198361, upload-time = "2025-12-10T22:56:26.787Z" }, + { url = "https://files.pythonhosted.org/packages/d7/65/a73188711bea603615fc0baecca1061429ac16940e2385433cc778a9d8e7/matplotlib-3.10.8-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f62550b9a30afde8c1c3ae450e5eb547d579dd69b25c2fc7a1c67f934c1717a", size = 9561357, upload-time = "2025-12-10T22:56:28.953Z" }, + { url = "https://files.pythonhosted.org/packages/f4/3d/b5c5d5d5be8ce63292567f0e2c43dde9953d3ed86ac2de0a72e93c8f07a1/matplotlib-3.10.8-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:495672de149445ec1b772ff2c9ede9b769e3cb4f0d0aa7fa730d7f59e2d4e1c1", size = 9823610, upload-time = "2025-12-10T22:56:31.455Z" }, + { url = "https://files.pythonhosted.org/packages/4d/4b/e7beb6bbd49f6bae727a12b270a2654d13c397576d25bd6786e47033300f/matplotlib-3.10.8-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:595ba4d8fe983b88f0eec8c26a241e16d6376fe1979086232f481f8f3f67494c", size = 9614011, upload-time = "2025-12-10T22:56:33.85Z" }, + { url = "https://files.pythonhosted.org/packages/7c/e6/76f2813d31f032e65f6f797e3f2f6e4aab95b65015924b1c51370395c28a/matplotlib-3.10.8-cp314-cp314t-win_amd64.whl", hash = "sha256:25d380fe8b1dc32cf8f0b1b448470a77afb195438bafdf1d858bfb876f3edf7b", size = 8362801, upload-time = "2025-12-10T22:56:36.107Z" }, + { url = "https://files.pythonhosted.org/packages/5d/49/d651878698a0b67f23aa28e17f45a6d6dd3d3f933fa29087fa4ce5947b5a/matplotlib-3.10.8-cp314-cp314t-win_arm64.whl", hash = "sha256:113bb52413ea508ce954a02c10ffd0d565f9c3bc7f2eddc27dfe1731e71c7b5f", size = 8192560, upload-time = "2025-12-10T22:56:38.008Z" }, + { url = "https://files.pythonhosted.org/packages/f5/43/31d59500bb950b0d188e149a2e552040528c13d6e3d6e84d0cccac593dcd/matplotlib-3.10.8-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:f97aeb209c3d2511443f8797e3e5a569aebb040d4f8bc79aa3ee78a8fb9e3dd8", size = 8237252, upload-time = "2025-12-10T22:56:39.529Z" }, + { url = "https://files.pythonhosted.org/packages/0c/2c/615c09984f3c5f907f51c886538ad785cf72e0e11a3225de2c0f9442aecc/matplotlib-3.10.8-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fb061f596dad3a0f52b60dc6a5dec4a0c300dec41e058a7efe09256188d170b7", size = 8124693, upload-time = "2025-12-10T22:56:41.758Z" }, + { url = "https://files.pythonhosted.org/packages/91/e1/2757277a1c56041e1fc104b51a0f7b9a4afc8eb737865d63cababe30bc61/matplotlib-3.10.8-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:12d90df9183093fcd479f4172ac26b322b1248b15729cb57f42f71f24c7e37a3", size = 8702205, upload-time = "2025-12-10T22:56:43.415Z" }, + { url = "https://files.pythonhosted.org/packages/04/30/3afaa31c757f34b7725ab9d2ba8b48b5e89c2019c003e7d0ead143aabc5a/matplotlib-3.10.8-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:6da7c2ce169267d0d066adcf63758f0604aa6c3eebf67458930f9d9b79ad1db1", size = 8249198, upload-time = "2025-12-10T22:56:45.584Z" }, + { url = "https://files.pythonhosted.org/packages/48/2f/6334aec331f57485a642a7c8be03cb286f29111ae71c46c38b363230063c/matplotlib-3.10.8-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:9153c3292705be9f9c64498a8872118540c3f4123d1a1c840172edf262c8be4a", size = 8136817, upload-time = "2025-12-10T22:56:47.339Z" }, + { url = "https://files.pythonhosted.org/packages/73/e4/6d6f14b2a759c622f191b2d67e9075a3f56aaccb3be4bb9bb6890030d0a0/matplotlib-3.10.8-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ae029229a57cd1e8fe542485f27e7ca7b23aa9e8944ddb4985d0bc444f1eca2", size = 8713867, upload-time = "2025-12-10T22:56:48.954Z" }, ] [[package]] @@ -674,6 +1122,70 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/49/26/aaca612a0634ceede20682e692a6c55e35a94c21ba36b807cc40fe910ae1/memory_profiler-0.61.0-py3-none-any.whl", hash = "sha256:400348e61031e3942ad4d4109d18753b2fb08c2f6fb8290671c5513a34182d84", size = 31803, upload-time = "2022-11-15T17:57:27.031Z" }, ] +[[package]] +name = "murmurhash" +version = "1.0.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/23/2e/88c147931ea9725d634840d538622e94122bceaf346233349b7b5c62964b/murmurhash-1.0.15.tar.gz", hash = "sha256:58e2b27b7847f9e2a6edf10b47a8c8dd70a4705f45dccb7bf76aeadacf56ba01", size = 13291, upload-time = "2025-11-14T09:51:15.272Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/09/3c/5e59e29fe971365d27f191a5cbf8a5fb492746e458604fe5d39810da4668/murmurhash-1.0.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f4989c16053a9a83b02c520dd00a31f0877d5fd2ab8a9b6b75ed9eba0e25c489", size = 27463, upload-time = "2025-11-14T09:49:53.158Z" }, + { url = "https://files.pythonhosted.org/packages/38/3d/ace00a9b82beaa99a8a7a52e98171cfbf13c0066d2f820e84a5d572e3bd0/murmurhash-1.0.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:899068ba3d7c371e7edd093852c634cce802fefd9aaddfcc0d2fda1d7433c7f9", size = 27714, upload-time = "2025-11-14T09:49:54.855Z" }, + { url = "https://files.pythonhosted.org/packages/10/0f/34f1c4f97424ea1bc72b1e3bdf61ac34f4c5555ec9163721f1e4cafe5b1d/murmurhash-1.0.15-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fe883982114de576c793fd1cf55945c8ee6453ad4c4785ac1a48f84e74fdc650", size = 122570, upload-time = "2025-11-14T09:49:55.977Z" }, + { url = "https://files.pythonhosted.org/packages/b9/75/0019717a16ce5a7b088fc50a3ecb513035e4196c5e569bf4a2e16bcc0414/murmurhash-1.0.15-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:342277d8d7f712d136507fb3ccdba26c076a34ca0f8d1b96f65f0daa556da2e9", size = 123194, upload-time = "2025-11-14T09:49:57.462Z" }, + { url = "https://files.pythonhosted.org/packages/7b/a4/c1c95ce60b816c2255098164e424752779269c93f5d6dceaa213346789a2/murmurhash-1.0.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bc54facccb32fe1e97d6231edd4f3e2937467c35658b26aa35bbd6a87ebb7cb0", size = 122461, upload-time = "2025-11-14T09:49:58.686Z" }, + { url = "https://files.pythonhosted.org/packages/63/28/e1f79369a6e8d1a5901346ed2fd3a5c56e647d0b849044870c071cb64e1c/murmurhash-1.0.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e525bbd8e26e6b9ab1b56758a59b16c2fffd73bad2f7b8bf361c16f70ff1d980", size = 121676, upload-time = "2025-11-14T09:49:59.888Z" }, + { url = "https://files.pythonhosted.org/packages/1d/7c/e2be1f5387e5898f6551cf81c4220975858b9dbda4d471b133750945599a/murmurhash-1.0.15-cp310-cp310-win_amd64.whl", hash = "sha256:2224f30f7729717644745a6f513ea7662517dfe7b1867cf1588177f64c61df3c", size = 25156, upload-time = "2025-11-14T09:50:01.016Z" }, + { url = "https://files.pythonhosted.org/packages/74/07/0df6e1a753de68368662cbbb8f88558e2c877d3886ac12b30953fb8ed335/murmurhash-1.0.15-cp310-cp310-win_arm64.whl", hash = "sha256:8a181494b5f03ba831f9a13f2de3aab9ef591e508e57239043d65c5c592f5837", size = 23270, upload-time = "2025-11-14T09:50:01.99Z" }, + { url = "https://files.pythonhosted.org/packages/6b/ca/77d3e69924a8eb4508bb4f0ad34e46adbeedeb93616a71080e61e53dad71/murmurhash-1.0.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f32307fb9347680bb4fe1cbef6362fb39bd994f1b59abd8c09ca174e44199081", size = 27397, upload-time = "2025-11-14T09:50:03.077Z" }, + { url = "https://files.pythonhosted.org/packages/e6/53/a936f577d35b245d47b310f29e5e9f09fcac776c8c992f1ab51a9fb0cee2/murmurhash-1.0.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:539d8405885d1d19c005f3a2313b47e8e54b0ee89915eb8dfbb430b194328e6c", size = 27692, upload-time = "2025-11-14T09:50:04.144Z" }, + { url = "https://files.pythonhosted.org/packages/4d/64/5f8cfd1fd9cbeb43fcff96672f5bd9e7e1598d1c970f808ecd915490dc20/murmurhash-1.0.15-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c4cd739a00f5a4602201b74568ddabae46ec304719d9be752fd8f534a9464b5e", size = 128396, upload-time = "2025-11-14T09:50:05.268Z" }, + { url = "https://files.pythonhosted.org/packages/ac/10/d9ce29d559a75db0d8a3f13ea12c7f541ec9de2afca38dc70418b890eedb/murmurhash-1.0.15-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:44d211bcc3ec203c47dac06f48ee871093fcbdffa6652a6cc5ea7180306680a8", size = 128687, upload-time = "2025-11-14T09:50:06.527Z" }, + { url = "https://files.pythonhosted.org/packages/48/cd/dc97ab7e68cdfa1537a56e36dbc846c5a66701cc39ecee2d4399fe61996c/murmurhash-1.0.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f9bf47101354fb1dc4b2e313192566f04ba295c28a37e2f71c692759acc1ba3c", size = 128198, upload-time = "2025-11-14T09:50:08.062Z" }, + { url = "https://files.pythonhosted.org/packages/53/73/32f2aaa22c1e4afae337106baf0c938abf36a6cc879cfee83a00461bbbf7/murmurhash-1.0.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3c69b4d3bcd6233782a78907fe10b9b7a796bdc5d28060cf097d067bec280a5d", size = 127214, upload-time = "2025-11-14T09:50:09.265Z" }, + { url = "https://files.pythonhosted.org/packages/82/ed/812103a7f353eba2d83655b08205e13a38c93b4db0692f94756e1eb44516/murmurhash-1.0.15-cp311-cp311-win_amd64.whl", hash = "sha256:e43a69496342ce530bdd670264cb7c8f45490b296e4764c837ce577e3c7ebd53", size = 25241, upload-time = "2025-11-14T09:50:10.373Z" }, + { url = "https://files.pythonhosted.org/packages/eb/5f/2c511bdd28f7c24da37a00116ffd0432b65669d098f0d0260c66ac0ffdc2/murmurhash-1.0.15-cp311-cp311-win_arm64.whl", hash = "sha256:f3e99a6ee36ef5372df5f138e3d9c801420776d3641a34a49e5c2555f44edba7", size = 23216, upload-time = "2025-11-14T09:50:11.651Z" }, + { url = "https://files.pythonhosted.org/packages/b6/46/be8522d3456fdccf1b8b049c6d82e7a3c1114c4fc2cfe14b04cba4b3e701/murmurhash-1.0.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d37e3ae44746bca80b1a917c2ea625cf216913564ed43f69d2888e5df97db0cb", size = 27884, upload-time = "2025-11-14T09:50:13.133Z" }, + { url = "https://files.pythonhosted.org/packages/ed/cc/630449bf4f6178d7daf948ce46ad00b25d279065fc30abd8d706be3d87e0/murmurhash-1.0.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0861cb11039409eaf46878456b7d985ef17b6b484103a6fc367b2ecec846891d", size = 27855, upload-time = "2025-11-14T09:50:14.859Z" }, + { url = "https://files.pythonhosted.org/packages/ff/30/ea8f601a9bf44db99468696efd59eb9cff1157cd55cb586d67116697583f/murmurhash-1.0.15-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5a301decfaccfec70fe55cb01dde2a012c3014a874542eaa7cc73477bb749616", size = 134088, upload-time = "2025-11-14T09:50:15.958Z" }, + { url = "https://files.pythonhosted.org/packages/c9/de/c40ce8c0877d406691e735b8d6e9c815f36a82b499d358313db5dbe219d7/murmurhash-1.0.15-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:32c6fde7bd7e9407003370a07b5f4addacabe1556ad3dc2cac246b7a2bba3400", size = 133978, upload-time = "2025-11-14T09:50:17.572Z" }, + { url = "https://files.pythonhosted.org/packages/47/84/bd49963ecd84ebab2fe66595e2d1ed41d5e8b5153af5dc930f0bd827007c/murmurhash-1.0.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d8b43a7011540dc3c7ce66f2134df9732e2bc3bbb4a35f6458bc755e48bde26", size = 132956, upload-time = "2025-11-14T09:50:18.742Z" }, + { url = "https://files.pythonhosted.org/packages/4f/7c/2530769c545074417c862583f05f4245644599f1e9ff619b3dfe2969aafc/murmurhash-1.0.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:43bf4541892ecd95963fcd307bf1c575fc0fee1682f41c93007adee71ca2bb40", size = 134184, upload-time = "2025-11-14T09:50:19.941Z" }, + { url = "https://files.pythonhosted.org/packages/84/a4/b249b042f5afe34d14ada2dc4afc777e883c15863296756179652e081c44/murmurhash-1.0.15-cp312-cp312-win_amd64.whl", hash = "sha256:f4ac15a2089dc42e6eb0966622d42d2521590a12c92480aafecf34c085302cca", size = 25647, upload-time = "2025-11-14T09:50:21.049Z" }, + { url = "https://files.pythonhosted.org/packages/13/bf/028179259aebc18fd4ba5cae2601d1d47517427a537ab44336446431a215/murmurhash-1.0.15-cp312-cp312-win_arm64.whl", hash = "sha256:4a70ca4ae19e600d9be3da64d00710e79dde388a4d162f22078d64844d0ebdda", size = 23338, upload-time = "2025-11-14T09:50:22.359Z" }, + { url = "https://files.pythonhosted.org/packages/29/2f/ba300b5f04dae0409202d6285668b8a9d3ade43a846abee3ef611cb388d5/murmurhash-1.0.15-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fe50dc70e52786759358fd1471e309b94dddfffb9320d9dfea233c7684c894ba", size = 27861, upload-time = "2025-11-14T09:50:23.804Z" }, + { url = "https://files.pythonhosted.org/packages/34/02/29c19d268e6f4ea1ed2a462c901eed1ed35b454e2cbc57da592fad663ac6/murmurhash-1.0.15-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1349a7c23f6092e7998ddc5bd28546cc31a595afc61e9fdb3afc423feec3d7ad", size = 27840, upload-time = "2025-11-14T09:50:25.146Z" }, + { url = "https://files.pythonhosted.org/packages/e2/63/58e2de2b5232cd294c64092688c422196e74f9fa8b3958bdf02d33df24b9/murmurhash-1.0.15-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3ba6d05de2613535b5a9227d4ad8ef40a540465f64660d4a8800634ae10e04f", size = 133080, upload-time = "2025-11-14T09:50:26.566Z" }, + { url = "https://files.pythonhosted.org/packages/aa/9a/d13e2e9f8ba1ced06840921a50f7cece0a475453284158a3018b72679761/murmurhash-1.0.15-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fa1b70b3cc2801ab44179c65827bbd12009c68b34e9d9ce7125b6a0bd35af63c", size = 132648, upload-time = "2025-11-14T09:50:27.788Z" }, + { url = "https://files.pythonhosted.org/packages/b2/e1/47994f1813fa205c84977b0ff51ae6709f8539af052c7491a5f863d82bdc/murmurhash-1.0.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:213d710fb6f4ef3bc11abbfad0fa94a75ffb675b7dc158c123471e5de869f9af", size = 131502, upload-time = "2025-11-14T09:50:29.339Z" }, + { url = "https://files.pythonhosted.org/packages/b9/ea/90c1fd00b4aeb704fb5e84cd666b33ffd7f245155048071ffbb51d2bb57d/murmurhash-1.0.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b65a5c4e7f5d71f7ccac2d2b60bdf7092d7976270878cfec59d5a66a533db823", size = 132736, upload-time = "2025-11-14T09:50:30.545Z" }, + { url = "https://files.pythonhosted.org/packages/00/db/da73462dbfa77f6433b128d2120ba7ba300f8c06dc4f4e022c38d240a5f5/murmurhash-1.0.15-cp313-cp313-win_amd64.whl", hash = "sha256:9aba94c5d841e1904cd110e94ceb7f49cfb60a874bbfb27e0373622998fb7c7c", size = 25682, upload-time = "2025-11-14T09:50:31.624Z" }, + { url = "https://files.pythonhosted.org/packages/bb/83/032729ef14971b938fbef41ee125fc8800020ee229bd35178b6ede8ee934/murmurhash-1.0.15-cp313-cp313-win_arm64.whl", hash = "sha256:263807eca40d08c7b702413e45cca75ecb5883aa337237dc5addb660f1483378", size = 23370, upload-time = "2025-11-14T09:50:33.264Z" }, + { url = "https://files.pythonhosted.org/packages/10/83/7547d9205e9bd2f8e5dfd0b682cc9277594f98909f228eb359489baec1df/murmurhash-1.0.15-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:694fd42a74b7ce257169d14c24aa616aa6cd4ccf8abe50eca0557e08da99d055", size = 29955, upload-time = "2025-11-14T09:50:34.488Z" }, + { url = "https://files.pythonhosted.org/packages/b7/c7/3afd5de7a5b3ae07fe2d3a3271b327ee1489c58ba2b2f2159bd31a25edb9/murmurhash-1.0.15-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a2ea4546ba426390beff3cd10db8f0152fdc9072c4f2583ec7d8aa9f3e4ac070", size = 30108, upload-time = "2025-11-14T09:50:35.53Z" }, + { url = "https://files.pythonhosted.org/packages/02/69/d6637ee67d78ebb2538c00411f28ea5c154886bbe1db16c49435a8a4ab16/murmurhash-1.0.15-cp313-cp313t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:34e5a91139c40b10f98d0b297907f5d5267b4b1b2e5dd2eb74a021824f751b98", size = 164054, upload-time = "2025-11-14T09:50:36.591Z" }, + { url = "https://files.pythonhosted.org/packages/ab/4c/89e590165b4c7da6bf941441212a721a270195332d3aacfdfdf527d466ca/murmurhash-1.0.15-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:dc35606868a5961cf42e79314ca0bddf5a400ce377b14d83192057928d6252ec", size = 168153, upload-time = "2025-11-14T09:50:37.856Z" }, + { url = "https://files.pythonhosted.org/packages/07/7a/95c42df0c21d2e413b9fcd17317a7587351daeb264dc29c6aec1fdbd26f8/murmurhash-1.0.15-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:43cc6ac3b91ca0f7a5ae9c063ba4d6c26972c97fd7c25280ecc666413e4c5535", size = 164345, upload-time = "2025-11-14T09:50:39.346Z" }, + { url = "https://files.pythonhosted.org/packages/d0/22/9d02c880a88b83bb3ce7d6a38fb727373ab78d82e5f3d8d9fc5612219f90/murmurhash-1.0.15-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:847d712136cb462f0e4bd6229ee2d9eb996d8854eb8312dff3d20c8f5181fda5", size = 161990, upload-time = "2025-11-14T09:50:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e3/750232524e0dc262e8dcede6536dafc766faadd9a52f1d23746b02948ad8/murmurhash-1.0.15-cp313-cp313t-win_amd64.whl", hash = "sha256:2680851af6901dbe66cc4aa7ef8e263de47e6e1b425ae324caa571bdf18f8d58", size = 28812, upload-time = "2025-11-14T09:50:41.971Z" }, + { url = "https://files.pythonhosted.org/packages/ff/89/4ad9d215ef6ade89f27a72dc4e86b98ef1a43534cc3e6a6900a362a0bf0a/murmurhash-1.0.15-cp313-cp313t-win_arm64.whl", hash = "sha256:189a8de4d657b5da9efd66601b0636330b08262b3a55431f2379097c986995d0", size = 25398, upload-time = "2025-11-14T09:50:43.023Z" }, + { url = "https://files.pythonhosted.org/packages/1c/69/726df275edf07688146966e15eaaa23168100b933a2e1a29b37eb56c6db8/murmurhash-1.0.15-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:7c4280136b738e85ff76b4bdc4341d0b867ee753e73fd8b6994288080c040d0b", size = 28029, upload-time = "2025-11-14T09:50:44.124Z" }, + { url = "https://files.pythonhosted.org/packages/59/8f/24ecf9061bc2b20933df8aba47c73e904274ea8811c8300cab92f6f82372/murmurhash-1.0.15-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d4d681f474830489e2ec1d912095cfff027fbaf2baa5414c7e9d25b89f0fab68", size = 27912, upload-time = "2025-11-14T09:50:45.266Z" }, + { url = "https://files.pythonhosted.org/packages/ba/26/fff3caba25aa3c0622114e03c69fb66c839b22335b04d7cce91a3a126d44/murmurhash-1.0.15-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d7e47c5746785db6a43b65fac47b9e63dd71dfbd89a8c92693425b9715e68c6e", size = 131847, upload-time = "2025-11-14T09:50:46.819Z" }, + { url = "https://files.pythonhosted.org/packages/df/e4/0f2b9fc533467a27afb4e906c33f32d5f637477de87dd94690e0c44335a6/murmurhash-1.0.15-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e8e674f02a99828c8a671ba99cd03299381b2f0744e6f25c29cadfc6151dc724", size = 132267, upload-time = "2025-11-14T09:50:48.298Z" }, + { url = "https://files.pythonhosted.org/packages/da/bf/9d1c107989728ec46e25773d503aa54070b32822a18cfa7f9d5f41bc17a5/murmurhash-1.0.15-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:26fd7c7855ac4850ad8737991d7b0e3e501df93ebaf0cf45aa5954303085fdba", size = 131894, upload-time = "2025-11-14T09:50:49.485Z" }, + { url = "https://files.pythonhosted.org/packages/0d/81/dcf27c71445c0e993b10e33169a098ca60ee702c5c58fcbde205fa6332a6/murmurhash-1.0.15-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:cb8ebafae60d5f892acff533cc599a359954d8c016a829514cb3f6e9ee10f322", size = 132054, upload-time = "2025-11-14T09:50:50.747Z" }, + { url = "https://files.pythonhosted.org/packages/bc/32/e874a14b2d2246bd2d16f80f49fad393a3865d4ee7d66d2cae939a67a29a/murmurhash-1.0.15-cp314-cp314-win_amd64.whl", hash = "sha256:898a629bf111f1aeba4437e533b5b836c0a9d2dd12d6880a9c75f6ca13e30e22", size = 26579, upload-time = "2025-11-14T09:50:52.278Z" }, + { url = "https://files.pythonhosted.org/packages/af/8e/4fca051ed8ae4d23a15aaf0a82b18cb368e8cf84f1e3b474d5749ec46069/murmurhash-1.0.15-cp314-cp314-win_arm64.whl", hash = "sha256:88dc1dd53b7b37c0df1b8b6bce190c12763014492f0269ff7620dc6027f470f4", size = 24341, upload-time = "2025-11-14T09:50:53.295Z" }, + { url = "https://files.pythonhosted.org/packages/38/9c/c72c2a4edd86aac829337ab9f83cf04cdb15e5d503e4c9a3a243f30a261c/murmurhash-1.0.15-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:6cb4e962ec4f928b30c271b2d84e6707eff6d942552765b663743cfa618b294b", size = 30146, upload-time = "2025-11-14T09:50:54.705Z" }, + { url = "https://files.pythonhosted.org/packages/ac/d7/72b47ebc86436cd0aa1fd4c6e8779521ec389397ac11389990278d0f7a47/murmurhash-1.0.15-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5678a3ea4fbf0cbaaca2bed9b445f556f294d5f799c67185d05ffcb221a77faf", size = 30141, upload-time = "2025-11-14T09:50:55.829Z" }, + { url = "https://files.pythonhosted.org/packages/64/bb/6d2f09135079c34dc2d26e961c52742d558b320c61503f273eab6ba743d9/murmurhash-1.0.15-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ef19f38c6b858eef83caf710773db98c8f7eb2193b4c324650c74f3d8ba299e0", size = 163898, upload-time = "2025-11-14T09:50:56.946Z" }, + { url = "https://files.pythonhosted.org/packages/b9/e2/9c1b462e33f9cb2d632056f07c90b502fc20bd7da50a15d0557343bd2fed/murmurhash-1.0.15-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22aa3ceaedd2e57078b491ed08852d512b84ff4ff9bb2ff3f9bf0eec7f214c9e", size = 168040, upload-time = "2025-11-14T09:50:58.234Z" }, + { url = "https://files.pythonhosted.org/packages/e8/73/8694db1408fcdfa73589f7df6c445437ea146986fa1e393ec60d26d6e30c/murmurhash-1.0.15-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bba0e0262c0d08682b028cb963ac477bd9839029486fa1333fc5c01fb6072749", size = 164239, upload-time = "2025-11-14T09:50:59.95Z" }, + { url = "https://files.pythonhosted.org/packages/2d/f9/8e360bdfc3c44e267e7e046f0e0b9922766da92da26959a6963f597e6bb5/murmurhash-1.0.15-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:4fd8189ee293a09f30f4931408f40c28ccd42d9de4f66595f8814879339378bc", size = 161811, upload-time = "2025-11-14T09:51:01.289Z" }, + { url = "https://files.pythonhosted.org/packages/f9/31/97649680595b1096803d877ababb9a67c07f4378f177ec885eea28b9db6d/murmurhash-1.0.15-cp314-cp314t-win_amd64.whl", hash = "sha256:66395b1388f7daa5103db92debe06842ae3be4c0749ef6db68b444518666cdcc", size = 29817, upload-time = "2025-11-14T09:51:02.493Z" }, + { url = "https://files.pythonhosted.org/packages/76/66/4fce8755f25d77324401886c00017c556be7ca3039575b94037aff905385/murmurhash-1.0.15-cp314-cp314t-win_arm64.whl", hash = "sha256:c22e56c6a0b70598a66e456de5272f76088bc623688da84ef403148a6d41851d", size = 26219, upload-time = "2025-11-14T09:51:03.563Z" }, +] + [[package]] name = "mypy-extensions" version = "1.1.0" @@ -687,15 +1199,49 @@ wheels = [ name = "networkx" version = "3.4.2" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11'", +] sdist = { url = "https://files.pythonhosted.org/packages/fd/1d/06475e1cd5264c0b870ea2cc6fdb3e37177c1e565c43f56ff17a10e3937f/networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1", size = 2151368, upload-time = "2024-10-21T12:39:38.695Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f", size = 1723263, upload-time = "2024-10-21T12:39:36.247Z" }, ] +[[package]] +name = "networkx" +version = "3.6.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/6a/51/63fe664f3908c97be9d2e4f1158eb633317598cfa6e1fc14af5383f17512/networkx-3.6.1.tar.gz", hash = "sha256:26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509", size = 2517025, upload-time = "2025-12-08T17:02:39.908Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl", hash = "sha256:d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762", size = 2068504, upload-time = "2025-12-08T17:02:38.159Z" }, +] + +[[package]] +name = "nltk" +version = "3.9.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "joblib" }, + { name = "regex" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f9/76/3a5e4312c19a028770f86fd7c058cf9f4ec4321c6cf7526bab998a5b683c/nltk-3.9.2.tar.gz", hash = "sha256:0f409e9b069ca4177c1903c3e843eef90c7e92992fa4931ae607da6de49e1419", size = 2887629, upload-time = "2025-10-01T07:19:23.764Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/90/81ac364ef94209c100e12579629dc92bf7a709a84af32f8c551b02c07e94/nltk-3.9.2-py3-none-any.whl", hash = "sha256:1e209d2b3009110635ed9709a67a1a3e33a10f799490fa71cf4bec218c11c88a", size = 1513404, upload-time = "2025-10-01T07:19:21.648Z" }, +] + [[package]] name = "numpy" version = "2.2.6" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11'", +] sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440, upload-time = "2025-05-17T22:38:04.611Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb", size = 21165245, upload-time = "2025-05-17T21:27:58.555Z" }, @@ -754,133 +1300,212 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666, upload-time = "2025-05-17T21:45:31.426Z" }, ] +[[package]] +name = "numpy" +version = "2.4.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/57/fd/0005efbd0af48e55eb3c7208af93f2862d4b1a56cd78e84309a2d959208d/numpy-2.4.2.tar.gz", hash = "sha256:659a6107e31a83c4e33f763942275fd278b21d095094044eb35569e86a21ddae", size = 20723651, upload-time = "2026-01-31T23:13:10.135Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/44/71852273146957899753e69986246d6a176061ea183407e95418c2aa4d9a/numpy-2.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7e88598032542bd49af7c4747541422884219056c268823ef6e5e89851c8825", size = 16955478, upload-time = "2026-01-31T23:10:25.623Z" }, + { url = "https://files.pythonhosted.org/packages/74/41/5d17d4058bd0cd96bcbd4d9ff0fb2e21f52702aab9a72e4a594efa18692f/numpy-2.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7edc794af8b36ca37ef5fcb5e0d128c7e0595c7b96a2318d1badb6fcd8ee86b1", size = 14965467, upload-time = "2026-01-31T23:10:28.186Z" }, + { url = "https://files.pythonhosted.org/packages/49/48/fb1ce8136c19452ed15f033f8aee91d5defe515094e330ce368a0647846f/numpy-2.4.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:6e9f61981ace1360e42737e2bae58b27bf28a1b27e781721047d84bd754d32e7", size = 5475172, upload-time = "2026-01-31T23:10:30.848Z" }, + { url = "https://files.pythonhosted.org/packages/40/a9/3feb49f17bbd1300dd2570432961f5c8a4ffeff1db6f02c7273bd020a4c9/numpy-2.4.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:cb7bbb88aa74908950d979eeaa24dbdf1a865e3c7e45ff0121d8f70387b55f73", size = 6805145, upload-time = "2026-01-31T23:10:32.352Z" }, + { url = "https://files.pythonhosted.org/packages/3f/39/fdf35cbd6d6e2fcad42fcf85ac04a85a0d0fbfbf34b30721c98d602fd70a/numpy-2.4.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4f069069931240b3fc703f1e23df63443dbd6390614c8c44a87d96cd0ec81eb1", size = 15966084, upload-time = "2026-01-31T23:10:34.502Z" }, + { url = "https://files.pythonhosted.org/packages/1b/46/6fa4ea94f1ddf969b2ee941290cca6f1bfac92b53c76ae5f44afe17ceb69/numpy-2.4.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c02ef4401a506fb60b411467ad501e1429a3487abca4664871d9ae0b46c8ba32", size = 16899477, upload-time = "2026-01-31T23:10:37.075Z" }, + { url = "https://files.pythonhosted.org/packages/09/a1/2a424e162b1a14a5bd860a464ab4e07513916a64ab1683fae262f735ccd2/numpy-2.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2653de5c24910e49c2b106499803124dde62a5a1fe0eedeaecf4309a5f639390", size = 17323429, upload-time = "2026-01-31T23:10:39.704Z" }, + { url = "https://files.pythonhosted.org/packages/ce/a2/73014149ff250628df72c58204822ac01d768697913881aacf839ff78680/numpy-2.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1ae241bbfc6ae276f94a170b14785e561cb5e7f626b6688cf076af4110887413", size = 18635109, upload-time = "2026-01-31T23:10:41.924Z" }, + { url = "https://files.pythonhosted.org/packages/6c/0c/73e8be2f1accd56df74abc1c5e18527822067dced5ec0861b5bb882c2ce0/numpy-2.4.2-cp311-cp311-win32.whl", hash = "sha256:df1b10187212b198dd45fa943d8985a3c8cf854aed4923796e0e019e113a1bda", size = 6237915, upload-time = "2026-01-31T23:10:45.26Z" }, + { url = "https://files.pythonhosted.org/packages/76/ae/e0265e0163cf127c24c3969d29f1c4c64551a1e375d95a13d32eab25d364/numpy-2.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:b9c618d56a29c9cb1c4da979e9899be7578d2e0b3c24d52079c166324c9e8695", size = 12607972, upload-time = "2026-01-31T23:10:47.021Z" }, + { url = "https://files.pythonhosted.org/packages/29/a5/c43029af9b8014d6ea157f192652c50042e8911f4300f8f6ed3336bf437f/numpy-2.4.2-cp311-cp311-win_arm64.whl", hash = "sha256:47c5a6ed21d9452b10227e5e8a0e1c22979811cad7dcc19d8e3e2fb8fa03f1a3", size = 10485763, upload-time = "2026-01-31T23:10:50.087Z" }, + { url = "https://files.pythonhosted.org/packages/51/6e/6f394c9c77668153e14d4da83bcc247beb5952f6ead7699a1a2992613bea/numpy-2.4.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:21982668592194c609de53ba4933a7471880ccbaadcc52352694a59ecc860b3a", size = 16667963, upload-time = "2026-01-31T23:10:52.147Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f8/55483431f2b2fd015ae6ed4fe62288823ce908437ed49db5a03d15151678/numpy-2.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40397bda92382fcec844066efb11f13e1c9a3e2a8e8f318fb72ed8b6db9f60f1", size = 14693571, upload-time = "2026-01-31T23:10:54.789Z" }, + { url = "https://files.pythonhosted.org/packages/2f/20/18026832b1845cdc82248208dd929ca14c9d8f2bac391f67440707fff27c/numpy-2.4.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:b3a24467af63c67829bfaa61eecf18d5432d4f11992688537be59ecd6ad32f5e", size = 5203469, upload-time = "2026-01-31T23:10:57.343Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/2eb97c8a77daaba34eaa3fa7241a14ac5f51c46a6bd5911361b644c4a1e2/numpy-2.4.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:805cc8de9fd6e7a22da5aed858e0ab16be5a4db6c873dde1d7451c541553aa27", size = 6550820, upload-time = "2026-01-31T23:10:59.429Z" }, + { url = "https://files.pythonhosted.org/packages/b1/91/b97fdfd12dc75b02c44e26c6638241cc004d4079a0321a69c62f51470c4c/numpy-2.4.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d82351358ffbcdcd7b686b90742a9b86632d6c1c051016484fa0b326a0a1548", size = 15663067, upload-time = "2026-01-31T23:11:01.291Z" }, + { url = "https://files.pythonhosted.org/packages/f5/c6/a18e59f3f0b8071cc85cbc8d80cd02d68aa9710170b2553a117203d46936/numpy-2.4.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e35d3e0144137d9fdae62912e869136164534d64a169f86438bc9561b6ad49f", size = 16619782, upload-time = "2026-01-31T23:11:03.669Z" }, + { url = "https://files.pythonhosted.org/packages/b7/83/9751502164601a79e18847309f5ceec0b1446d7b6aa12305759b72cf98b2/numpy-2.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:adb6ed2ad29b9e15321d167d152ee909ec73395901b70936f029c3bc6d7f4460", size = 17013128, upload-time = "2026-01-31T23:11:05.913Z" }, + { url = "https://files.pythonhosted.org/packages/61/c4/c4066322256ec740acc1c8923a10047818691d2f8aec254798f3dd90f5f2/numpy-2.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8906e71fd8afcb76580404e2a950caef2685df3d2a57fe82a86ac8d33cc007ba", size = 18345324, upload-time = "2026-01-31T23:11:08.248Z" }, + { url = "https://files.pythonhosted.org/packages/ab/af/6157aa6da728fa4525a755bfad486ae7e3f76d4c1864138003eb84328497/numpy-2.4.2-cp312-cp312-win32.whl", hash = "sha256:ec055f6dae239a6299cace477b479cca2fc125c5675482daf1dd886933a1076f", size = 5960282, upload-time = "2026-01-31T23:11:10.497Z" }, + { url = "https://files.pythonhosted.org/packages/92/0f/7ceaaeaacb40567071e94dbf2c9480c0ae453d5bb4f52bea3892c39dc83c/numpy-2.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:209fae046e62d0ce6435fcfe3b1a10537e858249b3d9b05829e2a05218296a85", size = 12314210, upload-time = "2026-01-31T23:11:12.176Z" }, + { url = "https://files.pythonhosted.org/packages/2f/a3/56c5c604fae6dd40fa2ed3040d005fca97e91bd320d232ac9931d77ba13c/numpy-2.4.2-cp312-cp312-win_arm64.whl", hash = "sha256:fbde1b0c6e81d56f5dccd95dd4a711d9b95df1ae4009a60887e56b27e8d903fa", size = 10220171, upload-time = "2026-01-31T23:11:14.684Z" }, + { url = "https://files.pythonhosted.org/packages/a1/22/815b9fe25d1d7ae7d492152adbc7226d3eff731dffc38fe970589fcaaa38/numpy-2.4.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:25f2059807faea4b077a2b6837391b5d830864b3543627f381821c646f31a63c", size = 16663696, upload-time = "2026-01-31T23:11:17.516Z" }, + { url = "https://files.pythonhosted.org/packages/09/f0/817d03a03f93ba9c6c8993de509277d84e69f9453601915e4a69554102a1/numpy-2.4.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bd3a7a9f5847d2fb8c2c6d1c862fa109c31a9abeca1a3c2bd5a64572955b2979", size = 14688322, upload-time = "2026-01-31T23:11:19.883Z" }, + { url = "https://files.pythonhosted.org/packages/da/b4/f805ab79293c728b9a99438775ce51885fd4f31b76178767cfc718701a39/numpy-2.4.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8e4549f8a3c6d13d55041925e912bfd834285ef1dd64d6bc7d542583355e2e98", size = 5198157, upload-time = "2026-01-31T23:11:22.375Z" }, + { url = "https://files.pythonhosted.org/packages/74/09/826e4289844eccdcd64aac27d13b0fd3f32039915dd5b9ba01baae1f436c/numpy-2.4.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:aea4f66ff44dfddf8c2cffd66ba6538c5ec67d389285292fe428cb2c738c8aef", size = 6546330, upload-time = "2026-01-31T23:11:23.958Z" }, + { url = "https://files.pythonhosted.org/packages/19/fb/cbfdbfa3057a10aea5422c558ac57538e6acc87ec1669e666d32ac198da7/numpy-2.4.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c3cd545784805de05aafe1dde61752ea49a359ccba9760c1e5d1c88a93bbf2b7", size = 15660968, upload-time = "2026-01-31T23:11:25.713Z" }, + { url = "https://files.pythonhosted.org/packages/04/dc/46066ce18d01645541f0186877377b9371b8fa8017fa8262002b4ef22612/numpy-2.4.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0d9b7c93578baafcbc5f0b83eaf17b79d345c6f36917ba0c67f45226911d499", size = 16607311, upload-time = "2026-01-31T23:11:28.117Z" }, + { url = "https://files.pythonhosted.org/packages/14/d9/4b5adfc39a43fa6bf918c6d544bc60c05236cc2f6339847fc5b35e6cb5b0/numpy-2.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f74f0f7779cc7ae07d1810aab8ac6b1464c3eafb9e283a40da7309d5e6e48fbb", size = 17012850, upload-time = "2026-01-31T23:11:30.888Z" }, + { url = "https://files.pythonhosted.org/packages/b7/20/adb6e6adde6d0130046e6fdfb7675cc62bc2f6b7b02239a09eb58435753d/numpy-2.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c7ac672d699bf36275c035e16b65539931347d68b70667d28984c9fb34e07fa7", size = 18334210, upload-time = "2026-01-31T23:11:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/78/0e/0a73b3dff26803a8c02baa76398015ea2a5434d9b8265a7898a6028c1591/numpy-2.4.2-cp313-cp313-win32.whl", hash = "sha256:8e9afaeb0beff068b4d9cd20d322ba0ee1cecfb0b08db145e4ab4dd44a6b5110", size = 5958199, upload-time = "2026-01-31T23:11:35.385Z" }, + { url = "https://files.pythonhosted.org/packages/43/bc/6352f343522fcb2c04dbaf94cb30cca6fd32c1a750c06ad6231b4293708c/numpy-2.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:7df2de1e4fba69a51c06c28f5a3de36731eb9639feb8e1cf7e4a7b0daf4cf622", size = 12310848, upload-time = "2026-01-31T23:11:38.001Z" }, + { url = "https://files.pythonhosted.org/packages/6e/8d/6da186483e308da5da1cc6918ce913dcfe14ffde98e710bfeff2a6158d4e/numpy-2.4.2-cp313-cp313-win_arm64.whl", hash = "sha256:0fece1d1f0a89c16b03442eae5c56dc0be0c7883b5d388e0c03f53019a4bfd71", size = 10221082, upload-time = "2026-01-31T23:11:40.392Z" }, + { url = "https://files.pythonhosted.org/packages/25/a1/9510aa43555b44781968935c7548a8926274f815de42ad3997e9e83680dd/numpy-2.4.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5633c0da313330fd20c484c78cdd3f9b175b55e1a766c4a174230c6b70ad8262", size = 14815866, upload-time = "2026-01-31T23:11:42.495Z" }, + { url = "https://files.pythonhosted.org/packages/36/30/6bbb5e76631a5ae46e7923dd16ca9d3f1c93cfa8d4ed79a129814a9d8db3/numpy-2.4.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d9f64d786b3b1dd742c946c42d15b07497ed14af1a1f3ce840cce27daa0ce913", size = 5325631, upload-time = "2026-01-31T23:11:44.7Z" }, + { url = "https://files.pythonhosted.org/packages/46/00/3a490938800c1923b567b3a15cd17896e68052e2145d8662aaf3e1ffc58f/numpy-2.4.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:b21041e8cb6a1eb5312dd1d2f80a94d91efffb7a06b70597d44f1bd2dfc315ab", size = 6646254, upload-time = "2026-01-31T23:11:46.341Z" }, + { url = "https://files.pythonhosted.org/packages/d3/e9/fac0890149898a9b609caa5af7455a948b544746e4b8fe7c212c8edd71f8/numpy-2.4.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:00ab83c56211a1d7c07c25e3217ea6695e50a3e2f255053686b081dc0b091a82", size = 15720138, upload-time = "2026-01-31T23:11:48.082Z" }, + { url = "https://files.pythonhosted.org/packages/ea/5c/08887c54e68e1e28df53709f1893ce92932cc6f01f7c3d4dc952f61ffd4e/numpy-2.4.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2fb882da679409066b4603579619341c6d6898fc83a8995199d5249f986e8e8f", size = 16655398, upload-time = "2026-01-31T23:11:50.293Z" }, + { url = "https://files.pythonhosted.org/packages/4d/89/253db0fa0e66e9129c745e4ef25631dc37d5f1314dad2b53e907b8538e6d/numpy-2.4.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:66cb9422236317f9d44b67b4d18f44efe6e9c7f8794ac0462978513359461554", size = 17079064, upload-time = "2026-01-31T23:11:52.927Z" }, + { url = "https://files.pythonhosted.org/packages/2a/d5/cbade46ce97c59c6c3da525e8d95b7abe8a42974a1dc5c1d489c10433e88/numpy-2.4.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0f01dcf33e73d80bd8dc0f20a71303abbafa26a19e23f6b68d1aa9990af90257", size = 18379680, upload-time = "2026-01-31T23:11:55.22Z" }, + { url = "https://files.pythonhosted.org/packages/40/62/48f99ae172a4b63d981babe683685030e8a3df4f246c893ea5c6ef99f018/numpy-2.4.2-cp313-cp313t-win32.whl", hash = "sha256:52b913ec40ff7ae845687b0b34d8d93b60cb66dcee06996dd5c99f2fc9328657", size = 6082433, upload-time = "2026-01-31T23:11:58.096Z" }, + { url = "https://files.pythonhosted.org/packages/07/38/e054a61cfe48ad9f1ed0d188e78b7e26859d0b60ef21cd9de4897cdb5326/numpy-2.4.2-cp313-cp313t-win_amd64.whl", hash = "sha256:5eea80d908b2c1f91486eb95b3fb6fab187e569ec9752ab7d9333d2e66bf2d6b", size = 12451181, upload-time = "2026-01-31T23:11:59.782Z" }, + { url = "https://files.pythonhosted.org/packages/6e/a4/a05c3a6418575e185dd84d0b9680b6bb2e2dc3e4202f036b7b4e22d6e9dc/numpy-2.4.2-cp313-cp313t-win_arm64.whl", hash = "sha256:fd49860271d52127d61197bb50b64f58454e9f578cb4b2c001a6de8b1f50b0b1", size = 10290756, upload-time = "2026-01-31T23:12:02.438Z" }, + { url = "https://files.pythonhosted.org/packages/18/88/b7df6050bf18fdcfb7046286c6535cabbdd2064a3440fca3f069d319c16e/numpy-2.4.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:444be170853f1f9d528428eceb55f12918e4fda5d8805480f36a002f1415e09b", size = 16663092, upload-time = "2026-01-31T23:12:04.521Z" }, + { url = "https://files.pythonhosted.org/packages/25/7a/1fee4329abc705a469a4afe6e69b1ef7e915117747886327104a8493a955/numpy-2.4.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d1240d50adff70c2a88217698ca844723068533f3f5c5fa6ee2e3220e3bdb000", size = 14698770, upload-time = "2026-01-31T23:12:06.96Z" }, + { url = "https://files.pythonhosted.org/packages/fb/0b/f9e49ba6c923678ad5bc38181c08ac5e53b7a5754dbca8e581aa1a56b1ff/numpy-2.4.2-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:7cdde6de52fb6664b00b056341265441192d1291c130e99183ec0d4b110ff8b1", size = 5208562, upload-time = "2026-01-31T23:12:09.632Z" }, + { url = "https://files.pythonhosted.org/packages/7d/12/d7de8f6f53f9bb76997e5e4c069eda2051e3fe134e9181671c4391677bb2/numpy-2.4.2-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:cda077c2e5b780200b6b3e09d0b42205a3d1c68f30c6dceb90401c13bff8fe74", size = 6543710, upload-time = "2026-01-31T23:12:11.969Z" }, + { url = "https://files.pythonhosted.org/packages/09/63/c66418c2e0268a31a4cf8a8b512685748200f8e8e8ec6c507ce14e773529/numpy-2.4.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d30291931c915b2ab5717c2974bb95ee891a1cf22ebc16a8006bd59cd210d40a", size = 15677205, upload-time = "2026-01-31T23:12:14.33Z" }, + { url = "https://files.pythonhosted.org/packages/5d/6c/7f237821c9642fb2a04d2f1e88b4295677144ca93285fd76eff3bcba858d/numpy-2.4.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bba37bc29d4d85761deed3954a1bc62be7cf462b9510b51d367b769a8c8df325", size = 16611738, upload-time = "2026-01-31T23:12:16.525Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a7/39c4cdda9f019b609b5c473899d87abff092fc908cfe4d1ecb2fcff453b0/numpy-2.4.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b2f0073ed0868db1dcd86e052d37279eef185b9c8db5bf61f30f46adac63c909", size = 17028888, upload-time = "2026-01-31T23:12:19.306Z" }, + { url = "https://files.pythonhosted.org/packages/da/b3/e84bb64bdfea967cc10950d71090ec2d84b49bc691df0025dddb7c26e8e3/numpy-2.4.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7f54844851cdb630ceb623dcec4db3240d1ac13d4990532446761baede94996a", size = 18339556, upload-time = "2026-01-31T23:12:21.816Z" }, + { url = "https://files.pythonhosted.org/packages/88/f5/954a291bc1192a27081706862ac62bb5920fbecfbaa302f64682aa90beed/numpy-2.4.2-cp314-cp314-win32.whl", hash = "sha256:12e26134a0331d8dbd9351620f037ec470b7c75929cb8a1537f6bfe411152a1a", size = 6006899, upload-time = "2026-01-31T23:12:24.14Z" }, + { url = "https://files.pythonhosted.org/packages/05/cb/eff72a91b2efdd1bc98b3b8759f6a1654aa87612fc86e3d87d6fe4f948c4/numpy-2.4.2-cp314-cp314-win_amd64.whl", hash = "sha256:068cdb2d0d644cdb45670810894f6a0600797a69c05f1ac478e8d31670b8ee75", size = 12443072, upload-time = "2026-01-31T23:12:26.33Z" }, + { url = "https://files.pythonhosted.org/packages/37/75/62726948db36a56428fce4ba80a115716dc4fad6a3a4352487f8bb950966/numpy-2.4.2-cp314-cp314-win_arm64.whl", hash = "sha256:6ed0be1ee58eef41231a5c943d7d1375f093142702d5723ca2eb07db9b934b05", size = 10494886, upload-time = "2026-01-31T23:12:28.488Z" }, + { url = "https://files.pythonhosted.org/packages/36/2f/ee93744f1e0661dc267e4b21940870cabfae187c092e1433b77b09b50ac4/numpy-2.4.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:98f16a80e917003a12c0580f97b5f875853ebc33e2eaa4bccfc8201ac6869308", size = 14818567, upload-time = "2026-01-31T23:12:30.709Z" }, + { url = "https://files.pythonhosted.org/packages/a7/24/6535212add7d76ff938d8bdc654f53f88d35cddedf807a599e180dcb8e66/numpy-2.4.2-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:20abd069b9cda45874498b245c8015b18ace6de8546bf50dfa8cea1696ed06ef", size = 5328372, upload-time = "2026-01-31T23:12:32.962Z" }, + { url = "https://files.pythonhosted.org/packages/5e/9d/c48f0a035725f925634bf6b8994253b43f2047f6778a54147d7e213bc5a7/numpy-2.4.2-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:e98c97502435b53741540a5717a6749ac2ada901056c7db951d33e11c885cc7d", size = 6649306, upload-time = "2026-01-31T23:12:34.797Z" }, + { url = "https://files.pythonhosted.org/packages/81/05/7c73a9574cd4a53a25907bad38b59ac83919c0ddc8234ec157f344d57d9a/numpy-2.4.2-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:da6cad4e82cb893db4b69105c604d805e0c3ce11501a55b5e9f9083b47d2ffe8", size = 15722394, upload-time = "2026-01-31T23:12:36.565Z" }, + { url = "https://files.pythonhosted.org/packages/35/fa/4de10089f21fc7d18442c4a767ab156b25c2a6eaf187c0db6d9ecdaeb43f/numpy-2.4.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e4424677ce4b47fe73c8b5556d876571f7c6945d264201180db2dc34f676ab5", size = 16653343, upload-time = "2026-01-31T23:12:39.188Z" }, + { url = "https://files.pythonhosted.org/packages/b8/f9/d33e4ffc857f3763a57aa85650f2e82486832d7492280ac21ba9efda80da/numpy-2.4.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2b8f157c8a6f20eb657e240f8985cc135598b2b46985c5bccbde7616dc9c6b1e", size = 17078045, upload-time = "2026-01-31T23:12:42.041Z" }, + { url = "https://files.pythonhosted.org/packages/c8/b8/54bdb43b6225badbea6389fa038c4ef868c44f5890f95dd530a218706da3/numpy-2.4.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5daf6f3914a733336dab21a05cdec343144600e964d2fcdabaac0c0269874b2a", size = 18380024, upload-time = "2026-01-31T23:12:44.331Z" }, + { url = "https://files.pythonhosted.org/packages/a5/55/6e1a61ded7af8df04016d81b5b02daa59f2ea9252ee0397cb9f631efe9e5/numpy-2.4.2-cp314-cp314t-win32.whl", hash = "sha256:8c50dd1fc8826f5b26a5ee4d77ca55d88a895f4e4819c7ecc2a9f5905047a443", size = 6153937, upload-time = "2026-01-31T23:12:47.229Z" }, + { url = "https://files.pythonhosted.org/packages/45/aa/fa6118d1ed6d776b0983f3ceac9b1a5558e80df9365b1c3aa6d42bf9eee4/numpy-2.4.2-cp314-cp314t-win_amd64.whl", hash = "sha256:fcf92bee92742edd401ba41135185866f7026c502617f422eb432cfeca4fe236", size = 12631844, upload-time = "2026-01-31T23:12:48.997Z" }, + { url = "https://files.pythonhosted.org/packages/32/0a/2ec5deea6dcd158f254a7b372fb09cfba5719419c8d66343bab35237b3fb/numpy-2.4.2-cp314-cp314t-win_arm64.whl", hash = "sha256:1f92f53998a17265194018d1cc321b2e96e900ca52d54c7c77837b71b9465181", size = 10565379, upload-time = "2026-01-31T23:12:51.345Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f8/50e14d36d915ef64d8f8bc4a087fc8264d82c785eda6711f80ab7e620335/numpy-2.4.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:89f7268c009bc492f506abd6f5265defa7cb3f7487dc21d357c3d290add45082", size = 16833179, upload-time = "2026-01-31T23:12:53.5Z" }, + { url = "https://files.pythonhosted.org/packages/17/17/809b5cad63812058a8189e91a1e2d55a5a18fd04611dbad244e8aeae465c/numpy-2.4.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:e6dee3bb76aa4009d5a912180bf5b2de012532998d094acee25d9cb8dee3e44a", size = 14889755, upload-time = "2026-01-31T23:12:55.933Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ea/181b9bcf7627fc8371720316c24db888dcb9829b1c0270abf3d288b2e29b/numpy-2.4.2-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:cd2bd2bbed13e213d6b55dc1d035a4f91748a7d3edc9480c13898b0353708920", size = 5399500, upload-time = "2026-01-31T23:12:58.671Z" }, + { url = "https://files.pythonhosted.org/packages/33/9f/413adf3fc955541ff5536b78fcf0754680b3c6d95103230252a2c9408d23/numpy-2.4.2-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:cf28c0c1d4c4bf00f509fa7eb02c58d7caf221b50b467bcb0d9bbf1584d5c821", size = 6714252, upload-time = "2026-01-31T23:13:00.518Z" }, + { url = "https://files.pythonhosted.org/packages/91/da/643aad274e29ccbdf42ecd94dafe524b81c87bcb56b83872d54827f10543/numpy-2.4.2-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e04ae107ac591763a47398bb45b568fc38f02dbc4aa44c063f67a131f99346cb", size = 15797142, upload-time = "2026-01-31T23:13:02.219Z" }, + { url = "https://files.pythonhosted.org/packages/66/27/965b8525e9cb5dc16481b30a1b3c21e50c7ebf6e9dbd48d0c4d0d5089c7e/numpy-2.4.2-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:602f65afdef699cda27ec0b9224ae5dc43e328f4c24c689deaf77133dbee74d0", size = 16727979, upload-time = "2026-01-31T23:13:04.62Z" }, + { url = "https://files.pythonhosted.org/packages/de/e5/b7d20451657664b07986c2f6e3be564433f5dcaf3482d68eaecd79afaf03/numpy-2.4.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:be71bf1edb48ebbbf7f6337b5bfd2f895d1902f6335a5830b20141fc126ffba0", size = 12502577, upload-time = "2026-01-31T23:13:07.08Z" }, +] + [[package]] name = "packaging" -version = "25.0" +version = "26.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } +sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416, upload-time = "2026-01-21T20:50:39.064Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, + { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" }, ] [[package]] name = "pathspec" -version = "0.12.1" +version = "1.0.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043, upload-time = "2023-12-10T22:30:45Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz", hash = "sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645", size = 131200, upload-time = "2026-01-27T03:59:46.938Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" }, + { url = "https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl", hash = "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723", size = 55206, upload-time = "2026-01-27T03:59:45.137Z" }, ] [[package]] name = "pillow" -version = "11.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/d0d6dea55cd152ce3d6767bb38a8fc10e33796ba4ba210cbab9354b6d238/pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523", size = 47113069, upload-time = "2025-07-01T09:16:30.666Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4c/5d/45a3553a253ac8763f3561371432a90bdbe6000fbdcf1397ffe502aa206c/pillow-11.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1b9c17fd4ace828b3003dfd1e30bff24863e0eb59b535e8f80194d9cc7ecf860", size = 5316554, upload-time = "2025-07-01T09:13:39.342Z" }, - { url = "https://files.pythonhosted.org/packages/7c/c8/67c12ab069ef586a25a4a79ced553586748fad100c77c0ce59bb4983ac98/pillow-11.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:65dc69160114cdd0ca0f35cb434633c75e8e7fad4cf855177a05bf38678f73ad", size = 4686548, upload-time = "2025-07-01T09:13:41.835Z" }, - { url = "https://files.pythonhosted.org/packages/2f/bd/6741ebd56263390b382ae4c5de02979af7f8bd9807346d068700dd6d5cf9/pillow-11.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7107195ddc914f656c7fc8e4a5e1c25f32e9236ea3ea860f257b0436011fddd0", size = 5859742, upload-time = "2025-07-03T13:09:47.439Z" }, - { url = "https://files.pythonhosted.org/packages/ca/0b/c412a9e27e1e6a829e6ab6c2dca52dd563efbedf4c9c6aa453d9a9b77359/pillow-11.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cc3e831b563b3114baac7ec2ee86819eb03caa1a2cef0b481a5675b59c4fe23b", size = 7633087, upload-time = "2025-07-03T13:09:51.796Z" }, - { url = "https://files.pythonhosted.org/packages/59/9d/9b7076aaf30f5dd17e5e5589b2d2f5a5d7e30ff67a171eb686e4eecc2adf/pillow-11.3.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f1f182ebd2303acf8c380a54f615ec883322593320a9b00438eb842c1f37ae50", size = 5963350, upload-time = "2025-07-01T09:13:43.865Z" }, - { url = "https://files.pythonhosted.org/packages/f0/16/1a6bf01fb622fb9cf5c91683823f073f053005c849b1f52ed613afcf8dae/pillow-11.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4445fa62e15936a028672fd48c4c11a66d641d2c05726c7ec1f8ba6a572036ae", size = 6631840, upload-time = "2025-07-01T09:13:46.161Z" }, - { url = "https://files.pythonhosted.org/packages/7b/e6/6ff7077077eb47fde78739e7d570bdcd7c10495666b6afcd23ab56b19a43/pillow-11.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:71f511f6b3b91dd543282477be45a033e4845a40278fa8dcdbfdb07109bf18f9", size = 6074005, upload-time = "2025-07-01T09:13:47.829Z" }, - { url = "https://files.pythonhosted.org/packages/c3/3a/b13f36832ea6d279a697231658199e0a03cd87ef12048016bdcc84131601/pillow-11.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:040a5b691b0713e1f6cbe222e0f4f74cd233421e105850ae3b3c0ceda520f42e", size = 6708372, upload-time = "2025-07-01T09:13:52.145Z" }, - { url = "https://files.pythonhosted.org/packages/6c/e4/61b2e1a7528740efbc70b3d581f33937e38e98ef3d50b05007267a55bcb2/pillow-11.3.0-cp310-cp310-win32.whl", hash = "sha256:89bd777bc6624fe4115e9fac3352c79ed60f3bb18651420635f26e643e3dd1f6", size = 6277090, upload-time = "2025-07-01T09:13:53.915Z" }, - { url = "https://files.pythonhosted.org/packages/a9/d3/60c781c83a785d6afbd6a326ed4d759d141de43aa7365725cbcd65ce5e54/pillow-11.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:19d2ff547c75b8e3ff46f4d9ef969a06c30ab2d4263a9e287733aa8b2429ce8f", size = 6985988, upload-time = "2025-07-01T09:13:55.699Z" }, - { url = "https://files.pythonhosted.org/packages/9f/28/4f4a0203165eefb3763939c6789ba31013a2e90adffb456610f30f613850/pillow-11.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:819931d25e57b513242859ce1876c58c59dc31587847bf74cfe06b2e0cb22d2f", size = 2422899, upload-time = "2025-07-01T09:13:57.497Z" }, - { url = "https://files.pythonhosted.org/packages/db/26/77f8ed17ca4ffd60e1dcd220a6ec6d71210ba398cfa33a13a1cd614c5613/pillow-11.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1cd110edf822773368b396281a2293aeb91c90a2db00d78ea43e7e861631b722", size = 5316531, upload-time = "2025-07-01T09:13:59.203Z" }, - { url = "https://files.pythonhosted.org/packages/cb/39/ee475903197ce709322a17a866892efb560f57900d9af2e55f86db51b0a5/pillow-11.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9c412fddd1b77a75aa904615ebaa6001f169b26fd467b4be93aded278266b288", size = 4686560, upload-time = "2025-07-01T09:14:01.101Z" }, - { url = "https://files.pythonhosted.org/packages/d5/90/442068a160fd179938ba55ec8c97050a612426fae5ec0a764e345839f76d/pillow-11.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7d1aa4de119a0ecac0a34a9c8bde33f34022e2e8f99104e47a3ca392fd60e37d", size = 5870978, upload-time = "2025-07-03T13:09:55.638Z" }, - { url = "https://files.pythonhosted.org/packages/13/92/dcdd147ab02daf405387f0218dcf792dc6dd5b14d2573d40b4caeef01059/pillow-11.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:91da1d88226663594e3f6b4b8c3c8d85bd504117d043740a8e0ec449087cc494", size = 7641168, upload-time = "2025-07-03T13:10:00.37Z" }, - { url = "https://files.pythonhosted.org/packages/6e/db/839d6ba7fd38b51af641aa904e2960e7a5644d60ec754c046b7d2aee00e5/pillow-11.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:643f189248837533073c405ec2f0bb250ba54598cf80e8c1e043381a60632f58", size = 5973053, upload-time = "2025-07-01T09:14:04.491Z" }, - { url = "https://files.pythonhosted.org/packages/f2/2f/d7675ecae6c43e9f12aa8d58b6012683b20b6edfbdac7abcb4e6af7a3784/pillow-11.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:106064daa23a745510dabce1d84f29137a37224831d88eb4ce94bb187b1d7e5f", size = 6640273, upload-time = "2025-07-01T09:14:06.235Z" }, - { url = "https://files.pythonhosted.org/packages/45/ad/931694675ede172e15b2ff03c8144a0ddaea1d87adb72bb07655eaffb654/pillow-11.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cd8ff254faf15591e724dc7c4ddb6bf4793efcbe13802a4ae3e863cd300b493e", size = 6082043, upload-time = "2025-07-01T09:14:07.978Z" }, - { url = "https://files.pythonhosted.org/packages/3a/04/ba8f2b11fc80d2dd462d7abec16351b45ec99cbbaea4387648a44190351a/pillow-11.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:932c754c2d51ad2b2271fd01c3d121daaa35e27efae2a616f77bf164bc0b3e94", size = 6715516, upload-time = "2025-07-01T09:14:10.233Z" }, - { url = "https://files.pythonhosted.org/packages/48/59/8cd06d7f3944cc7d892e8533c56b0acb68399f640786313275faec1e3b6f/pillow-11.3.0-cp311-cp311-win32.whl", hash = "sha256:b4b8f3efc8d530a1544e5962bd6b403d5f7fe8b9e08227c6b255f98ad82b4ba0", size = 6274768, upload-time = "2025-07-01T09:14:11.921Z" }, - { url = "https://files.pythonhosted.org/packages/f1/cc/29c0f5d64ab8eae20f3232da8f8571660aa0ab4b8f1331da5c2f5f9a938e/pillow-11.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:1a992e86b0dd7aeb1f053cd506508c0999d710a8f07b4c791c63843fc6a807ac", size = 6986055, upload-time = "2025-07-01T09:14:13.623Z" }, - { url = "https://files.pythonhosted.org/packages/c6/df/90bd886fabd544c25addd63e5ca6932c86f2b701d5da6c7839387a076b4a/pillow-11.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:30807c931ff7c095620fe04448e2c2fc673fcbb1ffe2a7da3fb39613489b1ddd", size = 2423079, upload-time = "2025-07-01T09:14:15.268Z" }, - { url = "https://files.pythonhosted.org/packages/40/fe/1bc9b3ee13f68487a99ac9529968035cca2f0a51ec36892060edcc51d06a/pillow-11.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdae223722da47b024b867c1ea0be64e0df702c5e0a60e27daad39bf960dd1e4", size = 5278800, upload-time = "2025-07-01T09:14:17.648Z" }, - { url = "https://files.pythonhosted.org/packages/2c/32/7e2ac19b5713657384cec55f89065fb306b06af008cfd87e572035b27119/pillow-11.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:921bd305b10e82b4d1f5e802b6850677f965d8394203d182f078873851dada69", size = 4686296, upload-time = "2025-07-01T09:14:19.828Z" }, - { url = "https://files.pythonhosted.org/packages/8e/1e/b9e12bbe6e4c2220effebc09ea0923a07a6da1e1f1bfbc8d7d29a01ce32b/pillow-11.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb76541cba2f958032d79d143b98a3a6b3ea87f0959bbe256c0b5e416599fd5d", size = 5871726, upload-time = "2025-07-03T13:10:04.448Z" }, - { url = "https://files.pythonhosted.org/packages/8d/33/e9200d2bd7ba00dc3ddb78df1198a6e80d7669cce6c2bdbeb2530a74ec58/pillow-11.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:67172f2944ebba3d4a7b54f2e95c786a3a50c21b88456329314caaa28cda70f6", size = 7644652, upload-time = "2025-07-03T13:10:10.391Z" }, - { url = "https://files.pythonhosted.org/packages/41/f1/6f2427a26fc683e00d985bc391bdd76d8dd4e92fac33d841127eb8fb2313/pillow-11.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f07ed9f56a3b9b5f49d3661dc9607484e85c67e27f3e8be2c7d28ca032fec7", size = 5977787, upload-time = "2025-07-01T09:14:21.63Z" }, - { url = "https://files.pythonhosted.org/packages/e4/c9/06dd4a38974e24f932ff5f98ea3c546ce3f8c995d3f0985f8e5ba48bba19/pillow-11.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:676b2815362456b5b3216b4fd5bd89d362100dc6f4945154ff172e206a22c024", size = 6645236, upload-time = "2025-07-01T09:14:23.321Z" }, - { url = "https://files.pythonhosted.org/packages/40/e7/848f69fb79843b3d91241bad658e9c14f39a32f71a301bcd1d139416d1be/pillow-11.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3e184b2f26ff146363dd07bde8b711833d7b0202e27d13540bfe2e35a323a809", size = 6086950, upload-time = "2025-07-01T09:14:25.237Z" }, - { url = "https://files.pythonhosted.org/packages/0b/1a/7cff92e695a2a29ac1958c2a0fe4c0b2393b60aac13b04a4fe2735cad52d/pillow-11.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6be31e3fc9a621e071bc17bb7de63b85cbe0bfae91bb0363c893cbe67247780d", size = 6723358, upload-time = "2025-07-01T09:14:27.053Z" }, - { url = "https://files.pythonhosted.org/packages/26/7d/73699ad77895f69edff76b0f332acc3d497f22f5d75e5360f78cbcaff248/pillow-11.3.0-cp312-cp312-win32.whl", hash = "sha256:7b161756381f0918e05e7cb8a371fff367e807770f8fe92ecb20d905d0e1c149", size = 6275079, upload-time = "2025-07-01T09:14:30.104Z" }, - { url = "https://files.pythonhosted.org/packages/8c/ce/e7dfc873bdd9828f3b6e5c2bbb74e47a98ec23cc5c74fc4e54462f0d9204/pillow-11.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a6444696fce635783440b7f7a9fc24b3ad10a9ea3f0ab66c5905be1c19ccf17d", size = 6986324, upload-time = "2025-07-01T09:14:31.899Z" }, - { url = "https://files.pythonhosted.org/packages/16/8f/b13447d1bf0b1f7467ce7d86f6e6edf66c0ad7cf44cf5c87a37f9bed9936/pillow-11.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:2aceea54f957dd4448264f9bf40875da0415c83eb85f55069d89c0ed436e3542", size = 2423067, upload-time = "2025-07-01T09:14:33.709Z" }, - { url = "https://files.pythonhosted.org/packages/1e/93/0952f2ed8db3a5a4c7a11f91965d6184ebc8cd7cbb7941a260d5f018cd2d/pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:1c627742b539bba4309df89171356fcb3cc5a9178355b2727d1b74a6cf155fbd", size = 2128328, upload-time = "2025-07-01T09:14:35.276Z" }, - { url = "https://files.pythonhosted.org/packages/4b/e8/100c3d114b1a0bf4042f27e0f87d2f25e857e838034e98ca98fe7b8c0a9c/pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:30b7c02f3899d10f13d7a48163c8969e4e653f8b43416d23d13d1bbfdc93b9f8", size = 2170652, upload-time = "2025-07-01T09:14:37.203Z" }, - { url = "https://files.pythonhosted.org/packages/aa/86/3f758a28a6e381758545f7cdb4942e1cb79abd271bea932998fc0db93cb6/pillow-11.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:7859a4cc7c9295f5838015d8cc0a9c215b77e43d07a25e460f35cf516df8626f", size = 2227443, upload-time = "2025-07-01T09:14:39.344Z" }, - { url = "https://files.pythonhosted.org/packages/01/f4/91d5b3ffa718df2f53b0dc109877993e511f4fd055d7e9508682e8aba092/pillow-11.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ec1ee50470b0d050984394423d96325b744d55c701a439d2bd66089bff963d3c", size = 5278474, upload-time = "2025-07-01T09:14:41.843Z" }, - { url = "https://files.pythonhosted.org/packages/f9/0e/37d7d3eca6c879fbd9dba21268427dffda1ab00d4eb05b32923d4fbe3b12/pillow-11.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7db51d222548ccfd274e4572fdbf3e810a5e66b00608862f947b163e613b67dd", size = 4686038, upload-time = "2025-07-01T09:14:44.008Z" }, - { url = "https://files.pythonhosted.org/packages/ff/b0/3426e5c7f6565e752d81221af9d3676fdbb4f352317ceafd42899aaf5d8a/pillow-11.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2d6fcc902a24ac74495df63faad1884282239265c6839a0a6416d33faedfae7e", size = 5864407, upload-time = "2025-07-03T13:10:15.628Z" }, - { url = "https://files.pythonhosted.org/packages/fc/c1/c6c423134229f2a221ee53f838d4be9d82bab86f7e2f8e75e47b6bf6cd77/pillow-11.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f0f5d8f4a08090c6d6d578351a2b91acf519a54986c055af27e7a93feae6d3f1", size = 7639094, upload-time = "2025-07-03T13:10:21.857Z" }, - { url = "https://files.pythonhosted.org/packages/ba/c9/09e6746630fe6372c67c648ff9deae52a2bc20897d51fa293571977ceb5d/pillow-11.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c37d8ba9411d6003bba9e518db0db0c58a680ab9fe5179f040b0463644bc9805", size = 5973503, upload-time = "2025-07-01T09:14:45.698Z" }, - { url = "https://files.pythonhosted.org/packages/d5/1c/a2a29649c0b1983d3ef57ee87a66487fdeb45132df66ab30dd37f7dbe162/pillow-11.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13f87d581e71d9189ab21fe0efb5a23e9f28552d5be6979e84001d3b8505abe8", size = 6642574, upload-time = "2025-07-01T09:14:47.415Z" }, - { url = "https://files.pythonhosted.org/packages/36/de/d5cc31cc4b055b6c6fd990e3e7f0f8aaf36229a2698501bcb0cdf67c7146/pillow-11.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:023f6d2d11784a465f09fd09a34b150ea4672e85fb3d05931d89f373ab14abb2", size = 6084060, upload-time = "2025-07-01T09:14:49.636Z" }, - { url = "https://files.pythonhosted.org/packages/d5/ea/502d938cbaeec836ac28a9b730193716f0114c41325db428e6b280513f09/pillow-11.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:45dfc51ac5975b938e9809451c51734124e73b04d0f0ac621649821a63852e7b", size = 6721407, upload-time = "2025-07-01T09:14:51.962Z" }, - { url = "https://files.pythonhosted.org/packages/45/9c/9c5e2a73f125f6cbc59cc7087c8f2d649a7ae453f83bd0362ff7c9e2aee2/pillow-11.3.0-cp313-cp313-win32.whl", hash = "sha256:a4d336baed65d50d37b88ca5b60c0fa9d81e3a87d4a7930d3880d1624d5b31f3", size = 6273841, upload-time = "2025-07-01T09:14:54.142Z" }, - { url = "https://files.pythonhosted.org/packages/23/85/397c73524e0cd212067e0c969aa245b01d50183439550d24d9f55781b776/pillow-11.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bce5c4fd0921f99d2e858dc4d4d64193407e1b99478bc5cacecba2311abde51", size = 6978450, upload-time = "2025-07-01T09:14:56.436Z" }, - { url = "https://files.pythonhosted.org/packages/17/d2/622f4547f69cd173955194b78e4d19ca4935a1b0f03a302d655c9f6aae65/pillow-11.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:1904e1264881f682f02b7f8167935cce37bc97db457f8e7849dc3a6a52b99580", size = 2423055, upload-time = "2025-07-01T09:14:58.072Z" }, - { url = "https://files.pythonhosted.org/packages/dd/80/a8a2ac21dda2e82480852978416cfacd439a4b490a501a288ecf4fe2532d/pillow-11.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4c834a3921375c48ee6b9624061076bc0a32a60b5532b322cc0ea64e639dd50e", size = 5281110, upload-time = "2025-07-01T09:14:59.79Z" }, - { url = "https://files.pythonhosted.org/packages/44/d6/b79754ca790f315918732e18f82a8146d33bcd7f4494380457ea89eb883d/pillow-11.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5e05688ccef30ea69b9317a9ead994b93975104a677a36a8ed8106be9260aa6d", size = 4689547, upload-time = "2025-07-01T09:15:01.648Z" }, - { url = "https://files.pythonhosted.org/packages/49/20/716b8717d331150cb00f7fdd78169c01e8e0c219732a78b0e59b6bdb2fd6/pillow-11.3.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1019b04af07fc0163e2810167918cb5add8d74674b6267616021ab558dc98ced", size = 5901554, upload-time = "2025-07-03T13:10:27.018Z" }, - { url = "https://files.pythonhosted.org/packages/74/cf/a9f3a2514a65bb071075063a96f0a5cf949c2f2fce683c15ccc83b1c1cab/pillow-11.3.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f944255db153ebb2b19c51fe85dd99ef0ce494123f21b9db4877ffdfc5590c7c", size = 7669132, upload-time = "2025-07-03T13:10:33.01Z" }, - { url = "https://files.pythonhosted.org/packages/98/3c/da78805cbdbee9cb43efe8261dd7cc0b4b93f2ac79b676c03159e9db2187/pillow-11.3.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1f85acb69adf2aaee8b7da124efebbdb959a104db34d3a2cb0f3793dbae422a8", size = 6005001, upload-time = "2025-07-01T09:15:03.365Z" }, - { url = "https://files.pythonhosted.org/packages/6c/fa/ce044b91faecf30e635321351bba32bab5a7e034c60187fe9698191aef4f/pillow-11.3.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:05f6ecbeff5005399bb48d198f098a9b4b6bdf27b8487c7f38ca16eeb070cd59", size = 6668814, upload-time = "2025-07-01T09:15:05.655Z" }, - { url = "https://files.pythonhosted.org/packages/7b/51/90f9291406d09bf93686434f9183aba27b831c10c87746ff49f127ee80cb/pillow-11.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a7bc6e6fd0395bc052f16b1a8670859964dbd7003bd0af2ff08342eb6e442cfe", size = 6113124, upload-time = "2025-07-01T09:15:07.358Z" }, - { url = "https://files.pythonhosted.org/packages/cd/5a/6fec59b1dfb619234f7636d4157d11fb4e196caeee220232a8d2ec48488d/pillow-11.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:83e1b0161c9d148125083a35c1c5a89db5b7054834fd4387499e06552035236c", size = 6747186, upload-time = "2025-07-01T09:15:09.317Z" }, - { url = "https://files.pythonhosted.org/packages/49/6b/00187a044f98255225f172de653941e61da37104a9ea60e4f6887717e2b5/pillow-11.3.0-cp313-cp313t-win32.whl", hash = "sha256:2a3117c06b8fb646639dce83694f2f9eac405472713fcb1ae887469c0d4f6788", size = 6277546, upload-time = "2025-07-01T09:15:11.311Z" }, - { url = "https://files.pythonhosted.org/packages/e8/5c/6caaba7e261c0d75bab23be79f1d06b5ad2a2ae49f028ccec801b0e853d6/pillow-11.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:857844335c95bea93fb39e0fa2726b4d9d758850b34075a7e3ff4f4fa3aa3b31", size = 6985102, upload-time = "2025-07-01T09:15:13.164Z" }, - { url = "https://files.pythonhosted.org/packages/f3/7e/b623008460c09a0cb38263c93b828c666493caee2eb34ff67f778b87e58c/pillow-11.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:8797edc41f3e8536ae4b10897ee2f637235c94f27404cac7297f7b607dd0716e", size = 2424803, upload-time = "2025-07-01T09:15:15.695Z" }, - { url = "https://files.pythonhosted.org/packages/73/f4/04905af42837292ed86cb1b1dabe03dce1edc008ef14c473c5c7e1443c5d/pillow-11.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d9da3df5f9ea2a89b81bb6087177fb1f4d1c7146d583a3fe5c672c0d94e55e12", size = 5278520, upload-time = "2025-07-01T09:15:17.429Z" }, - { url = "https://files.pythonhosted.org/packages/41/b0/33d79e377a336247df6348a54e6d2a2b85d644ca202555e3faa0cf811ecc/pillow-11.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0b275ff9b04df7b640c59ec5a3cb113eefd3795a8df80bac69646ef699c6981a", size = 4686116, upload-time = "2025-07-01T09:15:19.423Z" }, - { url = "https://files.pythonhosted.org/packages/49/2d/ed8bc0ab219ae8768f529597d9509d184fe8a6c4741a6864fea334d25f3f/pillow-11.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0743841cabd3dba6a83f38a92672cccbd69af56e3e91777b0ee7f4dba4385632", size = 5864597, upload-time = "2025-07-03T13:10:38.404Z" }, - { url = "https://files.pythonhosted.org/packages/b5/3d/b932bb4225c80b58dfadaca9d42d08d0b7064d2d1791b6a237f87f661834/pillow-11.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2465a69cf967b8b49ee1b96d76718cd98c4e925414ead59fdf75cf0fd07df673", size = 7638246, upload-time = "2025-07-03T13:10:44.987Z" }, - { url = "https://files.pythonhosted.org/packages/09/b5/0487044b7c096f1b48f0d7ad416472c02e0e4bf6919541b111efd3cae690/pillow-11.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41742638139424703b4d01665b807c6468e23e699e8e90cffefe291c5832b027", size = 5973336, upload-time = "2025-07-01T09:15:21.237Z" }, - { url = "https://files.pythonhosted.org/packages/a8/2d/524f9318f6cbfcc79fbc004801ea6b607ec3f843977652fdee4857a7568b/pillow-11.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93efb0b4de7e340d99057415c749175e24c8864302369e05914682ba642e5d77", size = 6642699, upload-time = "2025-07-01T09:15:23.186Z" }, - { url = "https://files.pythonhosted.org/packages/6f/d2/a9a4f280c6aefedce1e8f615baaa5474e0701d86dd6f1dede66726462bbd/pillow-11.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7966e38dcd0fa11ca390aed7c6f20454443581d758242023cf36fcb319b1a874", size = 6083789, upload-time = "2025-07-01T09:15:25.1Z" }, - { url = "https://files.pythonhosted.org/packages/fe/54/86b0cd9dbb683a9d5e960b66c7379e821a19be4ac5810e2e5a715c09a0c0/pillow-11.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:98a9afa7b9007c67ed84c57c9e0ad86a6000da96eaa638e4f8abe5b65ff83f0a", size = 6720386, upload-time = "2025-07-01T09:15:27.378Z" }, - { url = "https://files.pythonhosted.org/packages/e7/95/88efcaf384c3588e24259c4203b909cbe3e3c2d887af9e938c2022c9dd48/pillow-11.3.0-cp314-cp314-win32.whl", hash = "sha256:02a723e6bf909e7cea0dac1b0e0310be9d7650cd66222a5f1c571455c0a45214", size = 6370911, upload-time = "2025-07-01T09:15:29.294Z" }, - { url = "https://files.pythonhosted.org/packages/2e/cc/934e5820850ec5eb107e7b1a72dd278140731c669f396110ebc326f2a503/pillow-11.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:a418486160228f64dd9e9efcd132679b7a02a5f22c982c78b6fc7dab3fefb635", size = 7117383, upload-time = "2025-07-01T09:15:31.128Z" }, - { url = "https://files.pythonhosted.org/packages/d6/e9/9c0a616a71da2a5d163aa37405e8aced9a906d574b4a214bede134e731bc/pillow-11.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:155658efb5e044669c08896c0c44231c5e9abcaadbc5cd3648df2f7c0b96b9a6", size = 2511385, upload-time = "2025-07-01T09:15:33.328Z" }, - { url = "https://files.pythonhosted.org/packages/1a/33/c88376898aff369658b225262cd4f2659b13e8178e7534df9e6e1fa289f6/pillow-11.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:59a03cdf019efbfeeed910bf79c7c93255c3d54bc45898ac2a4140071b02b4ae", size = 5281129, upload-time = "2025-07-01T09:15:35.194Z" }, - { url = "https://files.pythonhosted.org/packages/1f/70/d376247fb36f1844b42910911c83a02d5544ebd2a8bad9efcc0f707ea774/pillow-11.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f8a5827f84d973d8636e9dc5764af4f0cf2318d26744b3d902931701b0d46653", size = 4689580, upload-time = "2025-07-01T09:15:37.114Z" }, - { url = "https://files.pythonhosted.org/packages/eb/1c/537e930496149fbac69efd2fc4329035bbe2e5475b4165439e3be9cb183b/pillow-11.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ee92f2fd10f4adc4b43d07ec5e779932b4eb3dbfbc34790ada5a6669bc095aa6", size = 5902860, upload-time = "2025-07-03T13:10:50.248Z" }, - { url = "https://files.pythonhosted.org/packages/bd/57/80f53264954dcefeebcf9dae6e3eb1daea1b488f0be8b8fef12f79a3eb10/pillow-11.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c96d333dcf42d01f47b37e0979b6bd73ec91eae18614864622d9b87bbd5bbf36", size = 7670694, upload-time = "2025-07-03T13:10:56.432Z" }, - { url = "https://files.pythonhosted.org/packages/70/ff/4727d3b71a8578b4587d9c276e90efad2d6fe0335fd76742a6da08132e8c/pillow-11.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c96f993ab8c98460cd0c001447bff6194403e8b1d7e149ade5f00594918128b", size = 6005888, upload-time = "2025-07-01T09:15:39.436Z" }, - { url = "https://files.pythonhosted.org/packages/05/ae/716592277934f85d3be51d7256f3636672d7b1abfafdc42cf3f8cbd4b4c8/pillow-11.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41342b64afeba938edb034d122b2dda5db2139b9a4af999729ba8818e0056477", size = 6670330, upload-time = "2025-07-01T09:15:41.269Z" }, - { url = "https://files.pythonhosted.org/packages/e7/bb/7fe6cddcc8827b01b1a9766f5fdeb7418680744f9082035bdbabecf1d57f/pillow-11.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:068d9c39a2d1b358eb9f245ce7ab1b5c3246c7c8c7d9ba58cfa5b43146c06e50", size = 6114089, upload-time = "2025-07-01T09:15:43.13Z" }, - { url = "https://files.pythonhosted.org/packages/8b/f5/06bfaa444c8e80f1a8e4bff98da9c83b37b5be3b1deaa43d27a0db37ef84/pillow-11.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a1bc6ba083b145187f648b667e05a2534ecc4b9f2784c2cbe3089e44868f2b9b", size = 6748206, upload-time = "2025-07-01T09:15:44.937Z" }, - { url = "https://files.pythonhosted.org/packages/f0/77/bc6f92a3e8e6e46c0ca78abfffec0037845800ea38c73483760362804c41/pillow-11.3.0-cp314-cp314t-win32.whl", hash = "sha256:118ca10c0d60b06d006be10a501fd6bbdfef559251ed31b794668ed569c87e12", size = 6377370, upload-time = "2025-07-01T09:15:46.673Z" }, - { url = "https://files.pythonhosted.org/packages/4a/82/3a721f7d69dca802befb8af08b7c79ebcab461007ce1c18bd91a5d5896f9/pillow-11.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:8924748b688aa210d79883357d102cd64690e56b923a186f35a82cbc10f997db", size = 7121500, upload-time = "2025-07-01T09:15:48.512Z" }, - { url = "https://files.pythonhosted.org/packages/89/c7/5572fa4a3f45740eaab6ae86fcdf7195b55beac1371ac8c619d880cfe948/pillow-11.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:79ea0d14d3ebad43ec77ad5272e6ff9bba5b679ef73375ea760261207fa8e0aa", size = 2512835, upload-time = "2025-07-01T09:15:50.399Z" }, - { url = "https://files.pythonhosted.org/packages/6f/8b/209bd6b62ce8367f47e68a218bffac88888fdf2c9fcf1ecadc6c3ec1ebc7/pillow-11.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:3cee80663f29e3843b68199b9d6f4f54bd1d4a6b59bdd91bceefc51238bcb967", size = 5270556, upload-time = "2025-07-01T09:16:09.961Z" }, - { url = "https://files.pythonhosted.org/packages/2e/e6/231a0b76070c2cfd9e260a7a5b504fb72da0a95279410fa7afd99d9751d6/pillow-11.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b5f56c3f344f2ccaf0dd875d3e180f631dc60a51b314295a3e681fe8cf851fbe", size = 4654625, upload-time = "2025-07-01T09:16:11.913Z" }, - { url = "https://files.pythonhosted.org/packages/13/f4/10cf94fda33cb12765f2397fc285fa6d8eb9c29de7f3185165b702fc7386/pillow-11.3.0-pp310-pypy310_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e67d793d180c9df62f1f40aee3accca4829d3794c95098887edc18af4b8b780c", size = 4874207, upload-time = "2025-07-03T13:11:10.201Z" }, - { url = "https://files.pythonhosted.org/packages/72/c9/583821097dc691880c92892e8e2d41fe0a5a3d6021f4963371d2f6d57250/pillow-11.3.0-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d000f46e2917c705e9fb93a3606ee4a819d1e3aa7a9b442f6444f07e77cf5e25", size = 6583939, upload-time = "2025-07-03T13:11:15.68Z" }, - { url = "https://files.pythonhosted.org/packages/3b/8e/5c9d410f9217b12320efc7c413e72693f48468979a013ad17fd690397b9a/pillow-11.3.0-pp310-pypy310_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:527b37216b6ac3a12d7838dc3bd75208ec57c1c6d11ef01902266a5a0c14fc27", size = 4957166, upload-time = "2025-07-01T09:16:13.74Z" }, - { url = "https://files.pythonhosted.org/packages/62/bb/78347dbe13219991877ffb3a91bf09da8317fbfcd4b5f9140aeae020ad71/pillow-11.3.0-pp310-pypy310_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:be5463ac478b623b9dd3937afd7fb7ab3d79dd290a28e2b6df292dc75063eb8a", size = 5581482, upload-time = "2025-07-01T09:16:16.107Z" }, - { url = "https://files.pythonhosted.org/packages/d9/28/1000353d5e61498aaeaaf7f1e4b49ddb05f2c6575f9d4f9f914a3538b6e1/pillow-11.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:8dc70ca24c110503e16918a658b869019126ecfe03109b754c402daff12b3d9f", size = 6984596, upload-time = "2025-07-01T09:16:18.07Z" }, - { url = "https://files.pythonhosted.org/packages/9e/e3/6fa84033758276fb31da12e5fb66ad747ae83b93c67af17f8c6ff4cc8f34/pillow-11.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7c8ec7a017ad1bd562f93dbd8505763e688d388cde6e4a010ae1486916e713e6", size = 5270566, upload-time = "2025-07-01T09:16:19.801Z" }, - { url = "https://files.pythonhosted.org/packages/5b/ee/e8d2e1ab4892970b561e1ba96cbd59c0d28cf66737fc44abb2aec3795a4e/pillow-11.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:9ab6ae226de48019caa8074894544af5b53a117ccb9d3b3dcb2871464c829438", size = 4654618, upload-time = "2025-07-01T09:16:21.818Z" }, - { url = "https://files.pythonhosted.org/packages/f2/6d/17f80f4e1f0761f02160fc433abd4109fa1548dcfdca46cfdadaf9efa565/pillow-11.3.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fe27fb049cdcca11f11a7bfda64043c37b30e6b91f10cb5bab275806c32f6ab3", size = 4874248, upload-time = "2025-07-03T13:11:20.738Z" }, - { url = "https://files.pythonhosted.org/packages/de/5f/c22340acd61cef960130585bbe2120e2fd8434c214802f07e8c03596b17e/pillow-11.3.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:465b9e8844e3c3519a983d58b80be3f668e2a7a5db97f2784e7079fbc9f9822c", size = 6583963, upload-time = "2025-07-03T13:11:26.283Z" }, - { url = "https://files.pythonhosted.org/packages/31/5e/03966aedfbfcbb4d5f8aa042452d3361f325b963ebbadddac05b122e47dd/pillow-11.3.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5418b53c0d59b3824d05e029669efa023bbef0f3e92e75ec8428f3799487f361", size = 4957170, upload-time = "2025-07-01T09:16:23.762Z" }, - { url = "https://files.pythonhosted.org/packages/cc/2d/e082982aacc927fc2cab48e1e731bdb1643a1406acace8bed0900a61464e/pillow-11.3.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:504b6f59505f08ae014f724b6207ff6222662aab5cc9542577fb084ed0676ac7", size = 5581505, upload-time = "2025-07-01T09:16:25.593Z" }, - { url = "https://files.pythonhosted.org/packages/34/e7/ae39f538fd6844e982063c3a5e4598b8ced43b9633baa3a85ef33af8c05c/pillow-11.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c84d689db21a1c397d001aa08241044aa2069e7587b398c8cc63020390b1c1b8", size = 6984598, upload-time = "2025-07-01T09:16:27.732Z" }, +version = "12.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/02/d52c733a2452ef1ffcc123b68e6606d07276b0e358db70eabad7e40042b7/pillow-12.1.0.tar.gz", hash = "sha256:5c5ae0a06e9ea030ab786b0251b32c7e4ce10e58d983c0d5c56029455180b5b9", size = 46977283, upload-time = "2026-01-02T09:13:29.892Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/41/f73d92b6b883a579e79600d391f2e21cb0df767b2714ecbd2952315dfeef/pillow-12.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:fb125d860738a09d363a88daa0f59c4533529a90e564785e20fe875b200b6dbd", size = 5304089, upload-time = "2026-01-02T09:10:24.953Z" }, + { url = "https://files.pythonhosted.org/packages/94/55/7aca2891560188656e4a91ed9adba305e914a4496800da6b5c0a15f09edf/pillow-12.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cad302dc10fac357d3467a74a9561c90609768a6f73a1923b0fd851b6486f8b0", size = 4657815, upload-time = "2026-01-02T09:10:27.063Z" }, + { url = "https://files.pythonhosted.org/packages/e9/d2/b28221abaa7b4c40b7dba948f0f6a708bd7342c4d47ce342f0ea39643974/pillow-12.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a40905599d8079e09f25027423aed94f2823adaf2868940de991e53a449e14a8", size = 6222593, upload-time = "2026-01-02T09:10:29.115Z" }, + { url = "https://files.pythonhosted.org/packages/71/b8/7a61fb234df6a9b0b479f69e66901209d89ff72a435b49933f9122f94cac/pillow-12.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:92a7fe4225365c5e3a8e598982269c6d6698d3e783b3b1ae979e7819f9cd55c1", size = 8027579, upload-time = "2026-01-02T09:10:31.182Z" }, + { url = "https://files.pythonhosted.org/packages/ea/51/55c751a57cc524a15a0e3db20e5cde517582359508d62305a627e77fd295/pillow-12.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f10c98f49227ed8383d28174ee95155a675c4ed7f85e2e573b04414f7e371bda", size = 6335760, upload-time = "2026-01-02T09:10:33.02Z" }, + { url = "https://files.pythonhosted.org/packages/dc/7c/60e3e6f5e5891a1a06b4c910f742ac862377a6fe842f7184df4a274ce7bf/pillow-12.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8637e29d13f478bc4f153d8daa9ffb16455f0a6cb287da1b432fdad2bfbd66c7", size = 7027127, upload-time = "2026-01-02T09:10:35.009Z" }, + { url = "https://files.pythonhosted.org/packages/06/37/49d47266ba50b00c27ba63a7c898f1bb41a29627ced8c09e25f19ebec0ff/pillow-12.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:21e686a21078b0f9cb8c8a961d99e6a4ddb88e0fc5ea6e130172ddddc2e5221a", size = 6449896, upload-time = "2026-01-02T09:10:36.793Z" }, + { url = "https://files.pythonhosted.org/packages/f9/e5/67fd87d2913902462cd9b79c6211c25bfe95fcf5783d06e1367d6d9a741f/pillow-12.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2415373395a831f53933c23ce051021e79c8cd7979822d8cc478547a3f4da8ef", size = 7151345, upload-time = "2026-01-02T09:10:39.064Z" }, + { url = "https://files.pythonhosted.org/packages/bd/15/f8c7abf82af68b29f50d77c227e7a1f87ce02fdc66ded9bf603bc3b41180/pillow-12.1.0-cp310-cp310-win32.whl", hash = "sha256:e75d3dba8fc1ddfec0cd752108f93b83b4f8d6ab40e524a95d35f016b9683b09", size = 6325568, upload-time = "2026-01-02T09:10:41.035Z" }, + { url = "https://files.pythonhosted.org/packages/d4/24/7d1c0e160b6b5ac2605ef7d8be537e28753c0db5363d035948073f5513d7/pillow-12.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:64efdf00c09e31efd754448a383ea241f55a994fd079866b92d2bbff598aad91", size = 7032367, upload-time = "2026-01-02T09:10:43.09Z" }, + { url = "https://files.pythonhosted.org/packages/f4/03/41c038f0d7a06099254c60f618d0ec7be11e79620fc23b8e85e5b31d9a44/pillow-12.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:f188028b5af6b8fb2e9a76ac0f841a575bd1bd396e46ef0840d9b88a48fdbcea", size = 2452345, upload-time = "2026-01-02T09:10:44.795Z" }, + { url = "https://files.pythonhosted.org/packages/43/c4/bf8328039de6cc22182c3ef007a2abfbbdab153661c0a9aa78af8d706391/pillow-12.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:a83e0850cb8f5ac975291ebfc4170ba481f41a28065277f7f735c202cd8e0af3", size = 5304057, upload-time = "2026-01-02T09:10:46.627Z" }, + { url = "https://files.pythonhosted.org/packages/43/06/7264c0597e676104cc22ca73ee48f752767cd4b1fe084662620b17e10120/pillow-12.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b6e53e82ec2db0717eabb276aa56cf4e500c9a7cec2c2e189b55c24f65a3e8c0", size = 4657811, upload-time = "2026-01-02T09:10:49.548Z" }, + { url = "https://files.pythonhosted.org/packages/72/64/f9189e44474610daf83da31145fa56710b627b5c4c0b9c235e34058f6b31/pillow-12.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:40a8e3b9e8773876d6e30daed22f016509e3987bab61b3b7fe309d7019a87451", size = 6232243, upload-time = "2026-01-02T09:10:51.62Z" }, + { url = "https://files.pythonhosted.org/packages/ef/30/0df458009be6a4caca4ca2c52975e6275c387d4e5c95544e34138b41dc86/pillow-12.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:800429ac32c9b72909c671aaf17ecd13110f823ddb7db4dfef412a5587c2c24e", size = 8037872, upload-time = "2026-01-02T09:10:53.446Z" }, + { url = "https://files.pythonhosted.org/packages/e4/86/95845d4eda4f4f9557e25381d70876aa213560243ac1a6d619c46caaedd9/pillow-12.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0b022eaaf709541b391ee069f0022ee5b36c709df71986e3f7be312e46f42c84", size = 6345398, upload-time = "2026-01-02T09:10:55.426Z" }, + { url = "https://files.pythonhosted.org/packages/5c/1f/8e66ab9be3aaf1435bc03edd1ebdf58ffcd17f7349c1d970cafe87af27d9/pillow-12.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f345e7bc9d7f368887c712aa5054558bad44d2a301ddf9248599f4161abc7c0", size = 7034667, upload-time = "2026-01-02T09:10:57.11Z" }, + { url = "https://files.pythonhosted.org/packages/f9/f6/683b83cb9b1db1fb52b87951b1c0b99bdcfceaa75febf11406c19f82cb5e/pillow-12.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d70347c8a5b7ccd803ec0c85c8709f036e6348f1e6a5bf048ecd9c64d3550b8b", size = 6458743, upload-time = "2026-01-02T09:10:59.331Z" }, + { url = "https://files.pythonhosted.org/packages/9a/7d/de833d63622538c1d58ce5395e7c6cb7e7dce80decdd8bde4a484e095d9f/pillow-12.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1fcc52d86ce7a34fd17cb04e87cfdb164648a3662a6f20565910a99653d66c18", size = 7159342, upload-time = "2026-01-02T09:11:01.82Z" }, + { url = "https://files.pythonhosted.org/packages/8c/40/50d86571c9e5868c42b81fe7da0c76ca26373f3b95a8dd675425f4a92ec1/pillow-12.1.0-cp311-cp311-win32.whl", hash = "sha256:3ffaa2f0659e2f740473bcf03c702c39a8d4b2b7ffc629052028764324842c64", size = 6328655, upload-time = "2026-01-02T09:11:04.556Z" }, + { url = "https://files.pythonhosted.org/packages/6c/af/b1d7e301c4cd26cd45d4af884d9ee9b6fab893b0ad2450d4746d74a6968c/pillow-12.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:806f3987ffe10e867bab0ddad45df1148a2b98221798457fa097ad85d6e8bc75", size = 7031469, upload-time = "2026-01-02T09:11:06.538Z" }, + { url = "https://files.pythonhosted.org/packages/48/36/d5716586d887fb2a810a4a61518a327a1e21c8b7134c89283af272efe84b/pillow-12.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:9f5fefaca968e700ad1a4a9de98bf0869a94e397fe3524c4c9450c1445252304", size = 2452515, upload-time = "2026-01-02T09:11:08.226Z" }, + { url = "https://files.pythonhosted.org/packages/20/31/dc53fe21a2f2996e1b7d92bf671cdb157079385183ef7c1ae08b485db510/pillow-12.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a332ac4ccb84b6dde65dbace8431f3af08874bf9770719d32a635c4ef411b18b", size = 5262642, upload-time = "2026-01-02T09:11:10.138Z" }, + { url = "https://files.pythonhosted.org/packages/ab/c1/10e45ac9cc79419cedf5121b42dcca5a50ad2b601fa080f58c22fb27626e/pillow-12.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:907bfa8a9cb790748a9aa4513e37c88c59660da3bcfffbd24a7d9e6abf224551", size = 4657464, upload-time = "2026-01-02T09:11:12.319Z" }, + { url = "https://files.pythonhosted.org/packages/ad/26/7b82c0ab7ef40ebede7a97c72d473bda5950f609f8e0c77b04af574a0ddb/pillow-12.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:efdc140e7b63b8f739d09a99033aa430accce485ff78e6d311973a67b6bf3208", size = 6234878, upload-time = "2026-01-02T09:11:14.096Z" }, + { url = "https://files.pythonhosted.org/packages/76/25/27abc9792615b5e886ca9411ba6637b675f1b77af3104710ac7353fe5605/pillow-12.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bef9768cab184e7ae6e559c032e95ba8d07b3023c289f79a2bd36e8bf85605a5", size = 8044868, upload-time = "2026-01-02T09:11:15.903Z" }, + { url = "https://files.pythonhosted.org/packages/0a/ea/f200a4c36d836100e7bc738fc48cd963d3ba6372ebc8298a889e0cfc3359/pillow-12.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:742aea052cf5ab5034a53c3846165bc3ce88d7c38e954120db0ab867ca242661", size = 6349468, upload-time = "2026-01-02T09:11:17.631Z" }, + { url = "https://files.pythonhosted.org/packages/11/8f/48d0b77ab2200374c66d344459b8958c86693be99526450e7aee714e03e4/pillow-12.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a6dfc2af5b082b635af6e08e0d1f9f1c4e04d17d4e2ca0ef96131e85eda6eb17", size = 7041518, upload-time = "2026-01-02T09:11:19.389Z" }, + { url = "https://files.pythonhosted.org/packages/1d/23/c281182eb986b5d31f0a76d2a2c8cd41722d6fb8ed07521e802f9bba52de/pillow-12.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:609e89d9f90b581c8d16358c9087df76024cf058fa693dd3e1e1620823f39670", size = 6462829, upload-time = "2026-01-02T09:11:21.28Z" }, + { url = "https://files.pythonhosted.org/packages/25/ef/7018273e0faac099d7b00982abdcc39142ae6f3bd9ceb06de09779c4a9d6/pillow-12.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:43b4899cfd091a9693a1278c4982f3e50f7fb7cff5153b05174b4afc9593b616", size = 7166756, upload-time = "2026-01-02T09:11:23.559Z" }, + { url = "https://files.pythonhosted.org/packages/8f/c8/993d4b7ab2e341fe02ceef9576afcf5830cdec640be2ac5bee1820d693d4/pillow-12.1.0-cp312-cp312-win32.whl", hash = "sha256:aa0c9cc0b82b14766a99fbe6084409972266e82f459821cd26997a488a7261a7", size = 6328770, upload-time = "2026-01-02T09:11:25.661Z" }, + { url = "https://files.pythonhosted.org/packages/a7/87/90b358775a3f02765d87655237229ba64a997b87efa8ccaca7dd3e36e7a7/pillow-12.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:d70534cea9e7966169ad29a903b99fc507e932069a881d0965a1a84bb57f6c6d", size = 7033406, upload-time = "2026-01-02T09:11:27.474Z" }, + { url = "https://files.pythonhosted.org/packages/5d/cf/881b457eccacac9e5b2ddd97d5071fb6d668307c57cbf4e3b5278e06e536/pillow-12.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:65b80c1ee7e14a87d6a068dd3b0aea268ffcabfe0498d38661b00c5b4b22e74c", size = 2452612, upload-time = "2026-01-02T09:11:29.309Z" }, + { url = "https://files.pythonhosted.org/packages/dd/c7/2530a4aa28248623e9d7f27316b42e27c32ec410f695929696f2e0e4a778/pillow-12.1.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:7b5dd7cbae20285cdb597b10eb5a2c13aa9de6cde9bb64a3c1317427b1db1ae1", size = 4062543, upload-time = "2026-01-02T09:11:31.566Z" }, + { url = "https://files.pythonhosted.org/packages/8f/1f/40b8eae823dc1519b87d53c30ed9ef085506b05281d313031755c1705f73/pillow-12.1.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:29a4cef9cb672363926f0470afc516dbf7305a14d8c54f7abbb5c199cd8f8179", size = 4138373, upload-time = "2026-01-02T09:11:33.367Z" }, + { url = "https://files.pythonhosted.org/packages/d4/77/6fa60634cf06e52139fd0e89e5bbf055e8166c691c42fb162818b7fda31d/pillow-12.1.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:681088909d7e8fa9e31b9799aaa59ba5234c58e5e4f1951b4c4d1082a2e980e0", size = 3601241, upload-time = "2026-01-02T09:11:35.011Z" }, + { url = "https://files.pythonhosted.org/packages/4f/bf/28ab865de622e14b747f0cd7877510848252d950e43002e224fb1c9ababf/pillow-12.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:983976c2ab753166dc66d36af6e8ec15bb511e4a25856e2227e5f7e00a160587", size = 5262410, upload-time = "2026-01-02T09:11:36.682Z" }, + { url = "https://files.pythonhosted.org/packages/1c/34/583420a1b55e715937a85bd48c5c0991598247a1fd2eb5423188e765ea02/pillow-12.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:db44d5c160a90df2d24a24760bbd37607d53da0b34fb546c4c232af7192298ac", size = 4657312, upload-time = "2026-01-02T09:11:38.535Z" }, + { url = "https://files.pythonhosted.org/packages/1d/fd/f5a0896839762885b3376ff04878f86ab2b097c2f9a9cdccf4eda8ba8dc0/pillow-12.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6b7a9d1db5dad90e2991645874f708e87d9a3c370c243c2d7684d28f7e133e6b", size = 6232605, upload-time = "2026-01-02T09:11:40.602Z" }, + { url = "https://files.pythonhosted.org/packages/98/aa/938a09d127ac1e70e6ed467bd03834350b33ef646b31edb7452d5de43792/pillow-12.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6258f3260986990ba2fa8a874f8b6e808cf5abb51a94015ca3dc3c68aa4f30ea", size = 8041617, upload-time = "2026-01-02T09:11:42.721Z" }, + { url = "https://files.pythonhosted.org/packages/17/e8/538b24cb426ac0186e03f80f78bc8dc7246c667f58b540bdd57c71c9f79d/pillow-12.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e115c15e3bc727b1ca3e641a909f77f8ca72a64fff150f666fcc85e57701c26c", size = 6346509, upload-time = "2026-01-02T09:11:44.955Z" }, + { url = "https://files.pythonhosted.org/packages/01/9a/632e58ec89a32738cabfd9ec418f0e9898a2b4719afc581f07c04a05e3c9/pillow-12.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6741e6f3074a35e47c77b23a4e4f2d90db3ed905cb1c5e6e0d49bff2045632bc", size = 7038117, upload-time = "2026-01-02T09:11:46.736Z" }, + { url = "https://files.pythonhosted.org/packages/c7/a2/d40308cf86eada842ca1f3ffa45d0ca0df7e4ab33c83f81e73f5eaed136d/pillow-12.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:935b9d1aed48fcfb3f838caac506f38e29621b44ccc4f8a64d575cb1b2a88644", size = 6460151, upload-time = "2026-01-02T09:11:48.625Z" }, + { url = "https://files.pythonhosted.org/packages/f1/88/f5b058ad6453a085c5266660a1417bdad590199da1b32fb4efcff9d33b05/pillow-12.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5fee4c04aad8932da9f8f710af2c1a15a83582cfb884152a9caa79d4efcdbf9c", size = 7164534, upload-time = "2026-01-02T09:11:50.445Z" }, + { url = "https://files.pythonhosted.org/packages/19/ce/c17334caea1db789163b5d855a5735e47995b0b5dc8745e9a3605d5f24c0/pillow-12.1.0-cp313-cp313-win32.whl", hash = "sha256:a786bf667724d84aa29b5db1c61b7bfdde380202aaca12c3461afd6b71743171", size = 6332551, upload-time = "2026-01-02T09:11:52.234Z" }, + { url = "https://files.pythonhosted.org/packages/e5/07/74a9d941fa45c90a0d9465098fe1ec85de3e2afbdc15cc4766622d516056/pillow-12.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:461f9dfdafa394c59cd6d818bdfdbab4028b83b02caadaff0ffd433faf4c9a7a", size = 7040087, upload-time = "2026-01-02T09:11:54.822Z" }, + { url = "https://files.pythonhosted.org/packages/88/09/c99950c075a0e9053d8e880595926302575bc742b1b47fe1bbcc8d388d50/pillow-12.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:9212d6b86917a2300669511ed094a9406888362e085f2431a7da985a6b124f45", size = 2452470, upload-time = "2026-01-02T09:11:56.522Z" }, + { url = "https://files.pythonhosted.org/packages/b5/ba/970b7d85ba01f348dee4d65412476321d40ee04dcb51cd3735b9dc94eb58/pillow-12.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:00162e9ca6d22b7c3ee8e61faa3c3253cd19b6a37f126cad04f2f88b306f557d", size = 5264816, upload-time = "2026-01-02T09:11:58.227Z" }, + { url = "https://files.pythonhosted.org/packages/10/60/650f2fb55fdba7a510d836202aa52f0baac633e50ab1cf18415d332188fb/pillow-12.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7d6daa89a00b58c37cb1747ec9fb7ac3bc5ffd5949f5888657dfddde6d1312e0", size = 4660472, upload-time = "2026-01-02T09:12:00.798Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c0/5273a99478956a099d533c4f46cbaa19fd69d606624f4334b85e50987a08/pillow-12.1.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e2479c7f02f9d505682dc47df8c0ea1fc5e264c4d1629a5d63fe3e2334b89554", size = 6268974, upload-time = "2026-01-02T09:12:02.572Z" }, + { url = "https://files.pythonhosted.org/packages/b4/26/0bf714bc2e73d5267887d47931d53c4ceeceea6978148ed2ab2a4e6463c4/pillow-12.1.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f188d580bd870cda1e15183790d1cc2fa78f666e76077d103edf048eed9c356e", size = 8073070, upload-time = "2026-01-02T09:12:04.75Z" }, + { url = "https://files.pythonhosted.org/packages/43/cf/1ea826200de111a9d65724c54f927f3111dc5ae297f294b370a670c17786/pillow-12.1.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0fde7ec5538ab5095cc02df38ee99b0443ff0e1c847a045554cf5f9af1f4aa82", size = 6380176, upload-time = "2026-01-02T09:12:06.626Z" }, + { url = "https://files.pythonhosted.org/packages/03/e0/7938dd2b2013373fd85d96e0f38d62b7a5a262af21ac274250c7ca7847c9/pillow-12.1.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0ed07dca4a8464bada6139ab38f5382f83e5f111698caf3191cb8dbf27d908b4", size = 7067061, upload-time = "2026-01-02T09:12:08.624Z" }, + { url = "https://files.pythonhosted.org/packages/86/ad/a2aa97d37272a929a98437a8c0ac37b3cf012f4f8721e1bd5154699b2518/pillow-12.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f45bd71d1fa5e5749587613037b172e0b3b23159d1c00ef2fc920da6f470e6f0", size = 6491824, upload-time = "2026-01-02T09:12:10.488Z" }, + { url = "https://files.pythonhosted.org/packages/a4/44/80e46611b288d51b115826f136fb3465653c28f491068a72d3da49b54cd4/pillow-12.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:277518bf4fe74aa91489e1b20577473b19ee70fb97c374aa50830b279f25841b", size = 7190911, upload-time = "2026-01-02T09:12:12.772Z" }, + { url = "https://files.pythonhosted.org/packages/86/77/eacc62356b4cf81abe99ff9dbc7402750044aed02cfd6a503f7c6fc11f3e/pillow-12.1.0-cp313-cp313t-win32.whl", hash = "sha256:7315f9137087c4e0ee73a761b163fc9aa3b19f5f606a7fc08d83fd3e4379af65", size = 6336445, upload-time = "2026-01-02T09:12:14.775Z" }, + { url = "https://files.pythonhosted.org/packages/e7/3c/57d81d0b74d218706dafccb87a87ea44262c43eef98eb3b164fd000e0491/pillow-12.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:0ddedfaa8b5f0b4ffbc2fa87b556dc59f6bb4ecb14a53b33f9189713ae8053c0", size = 7045354, upload-time = "2026-01-02T09:12:16.599Z" }, + { url = "https://files.pythonhosted.org/packages/ac/82/8b9b97bba2e3576a340f93b044a3a3a09841170ab4c1eb0d5c93469fd32f/pillow-12.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:80941e6d573197a0c28f394753de529bb436b1ca990ed6e765cf42426abc39f8", size = 2454547, upload-time = "2026-01-02T09:12:18.704Z" }, + { url = "https://files.pythonhosted.org/packages/8c/87/bdf971d8bbcf80a348cc3bacfcb239f5882100fe80534b0ce67a784181d8/pillow-12.1.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:5cb7bc1966d031aec37ddb9dcf15c2da5b2e9f7cc3ca7c54473a20a927e1eb91", size = 4062533, upload-time = "2026-01-02T09:12:20.791Z" }, + { url = "https://files.pythonhosted.org/packages/ff/4f/5eb37a681c68d605eb7034c004875c81f86ec9ef51f5be4a63eadd58859a/pillow-12.1.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:97e9993d5ed946aba26baf9c1e8cf18adbab584b99f452ee72f7ee8acb882796", size = 4138546, upload-time = "2026-01-02T09:12:23.664Z" }, + { url = "https://files.pythonhosted.org/packages/11/6d/19a95acb2edbace40dcd582d077b991646b7083c41b98da4ed7555b59733/pillow-12.1.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:414b9a78e14ffeb98128863314e62c3f24b8a86081066625700b7985b3f529bd", size = 3601163, upload-time = "2026-01-02T09:12:26.338Z" }, + { url = "https://files.pythonhosted.org/packages/fc/36/2b8138e51cb42e4cc39c3297713455548be855a50558c3ac2beebdc251dd/pillow-12.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:e6bdb408f7c9dd2a5ff2b14a3b0bb6d4deb29fb9961e6eb3ae2031ae9a5cec13", size = 5266086, upload-time = "2026-01-02T09:12:28.782Z" }, + { url = "https://files.pythonhosted.org/packages/53/4b/649056e4d22e1caa90816bf99cef0884aed607ed38075bd75f091a607a38/pillow-12.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:3413c2ae377550f5487991d444428f1a8ae92784aac79caa8b1e3b89b175f77e", size = 4657344, upload-time = "2026-01-02T09:12:31.117Z" }, + { url = "https://files.pythonhosted.org/packages/6c/6b/c5742cea0f1ade0cd61485dc3d81f05261fc2276f537fbdc00802de56779/pillow-12.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e5dcbe95016e88437ecf33544ba5db21ef1b8dd6e1b434a2cb2a3d605299e643", size = 6232114, upload-time = "2026-01-02T09:12:32.936Z" }, + { url = "https://files.pythonhosted.org/packages/bf/8f/9f521268ce22d63991601aafd3d48d5ff7280a246a1ef62d626d67b44064/pillow-12.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d0a7735df32ccbcc98b98a1ac785cc4b19b580be1bdf0aeb5c03223220ea09d5", size = 8042708, upload-time = "2026-01-02T09:12:34.78Z" }, + { url = "https://files.pythonhosted.org/packages/1a/eb/257f38542893f021502a1bbe0c2e883c90b5cff26cc33b1584a841a06d30/pillow-12.1.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c27407a2d1b96774cbc4a7594129cc027339fd800cd081e44497722ea1179de", size = 6347762, upload-time = "2026-01-02T09:12:36.748Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5a/8ba375025701c09b309e8d5163c5a4ce0102fa86bbf8800eb0d7ac87bc51/pillow-12.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15c794d74303828eaa957ff8070846d0efe8c630901a1c753fdc63850e19ecd9", size = 7039265, upload-time = "2026-01-02T09:12:39.082Z" }, + { url = "https://files.pythonhosted.org/packages/cf/dc/cf5e4cdb3db533f539e88a7bbf9f190c64ab8a08a9bc7a4ccf55067872e4/pillow-12.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c990547452ee2800d8506c4150280757f88532f3de2a58e3022e9b179107862a", size = 6462341, upload-time = "2026-01-02T09:12:40.946Z" }, + { url = "https://files.pythonhosted.org/packages/d0/47/0291a25ac9550677e22eda48510cfc4fa4b2ef0396448b7fbdc0a6946309/pillow-12.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b63e13dd27da389ed9475b3d28510f0f954bca0041e8e551b2a4eb1eab56a39a", size = 7165395, upload-time = "2026-01-02T09:12:42.706Z" }, + { url = "https://files.pythonhosted.org/packages/4f/4c/e005a59393ec4d9416be06e6b45820403bb946a778e39ecec62f5b2b991e/pillow-12.1.0-cp314-cp314-win32.whl", hash = "sha256:1a949604f73eb07a8adab38c4fe50791f9919344398bdc8ac6b307f755fc7030", size = 6431413, upload-time = "2026-01-02T09:12:44.944Z" }, + { url = "https://files.pythonhosted.org/packages/1c/af/f23697f587ac5f9095d67e31b81c95c0249cd461a9798a061ed6709b09b5/pillow-12.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:4f9f6a650743f0ddee5593ac9e954ba1bdbc5e150bc066586d4f26127853ab94", size = 7176779, upload-time = "2026-01-02T09:12:46.727Z" }, + { url = "https://files.pythonhosted.org/packages/b3/36/6a51abf8599232f3e9afbd16d52829376a68909fe14efe29084445db4b73/pillow-12.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:808b99604f7873c800c4840f55ff389936ef1948e4e87645eaf3fccbc8477ac4", size = 2543105, upload-time = "2026-01-02T09:12:49.243Z" }, + { url = "https://files.pythonhosted.org/packages/82/54/2e1dd20c8749ff225080d6ba465a0cab4387f5db0d1c5fb1439e2d99923f/pillow-12.1.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:bc11908616c8a283cf7d664f77411a5ed2a02009b0097ff8abbba5e79128ccf2", size = 5268571, upload-time = "2026-01-02T09:12:51.11Z" }, + { url = "https://files.pythonhosted.org/packages/57/61/571163a5ef86ec0cf30d265ac2a70ae6fc9e28413d1dc94fa37fae6bda89/pillow-12.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:896866d2d436563fa2a43a9d72f417874f16b5545955c54a64941e87c1376c61", size = 4660426, upload-time = "2026-01-02T09:12:52.865Z" }, + { url = "https://files.pythonhosted.org/packages/5e/e1/53ee5163f794aef1bf84243f755ee6897a92c708505350dd1923f4afec48/pillow-12.1.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8e178e3e99d3c0ea8fc64b88447f7cac8ccf058af422a6cedc690d0eadd98c51", size = 6269908, upload-time = "2026-01-02T09:12:54.884Z" }, + { url = "https://files.pythonhosted.org/packages/bc/0b/b4b4106ff0ee1afa1dc599fde6ab230417f800279745124f6c50bcffed8e/pillow-12.1.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:079af2fb0c599c2ec144ba2c02766d1b55498e373b3ac64687e43849fbbef5bc", size = 8074733, upload-time = "2026-01-02T09:12:56.802Z" }, + { url = "https://files.pythonhosted.org/packages/19/9f/80b411cbac4a732439e629a26ad3ef11907a8c7fc5377b7602f04f6fe4e7/pillow-12.1.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bdec5e43377761c5dbca620efb69a77f6855c5a379e32ac5b158f54c84212b14", size = 6381431, upload-time = "2026-01-02T09:12:58.823Z" }, + { url = "https://files.pythonhosted.org/packages/8f/b7/d65c45db463b66ecb6abc17c6ba6917a911202a07662247e1355ce1789e7/pillow-12.1.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:565c986f4b45c020f5421a4cea13ef294dde9509a8577f29b2fc5edc7587fff8", size = 7068529, upload-time = "2026-01-02T09:13:00.885Z" }, + { url = "https://files.pythonhosted.org/packages/50/96/dfd4cd726b4a45ae6e3c669fc9e49deb2241312605d33aba50499e9d9bd1/pillow-12.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:43aca0a55ce1eefc0aefa6253661cb54571857b1a7b2964bd8a1e3ef4b729924", size = 6492981, upload-time = "2026-01-02T09:13:03.314Z" }, + { url = "https://files.pythonhosted.org/packages/4d/1c/b5dc52cf713ae46033359c5ca920444f18a6359ce1020dd3e9c553ea5bc6/pillow-12.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0deedf2ea233722476b3a81e8cdfbad786f7adbed5d848469fa59fe52396e4ef", size = 7191878, upload-time = "2026-01-02T09:13:05.276Z" }, + { url = "https://files.pythonhosted.org/packages/53/26/c4188248bd5edaf543864fe4834aebe9c9cb4968b6f573ce014cc42d0720/pillow-12.1.0-cp314-cp314t-win32.whl", hash = "sha256:b17fbdbe01c196e7e159aacb889e091f28e61020a8abeac07b68079b6e626988", size = 6438703, upload-time = "2026-01-02T09:13:07.491Z" }, + { url = "https://files.pythonhosted.org/packages/b8/0e/69ed296de8ea05cb03ee139cee600f424ca166e632567b2d66727f08c7ed/pillow-12.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27b9baecb428899db6c0de572d6d305cfaf38ca1596b5c0542a5182e3e74e8c6", size = 7182927, upload-time = "2026-01-02T09:13:09.841Z" }, + { url = "https://files.pythonhosted.org/packages/fc/f5/68334c015eed9b5cff77814258717dec591ded209ab5b6fb70e2ae873d1d/pillow-12.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:f61333d817698bdcdd0f9d7793e365ac3d2a21c1f1eb02b32ad6aefb8d8ea831", size = 2545104, upload-time = "2026-01-02T09:13:12.068Z" }, + { url = "https://files.pythonhosted.org/packages/8b/bc/224b1d98cffd7164b14707c91aac83c07b047fbd8f58eba4066a3e53746a/pillow-12.1.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ca94b6aac0d7af2a10ba08c0f888b3d5114439b6b3ef39968378723622fed377", size = 5228605, upload-time = "2026-01-02T09:13:14.084Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ca/49ca7769c4550107de049ed85208240ba0f330b3f2e316f24534795702ce/pillow-12.1.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:351889afef0f485b84078ea40fe33727a0492b9af3904661b0abbafee0355b72", size = 4622245, upload-time = "2026-01-02T09:13:15.964Z" }, + { url = "https://files.pythonhosted.org/packages/73/48/fac807ce82e5955bcc2718642b94b1bd22a82a6d452aea31cbb678cddf12/pillow-12.1.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bb0984b30e973f7e2884362b7d23d0a348c7143ee559f38ef3eaab640144204c", size = 5247593, upload-time = "2026-01-02T09:13:17.913Z" }, + { url = "https://files.pythonhosted.org/packages/d2/95/3e0742fe358c4664aed4fd05d5f5373dcdad0b27af52aa0972568541e3f4/pillow-12.1.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:84cabc7095dd535ca934d57e9ce2a72ffd216e435a84acb06b2277b1de2689bd", size = 6989008, upload-time = "2026-01-02T09:13:20.083Z" }, + { url = "https://files.pythonhosted.org/packages/5a/74/fe2ac378e4e202e56d50540d92e1ef4ff34ed687f3c60f6a121bcf99437e/pillow-12.1.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53d8b764726d3af1a138dd353116f774e3862ec7e3794e0c8781e30db0f35dfc", size = 5313824, upload-time = "2026-01-02T09:13:22.405Z" }, + { url = "https://files.pythonhosted.org/packages/f3/77/2a60dee1adee4e2655ac328dd05c02a955c1cd683b9f1b82ec3feb44727c/pillow-12.1.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5da841d81b1a05ef940a8567da92decaa15bc4d7dedb540a8c219ad83d91808a", size = 5963278, upload-time = "2026-01-02T09:13:24.706Z" }, + { url = "https://files.pythonhosted.org/packages/2d/71/64e9b1c7f04ae0027f788a248e6297d7fcc29571371fe7d45495a78172c0/pillow-12.1.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:75af0b4c229ac519b155028fa1be632d812a519abba9b46b20e50c6caa184f19", size = 7029809, upload-time = "2026-01-02T09:13:26.541Z" }, ] [[package]] name = "platformdirs" -version = "4.4.0" +version = "4.5.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/23/e8/21db9c9987b0e728855bd57bff6984f67952bea55d6f75e055c46b5383e8/platformdirs-4.4.0.tar.gz", hash = "sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf", size = 21634, upload-time = "2025-08-26T14:32:04.268Z" } +sdist = { url = "https://files.pythonhosted.org/packages/cf/86/0248f086a84f01b37aaec0fa567b397df1a119f73c16f6c7a9aac73ea309/platformdirs-4.5.1.tar.gz", hash = "sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda", size = 21715, upload-time = "2025-12-05T13:52:58.638Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/40/4b/2028861e724d3bd36227adfa20d3fd24c3fc6d52032f4a93c133be5d17ce/platformdirs-4.4.0-py3-none-any.whl", hash = "sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85", size = 18654, upload-time = "2025-08-26T14:32:02.735Z" }, + { url = "https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl", hash = "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31", size = 18731, upload-time = "2025-12-05T13:52:56.823Z" }, ] [[package]] @@ -892,19 +1517,92 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] +[[package]] +name = "preshed" +version = "3.0.12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cymem" }, + { name = "murmurhash" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bf/34/eb4f5f0f678e152a96e826da867d2f41c4b18a2d589e40e1dd3347219e91/preshed-3.0.12.tar.gz", hash = "sha256:b73f9a8b54ee1d44529cc6018356896cff93d48f755f29c134734d9371c0d685", size = 15027, upload-time = "2025-11-17T13:00:33.621Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/d0/1245d6d89b051dd5356ffaaa43da05408f37d2da4cfadcf77356ba46da4f/preshed-3.0.12-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d8f0bc207bb5bfe69e3a232367c264cac900dc14e9219cd061b98eaca9e7da61", size = 128866, upload-time = "2025-11-17T12:59:06.633Z" }, + { url = "https://files.pythonhosted.org/packages/24/24/f06650f22450888434a51b17971b650186d2e68f5eaf292e6e8e4be7974c/preshed-3.0.12-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0c8a8d571c044ddab5369d30d172c87545f44daa1510bde92b7e0144a8f4f92b", size = 124848, upload-time = "2025-11-17T12:59:08.641Z" }, + { url = "https://files.pythonhosted.org/packages/88/a1/78bdd4938c3286998c0609491c4a0a8aee2f4de4003364112c295a2f32b8/preshed-3.0.12-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6cca080ac9bbc978625c8f0c56ef17471162193c7c1a4622fbde7721da1bdd40", size = 780279, upload-time = "2025-11-17T12:59:10.009Z" }, + { url = "https://files.pythonhosted.org/packages/8f/f8/6fbf083346a007927a9e4ce3686ae54ba74191e74fc3af34863ea7be9dea/preshed-3.0.12-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cfd3672007c7b7cac554a0e5f263d7bc94109dc508ee1ef43b2f6ec8c2e2e9e8", size = 781954, upload-time = "2025-11-17T12:59:11.574Z" }, + { url = "https://files.pythonhosted.org/packages/91/c3/f28c7a6cc03e85002780b75249c3557c0fe503792ac66a7b9c5379569999/preshed-3.0.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e01609074713aba93a8143480e67942fbe6898fe134b98d813819bec42a8cae7", size = 799772, upload-time = "2025-11-17T12:59:14.371Z" }, + { url = "https://files.pythonhosted.org/packages/46/25/ca22fa0db162e286db7a94a4f08c1ceb4872d3d64610b807148935ae084c/preshed-3.0.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:30d8a53015663b0d666012bc10d22e8bdd7359191d84a8980ae902e0b87caf24", size = 820532, upload-time = "2025-11-17T12:59:16.281Z" }, + { url = "https://files.pythonhosted.org/packages/0f/57/459a6eea7e15034756f4c2650a9aba6d023aa7976748b18476bd4c0b6fef/preshed-3.0.12-cp310-cp310-win_amd64.whl", hash = "sha256:bf2235bbe09b4862b914086f37a065cc84259e1b53c8ed996cbbd6519ea36b62", size = 117482, upload-time = "2025-11-17T12:59:18.36Z" }, + { url = "https://files.pythonhosted.org/packages/80/1f/a7b648a57d259891bd9b2c8ef1978622fa37b46a9368f054881488b9b4fe/preshed-3.0.12-cp310-cp310-win_arm64.whl", hash = "sha256:139d08b10693bfccb0ea000f47dcca5fc4a78fc1b96c1832c920be9b0a4c8f04", size = 105504, upload-time = "2025-11-17T12:59:19.562Z" }, + { url = "https://files.pythonhosted.org/packages/1e/54/d1e02d0a0ea348fb6a769506166e366abfe87ee917c2f11f7139c7acbf10/preshed-3.0.12-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bc45fda3fd4ae1ae15c37f18f0777cf389ce9184ef8884b39b18894416fd1341", size = 128439, upload-time = "2025-11-17T12:59:21.317Z" }, + { url = "https://files.pythonhosted.org/packages/8c/cb/685ca57ca6e438345b3f6c20226705a0e056a3de399a5bf8a9ee89b3dd2b/preshed-3.0.12-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75d6e628bc78c022dbb9267242715718f862c3105927732d166076ff009d65de", size = 124544, upload-time = "2025-11-17T12:59:22.944Z" }, + { url = "https://files.pythonhosted.org/packages/f8/07/018fcd3bf298304e1570065cf80601ac16acd29f799578fd47b715dd3ca2/preshed-3.0.12-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b901cff5c814facf7a864b0a4c14a16d45fa1379899a585b3fb48ee36a2dccdb", size = 824728, upload-time = "2025-11-17T12:59:24.614Z" }, + { url = "https://files.pythonhosted.org/packages/79/dc/d888b328fcedae530df53396d9fc0006026aa8793fec54d7d34f57f31ff5/preshed-3.0.12-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d1099253bf73dd3c39313280bd5331841f769637b27ddb576ff362c4e7bad298", size = 825969, upload-time = "2025-11-17T12:59:26.493Z" }, + { url = "https://files.pythonhosted.org/packages/21/51/f19933301f42ece1ffef1f7f4c370d09f0351c43c528e66fac24560e44d2/preshed-3.0.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1af4a049ffe9d0246e5dc10d6f54820ed064c40e5c3f7b6526127c664008297c", size = 842346, upload-time = "2025-11-17T12:59:28.092Z" }, + { url = "https://files.pythonhosted.org/packages/51/46/025f60fd3d51bf60606a0f8f0cd39c40068b9b5e4d249bca1682e4ff09c3/preshed-3.0.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:57159bcedca0cb4c99390f8a6e730f8659fdb663a5a3efcd9c4531e0f54b150e", size = 865504, upload-time = "2025-11-17T12:59:29.648Z" }, + { url = "https://files.pythonhosted.org/packages/88/b5/2e6ee5ab19b03e7983fc5e1850c812fb71dc178dd140d6aca3b45306bdf7/preshed-3.0.12-cp311-cp311-win_amd64.whl", hash = "sha256:8fe9cf1745e203e5aa58b8700436f78da1dcf0f0e2efb0054b467effd9d7d19d", size = 117736, upload-time = "2025-11-17T12:59:30.974Z" }, + { url = "https://files.pythonhosted.org/packages/1e/17/8a0a8f4b01e71b5fb7c5cd4c9fec04d7b852d42f1f9e096b01e7d2b16b17/preshed-3.0.12-cp311-cp311-win_arm64.whl", hash = "sha256:12d880f8786cb6deac34e99b8b07146fb92d22fbca0023208e03325f5944606b", size = 105127, upload-time = "2025-11-17T12:59:32.171Z" }, + { url = "https://files.pythonhosted.org/packages/4b/f7/ff3aca937eeaee19c52c45ddf92979546e52ed0686e58be4bc09c47e7d88/preshed-3.0.12-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2779861f5d69480493519ed123a622a13012d1182126779036b99d9d989bf7e9", size = 129958, upload-time = "2025-11-17T12:59:33.391Z" }, + { url = "https://files.pythonhosted.org/packages/80/24/fd654a9c0f5f3ed1a9b1d8a392f063ae9ca29ad0b462f0732ae0147f7cee/preshed-3.0.12-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffe1fd7d92f51ed34383e20d8b734780c814ca869cfdb7e07f2d31651f90cdf4", size = 124550, upload-time = "2025-11-17T12:59:34.688Z" }, + { url = "https://files.pythonhosted.org/packages/71/49/8271c7f680696f4b0880f44357d2a903d649cb9f6e60a1efc97a203104df/preshed-3.0.12-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:91893404858502cc4e856d338fef3d2a4a552135f79a1041c24eb919817c19db", size = 874987, upload-time = "2025-11-17T12:59:36.062Z" }, + { url = "https://files.pythonhosted.org/packages/a3/a5/ca200187ca1632f1e2c458b72f1bd100fa8b55deecd5d72e1e4ebf09e98c/preshed-3.0.12-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9e06e8f2ba52f183eb9817a616cdebe84a211bb859a2ffbc23f3295d0b189638", size = 866499, upload-time = "2025-11-17T12:59:37.586Z" }, + { url = "https://files.pythonhosted.org/packages/87/a1/943b61f850c44899910c21996cb542d0ef5931744c6d492fdfdd8457e693/preshed-3.0.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bbe8b8a2d4f9af14e8a39ecca524b9de6defc91d8abcc95eb28f42da1c23272c", size = 878064, upload-time = "2025-11-17T12:59:39.651Z" }, + { url = "https://files.pythonhosted.org/packages/3e/75/d7fff7f1fa3763619aa85d6ba70493a5d9c6e6ea7958a6e8c9d3e6e88bbe/preshed-3.0.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5d0aaac9c5862f5471fddd0c931dc64d3af2efc5fe3eb48b50765adb571243b9", size = 900540, upload-time = "2025-11-17T12:59:41.384Z" }, + { url = "https://files.pythonhosted.org/packages/e4/12/a2285b78bd097a1e53fb90a1743bc8ce0d35e5b65b6853f3b3c47da398ca/preshed-3.0.12-cp312-cp312-win_amd64.whl", hash = "sha256:0eb8d411afcb1e3b12a0602fb6a0e33140342a732a795251a0ce452aba401dc0", size = 118298, upload-time = "2025-11-17T12:59:42.65Z" }, + { url = "https://files.pythonhosted.org/packages/0b/34/4e8443fe99206a2fcfc63659969a8f8c8ab184836533594a519f3899b1ad/preshed-3.0.12-cp312-cp312-win_arm64.whl", hash = "sha256:dcd3d12903c9f720a39a5c5f1339f7f46e3ab71279fb7a39776768fb840b6077", size = 104746, upload-time = "2025-11-17T12:59:43.934Z" }, + { url = "https://files.pythonhosted.org/packages/1e/36/1d3df6f9f37efc34be4ee3013b3bb698b06f1e372f80959851b54d8efdb2/preshed-3.0.12-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3deb3ab93d50c785eaa7694a8e169eb12d00263a99c91d56511fe943bcbacfb6", size = 128023, upload-time = "2025-11-17T12:59:45.157Z" }, + { url = "https://files.pythonhosted.org/packages/fb/d4/3ca81f42978da1b81aa57b3e9b5193d8093e187787a3b2511d16b30b7c62/preshed-3.0.12-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a604350001238dab63dc14774ee30c257b5d71c7be976dbecd1f1ed37529f60f", size = 122851, upload-time = "2025-11-17T12:59:46.439Z" }, + { url = "https://files.pythonhosted.org/packages/17/73/f388398f8d789f69b510272d144a9186d658423f6d3ecc484c0fe392acec/preshed-3.0.12-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:04fb860a8aab18d2201f06159337eda5568dc5eed218570d960fad79e783c7d0", size = 835926, upload-time = "2025-11-17T12:59:47.882Z" }, + { url = "https://files.pythonhosted.org/packages/35/c6/b7170933451cbc27eaefd57b36f61a5e7e7c8da50ae24f819172e0ca8a4d/preshed-3.0.12-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d0c8fcd44996031c46a0aa6773c7b7aa5ee58c3ee87bc05236dacd5599d35063", size = 827294, upload-time = "2025-11-17T12:59:49.365Z" }, + { url = "https://files.pythonhosted.org/packages/7d/ec/6504730d811c0a375721db2107d31684ec17ee5b7bb3796ecfa41e704d41/preshed-3.0.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b07efc3abd3714ce01cf67db0a2dada6e829ab7def74039d446e49ddb32538c5", size = 838809, upload-time = "2025-11-17T12:59:51.234Z" }, + { url = "https://files.pythonhosted.org/packages/7e/1a/09d13240c1fbadcc0603e2fe029623045a36c88b4b50b02e7fdc89e3b88e/preshed-3.0.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f184ef184b76e0e4707bce2395008779e4dfa638456b13b18469c2c1a42903a6", size = 861448, upload-time = "2025-11-17T12:59:52.702Z" }, + { url = "https://files.pythonhosted.org/packages/0d/35/9523160153037ee8337672249449be416ee92236f32602e7dd643767814f/preshed-3.0.12-cp313-cp313-win_amd64.whl", hash = "sha256:ebb3da2dc62ab09e5dc5a00ec38e7f5cdf8741c175714ab4a80773d8ee31b495", size = 117413, upload-time = "2025-11-17T12:59:54.4Z" }, + { url = "https://files.pythonhosted.org/packages/79/eb/4263e6e896753b8e2ffa93035458165850a5ea81d27e8888afdbfd8fa9c4/preshed-3.0.12-cp313-cp313-win_arm64.whl", hash = "sha256:b36a2cf57a5ca6e78e69b569c92ef3bdbfb00e3a14859e201eec6ab3bdc27085", size = 104041, upload-time = "2025-11-17T12:59:55.596Z" }, + { url = "https://files.pythonhosted.org/packages/77/39/7b33910b7ba3db9ce1515c39eb4657232913fb171fe701f792ef50726e60/preshed-3.0.12-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:0d8b458dfbd6cc5007d045fa5638231328e3d6f214fd24ab999cc10f8b9097e5", size = 129211, upload-time = "2025-11-17T12:59:57.182Z" }, + { url = "https://files.pythonhosted.org/packages/32/67/97dceebe0b2b4dd94333e4ec283d38614f92996de615859a952da082890d/preshed-3.0.12-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:8e9196e2ea704243a69df203e0c9185eb7c5c58c3632ba1c1e2e2e0aa3aae3b4", size = 123311, upload-time = "2025-11-17T12:59:58.449Z" }, + { url = "https://files.pythonhosted.org/packages/4b/6f/f3772f6eaad1eae787f82ffb65a81a4a1993277eacf5a78a29da34608323/preshed-3.0.12-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ffa644e1730012ed435fb9d0c3031ea19a06b11136eff5e9b96b2aa25ec7a5f5", size = 831683, upload-time = "2025-11-17T13:00:00.229Z" }, + { url = "https://files.pythonhosted.org/packages/1a/93/997d39ca61202486dd06c669b4707a5b8e5d0c2c922db9f7744fd6a12096/preshed-3.0.12-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:39e83a16ce53e4a3c41c091fe4fe1c3d28604e63928040da09ba0c5d5a7ca41e", size = 830035, upload-time = "2025-11-17T13:00:02.191Z" }, + { url = "https://files.pythonhosted.org/packages/0a/f2/51bf44e3fdbef08d40a832181842cd9b21b11c3f930989f4ff17e9201e12/preshed-3.0.12-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2ec9bc0baee426303a644c7bf531333d4e7fd06fedf07f62ee09969c208d578d", size = 841728, upload-time = "2025-11-17T13:00:03.643Z" }, + { url = "https://files.pythonhosted.org/packages/d3/b1/2d0e3d23d9f885f7647654d770227eb13e4d892deb9b0ed50b993d63fb18/preshed-3.0.12-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7db058f1b4a3d4d51c4c05b379c6cc9c36fcad00160923cb20ca1c7030581ea4", size = 858860, upload-time = "2025-11-17T13:00:05.185Z" }, + { url = "https://files.pythonhosted.org/packages/e7/57/7c28c7f6f9bfce02796b54f1f6acd2cebb3fa3f14a2dce6fb3c686e3c3a8/preshed-3.0.12-cp314-cp314-win_amd64.whl", hash = "sha256:c87a54a55a2ba98d0c3fd7886295f2825397aff5a7157dcfb89124f6aa2dca41", size = 120325, upload-time = "2025-11-17T13:00:06.428Z" }, + { url = "https://files.pythonhosted.org/packages/33/c3/df235ca679a08e09103983ec17c668f96abe897eadbe18d635972b43d8a9/preshed-3.0.12-cp314-cp314-win_arm64.whl", hash = "sha256:d9c5f10b4b971d71d163c2416b91b7136eae54ef3183b1742bb5993269af1b18", size = 107393, upload-time = "2025-11-17T13:00:07.718Z" }, + { url = "https://files.pythonhosted.org/packages/7e/f1/51a2a72381c8aa3aeb8305d88e720c745048527107e649c01b8d49d6b5bf/preshed-3.0.12-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:2739a9c57efcfa16466fa6e0257d67f0075a9979dc729585fbadaed7383ab449", size = 137703, upload-time = "2025-11-17T13:00:09.001Z" }, + { url = "https://files.pythonhosted.org/packages/3f/ab/f3c3d50647f3af6ce6441c596a4f6fb0216d549432ef51f61c0c1744c9b9/preshed-3.0.12-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:364249656bfbf98b4008fac707f35835580ec56207f7cbecdafef6ebb6a595a6", size = 134889, upload-time = "2025-11-17T13:00:10.29Z" }, + { url = "https://files.pythonhosted.org/packages/54/9a/012dbae28a0b88cd98eae99f87701ffbe3a7d2ea3de345cb8a6a6e1b16cd/preshed-3.0.12-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7f933d509ee762a90f62573aaf189eba94dfee478fca13ea2183b2f8a1bb8f7e", size = 911078, upload-time = "2025-11-17T13:00:11.911Z" }, + { url = "https://files.pythonhosted.org/packages/88/c1/0cd0f8cdb91f63c298320cf946c4b97adfb8e8d3a5d454267410c90fcfaa/preshed-3.0.12-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f73f4e29bf90e58034e6f5fa55e6029f3f2d7c042a7151ed487b49898b0ce887", size = 930506, upload-time = "2025-11-17T13:00:13.375Z" }, + { url = "https://files.pythonhosted.org/packages/20/1a/cab79b3181b2150eeeb0e2541c2bd4e0830e1e068b8836b24ea23610cec3/preshed-3.0.12-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:a61ede0c3d18f1ae128113f785a396351a46f4634beccfdf617b0a86008b154d", size = 900009, upload-time = "2025-11-17T13:00:14.781Z" }, + { url = "https://files.pythonhosted.org/packages/31/9a/5ea9d6d95d5c07ba70166330a43bff7f0a074d0134eb7984eca6551e8c70/preshed-3.0.12-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:eafc08a86f77be78e722d96aa8a3a0aef0e3c7ac2f2ada22186a138e63d4033c", size = 910826, upload-time = "2025-11-17T13:00:16.861Z" }, + { url = "https://files.pythonhosted.org/packages/92/71/39024f9873ff317eac724b2759e94d013703800d970d51de77ccc6afff7e/preshed-3.0.12-cp314-cp314t-win_amd64.whl", hash = "sha256:fadaad54973b8697d5ef008735e150bd729a127b6497fd2cb068842074a6f3a7", size = 141358, upload-time = "2025-11-17T13:00:18.167Z" }, + { url = "https://files.pythonhosted.org/packages/9d/0d/431bb85252119f5d2260417fa7d164619b31eed8f1725b364dc0ade43a8e/preshed-3.0.12-cp314-cp314t-win_arm64.whl", hash = "sha256:c0c0d3b66b4c1e40aa6042721492f7b07fc9679ab6c361bc121aa54a1c3ef63f", size = 114839, upload-time = "2025-11-17T13:00:19.513Z" }, +] + [[package]] name = "psutil" -version = "7.0.0" +version = "7.2.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2a/80/336820c1ad9286a4ded7e845b2eccfcb27851ab8ac6abece774a6ff4d3de/psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456", size = 497003, upload-time = "2025-02-13T21:54:07.946Z" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/c6/d1ddf4abb55e93cebc4f2ed8b5d6dbad109ecb8d63748dd2b20ab5e57ebe/psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372", size = 493740, upload-time = "2026-01-28T18:14:54.428Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/e6/2d26234410f8b8abdbf891c9da62bee396583f713fb9f3325a4760875d22/psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25", size = 238051, upload-time = "2025-02-13T21:54:12.36Z" }, - { url = "https://files.pythonhosted.org/packages/04/8b/30f930733afe425e3cbfc0e1468a30a18942350c1a8816acfade80c005c4/psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da", size = 239535, upload-time = "2025-02-13T21:54:16.07Z" }, - { url = "https://files.pythonhosted.org/packages/2a/ed/d362e84620dd22876b55389248e522338ed1bf134a5edd3b8231d7207f6d/psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91", size = 275004, upload-time = "2025-02-13T21:54:18.662Z" }, - { url = "https://files.pythonhosted.org/packages/bf/b9/b0eb3f3cbcb734d930fdf839431606844a825b23eaf9a6ab371edac8162c/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34", size = 277986, upload-time = "2025-02-13T21:54:21.811Z" }, - { url = "https://files.pythonhosted.org/packages/eb/a2/709e0fe2f093556c17fbafda93ac032257242cabcc7ff3369e2cb76a97aa/psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993", size = 279544, upload-time = "2025-02-13T21:54:24.68Z" }, - { url = "https://files.pythonhosted.org/packages/50/e6/eecf58810b9d12e6427369784efe814a1eec0f492084ce8eb8f4d89d6d61/psutil-7.0.0-cp37-abi3-win32.whl", hash = "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99", size = 241053, upload-time = "2025-02-13T21:54:34.31Z" }, - { url = "https://files.pythonhosted.org/packages/50/1b/6921afe68c74868b4c9fa424dad3be35b095e16687989ebbb50ce4fceb7c/psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553", size = 244885, upload-time = "2025-02-13T21:54:37.486Z" }, + { url = "https://files.pythonhosted.org/packages/51/08/510cbdb69c25a96f4ae523f733cdc963ae654904e8db864c07585ef99875/psutil-7.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2edccc433cbfa046b980b0df0171cd25bcaeb3a68fe9022db0979e7aa74a826b", size = 130595, upload-time = "2026-01-28T18:14:57.293Z" }, + { url = "https://files.pythonhosted.org/packages/d6/f5/97baea3fe7a5a9af7436301f85490905379b1c6f2dd51fe3ecf24b4c5fbf/psutil-7.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78c8603dcd9a04c7364f1a3e670cea95d51ee865e4efb3556a3a63adef958ea", size = 131082, upload-time = "2026-01-28T18:14:59.732Z" }, + { url = "https://files.pythonhosted.org/packages/37/d6/246513fbf9fa174af531f28412297dd05241d97a75911ac8febefa1a53c6/psutil-7.2.2-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a571f2330c966c62aeda00dd24620425d4b0cc86881c89861fbc04549e5dc63", size = 181476, upload-time = "2026-01-28T18:15:01.884Z" }, + { url = "https://files.pythonhosted.org/packages/b8/b5/9182c9af3836cca61696dabe4fd1304e17bc56cb62f17439e1154f225dd3/psutil-7.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:917e891983ca3c1887b4ef36447b1e0873e70c933afc831c6b6da078ba474312", size = 184062, upload-time = "2026-01-28T18:15:04.436Z" }, + { url = "https://files.pythonhosted.org/packages/16/ba/0756dca669f5a9300d0cbcbfae9a4c30e446dfc7440ffe43ded5724bfd93/psutil-7.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:ab486563df44c17f5173621c7b198955bd6b613fb87c71c161f827d3fb149a9b", size = 139893, upload-time = "2026-01-28T18:15:06.378Z" }, + { url = "https://files.pythonhosted.org/packages/1c/61/8fa0e26f33623b49949346de05ec1ddaad02ed8ba64af45f40a147dbfa97/psutil-7.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:ae0aefdd8796a7737eccea863f80f81e468a1e4cf14d926bd9b6f5f2d5f90ca9", size = 135589, upload-time = "2026-01-28T18:15:08.03Z" }, + { url = "https://files.pythonhosted.org/packages/81/69/ef179ab5ca24f32acc1dac0c247fd6a13b501fd5534dbae0e05a1c48b66d/psutil-7.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00", size = 130664, upload-time = "2026-01-28T18:15:09.469Z" }, + { url = "https://files.pythonhosted.org/packages/7b/64/665248b557a236d3fa9efc378d60d95ef56dd0a490c2cd37dafc7660d4a9/psutil-7.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9", size = 131087, upload-time = "2026-01-28T18:15:11.724Z" }, + { url = "https://files.pythonhosted.org/packages/d5/2e/e6782744700d6759ebce3043dcfa661fb61e2fb752b91cdeae9af12c2178/psutil-7.2.2-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a", size = 182383, upload-time = "2026-01-28T18:15:13.445Z" }, + { url = "https://files.pythonhosted.org/packages/57/49/0a41cefd10cb7505cdc04dab3eacf24c0c2cb158a998b8c7b1d27ee2c1f5/psutil-7.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf", size = 185210, upload-time = "2026-01-28T18:15:16.002Z" }, + { url = "https://files.pythonhosted.org/packages/dd/2c/ff9bfb544f283ba5f83ba725a3c5fec6d6b10b8f27ac1dc641c473dc390d/psutil-7.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1", size = 141228, upload-time = "2026-01-28T18:15:18.385Z" }, + { url = "https://files.pythonhosted.org/packages/f2/fc/f8d9c31db14fcec13748d373e668bc3bed94d9077dbc17fb0eebc073233c/psutil-7.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841", size = 136284, upload-time = "2026-01-28T18:15:19.912Z" }, + { url = "https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486", size = 129090, upload-time = "2026-01-28T18:15:22.168Z" }, + { url = "https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979", size = 129859, upload-time = "2026-01-28T18:15:23.795Z" }, + { url = "https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9", size = 155560, upload-time = "2026-01-28T18:15:25.976Z" }, + { url = "https://files.pythonhosted.org/packages/63/65/37648c0c158dc222aba51c089eb3bdfa238e621674dc42d48706e639204f/psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e", size = 156997, upload-time = "2026-01-28T18:15:27.794Z" }, + { url = "https://files.pythonhosted.org/packages/8e/13/125093eadae863ce03c6ffdbae9929430d116a246ef69866dad94da3bfbc/psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8", size = 148972, upload-time = "2026-01-28T18:15:29.342Z" }, + { url = "https://files.pythonhosted.org/packages/04/78/0acd37ca84ce3ddffaa92ef0f571e073faa6d8ff1f0559ab1272188ea2be/psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc", size = 148266, upload-time = "2026-01-28T18:15:31.597Z" }, + { url = "https://files.pythonhosted.org/packages/b4/90/e2159492b5426be0c1fef7acba807a03511f97c5f86b3caeda6ad92351a7/psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988", size = 137737, upload-time = "2026-01-28T18:15:33.849Z" }, + { url = "https://files.pythonhosted.org/packages/8c/c7/7bb2e321574b10df20cbde462a94e2b71d05f9bbda251ef27d104668306a/psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee", size = 134617, upload-time = "2026-01-28T18:15:36.514Z" }, ] [[package]] @@ -918,34 +1616,195 @@ wheels = [ [[package]] name = "pycodestyle" -version = "2.13.0" +version = "2.14.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/11/e0/abfd2a0d2efe47670df87f3e3a0e2edda42f055053c85361f19c0e2c1ca8/pycodestyle-2.14.0.tar.gz", hash = "sha256:c4b5b517d278089ff9d0abdec919cd97262a3367449ea1c8b49b91529167b783", size = 39472, upload-time = "2025-06-20T18:49:48.75Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/27/a58ddaf8c588a3ef080db9d0b7e0b97215cee3a45df74f3a94dbbf5c893a/pycodestyle-2.14.0-py2.py3-none-any.whl", hash = "sha256:dd6bf7cb4ee77f8e016f9c8e74a35ddd9f67e1d5fd4184d86c3b98e07099f42d", size = 31594, upload-time = "2025-06-20T18:49:47.491Z" }, +] + +[[package]] +name = "pydantic" +version = "2.12.5" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/04/6e/1f4a62078e4d95d82367f24e685aef3a672abfd27d1a868068fed4ed2254/pycodestyle-2.13.0.tar.gz", hash = "sha256:c8415bf09abe81d9c7f872502a6eee881fbe85d8763dd5b9924bb0a01d67efae", size = 39312, upload-time = "2025-03-29T17:33:30.669Z" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49", size = 821591, upload-time = "2025-11-26T15:11:46.471Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/07/be/b00116df1bfb3e0bb5b45e29d604799f7b91dd861637e4d448b4e09e6a3e/pycodestyle-2.13.0-py2.py3-none-any.whl", hash = "sha256:35863c5974a271c7a726ed228a14a4f6daf49df369d8c50cd9a6f58a5e143ba9", size = 31424, upload-time = "2025-03-29T17:33:29.405Z" }, + { url = "https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl", hash = "sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d", size = 463580, upload-time = "2025-11-26T15:11:44.605Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.41.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952, upload-time = "2025-11-04T13:43:49.098Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/90/32c9941e728d564b411d574d8ee0cf09b12ec978cb22b294995bae5549a5/pydantic_core-2.41.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:77b63866ca88d804225eaa4af3e664c5faf3568cea95360d21f4725ab6e07146", size = 2107298, upload-time = "2025-11-04T13:39:04.116Z" }, + { url = "https://files.pythonhosted.org/packages/fb/a8/61c96a77fe28993d9a6fb0f4127e05430a267b235a124545d79fea46dd65/pydantic_core-2.41.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dfa8a0c812ac681395907e71e1274819dec685fec28273a28905df579ef137e2", size = 1901475, upload-time = "2025-11-04T13:39:06.055Z" }, + { url = "https://files.pythonhosted.org/packages/5d/b6/338abf60225acc18cdc08b4faef592d0310923d19a87fba1faf05af5346e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5921a4d3ca3aee735d9fd163808f5e8dd6c6972101e4adbda9a4667908849b97", size = 1918815, upload-time = "2025-11-04T13:39:10.41Z" }, + { url = "https://files.pythonhosted.org/packages/d1/1c/2ed0433e682983d8e8cba9c8d8ef274d4791ec6a6f24c58935b90e780e0a/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25c479382d26a2a41b7ebea1043564a937db462816ea07afa8a44c0866d52f9", size = 2065567, upload-time = "2025-11-04T13:39:12.244Z" }, + { url = "https://files.pythonhosted.org/packages/b3/24/cf84974ee7d6eae06b9e63289b7b8f6549d416b5c199ca2d7ce13bbcf619/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f547144f2966e1e16ae626d8ce72b4cfa0caedc7fa28052001c94fb2fcaa1c52", size = 2230442, upload-time = "2025-11-04T13:39:13.962Z" }, + { url = "https://files.pythonhosted.org/packages/fd/21/4e287865504b3edc0136c89c9c09431be326168b1eb7841911cbc877a995/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f52298fbd394f9ed112d56f3d11aabd0d5bd27beb3084cc3d8ad069483b8941", size = 2350956, upload-time = "2025-11-04T13:39:15.889Z" }, + { url = "https://files.pythonhosted.org/packages/a8/76/7727ef2ffa4b62fcab916686a68a0426b9b790139720e1934e8ba797e238/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:100baa204bb412b74fe285fb0f3a385256dad1d1879f0a5cb1499ed2e83d132a", size = 2068253, upload-time = "2025-11-04T13:39:17.403Z" }, + { url = "https://files.pythonhosted.org/packages/d5/8c/a4abfc79604bcb4c748e18975c44f94f756f08fb04218d5cb87eb0d3a63e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:05a2c8852530ad2812cb7914dc61a1125dc4e06252ee98e5638a12da6cc6fb6c", size = 2177050, upload-time = "2025-11-04T13:39:19.351Z" }, + { url = "https://files.pythonhosted.org/packages/67/b1/de2e9a9a79b480f9cb0b6e8b6ba4c50b18d4e89852426364c66aa82bb7b3/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:29452c56df2ed968d18d7e21f4ab0ac55e71dc59524872f6fc57dcf4a3249ed2", size = 2147178, upload-time = "2025-11-04T13:39:21Z" }, + { url = "https://files.pythonhosted.org/packages/16/c1/dfb33f837a47b20417500efaa0378adc6635b3c79e8369ff7a03c494b4ac/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:d5160812ea7a8a2ffbe233d8da666880cad0cbaf5d4de74ae15c313213d62556", size = 2341833, upload-time = "2025-11-04T13:39:22.606Z" }, + { url = "https://files.pythonhosted.org/packages/47/36/00f398642a0f4b815a9a558c4f1dca1b4020a7d49562807d7bc9ff279a6c/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:df3959765b553b9440adfd3c795617c352154e497a4eaf3752555cfb5da8fc49", size = 2321156, upload-time = "2025-11-04T13:39:25.843Z" }, + { url = "https://files.pythonhosted.org/packages/7e/70/cad3acd89fde2010807354d978725ae111ddf6d0ea46d1ea1775b5c1bd0c/pydantic_core-2.41.5-cp310-cp310-win32.whl", hash = "sha256:1f8d33a7f4d5a7889e60dc39856d76d09333d8a6ed0f5f1190635cbec70ec4ba", size = 1989378, upload-time = "2025-11-04T13:39:27.92Z" }, + { url = "https://files.pythonhosted.org/packages/76/92/d338652464c6c367e5608e4488201702cd1cbb0f33f7b6a85a60fe5f3720/pydantic_core-2.41.5-cp310-cp310-win_amd64.whl", hash = "sha256:62de39db01b8d593e45871af2af9e497295db8d73b085f6bfd0b18c83c70a8f9", size = 2013622, upload-time = "2025-11-04T13:39:29.848Z" }, + { url = "https://files.pythonhosted.org/packages/e8/72/74a989dd9f2084b3d9530b0915fdda64ac48831c30dbf7c72a41a5232db8/pydantic_core-2.41.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a3a52f6156e73e7ccb0f8cced536adccb7042be67cb45f9562e12b319c119da6", size = 2105873, upload-time = "2025-11-04T13:39:31.373Z" }, + { url = "https://files.pythonhosted.org/packages/12/44/37e403fd9455708b3b942949e1d7febc02167662bf1a7da5b78ee1ea2842/pydantic_core-2.41.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7f3bf998340c6d4b0c9a2f02d6a400e51f123b59565d74dc60d252ce888c260b", size = 1899826, upload-time = "2025-11-04T13:39:32.897Z" }, + { url = "https://files.pythonhosted.org/packages/33/7f/1d5cab3ccf44c1935a359d51a8a2a9e1a654b744b5e7f80d41b88d501eec/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:378bec5c66998815d224c9ca994f1e14c0c21cb95d2f52b6021cc0b2a58f2a5a", size = 1917869, upload-time = "2025-11-04T13:39:34.469Z" }, + { url = "https://files.pythonhosted.org/packages/6e/6a/30d94a9674a7fe4f4744052ed6c5e083424510be1e93da5bc47569d11810/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7b576130c69225432866fe2f4a469a85a54ade141d96fd396dffcf607b558f8", size = 2063890, upload-time = "2025-11-04T13:39:36.053Z" }, + { url = "https://files.pythonhosted.org/packages/50/be/76e5d46203fcb2750e542f32e6c371ffa9b8ad17364cf94bb0818dbfb50c/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cb58b9c66f7e4179a2d5e0f849c48eff5c1fca560994d6eb6543abf955a149e", size = 2229740, upload-time = "2025-11-04T13:39:37.753Z" }, + { url = "https://files.pythonhosted.org/packages/d3/ee/fed784df0144793489f87db310a6bbf8118d7b630ed07aa180d6067e653a/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:88942d3a3dff3afc8288c21e565e476fc278902ae4d6d134f1eeda118cc830b1", size = 2350021, upload-time = "2025-11-04T13:39:40.94Z" }, + { url = "https://files.pythonhosted.org/packages/c8/be/8fed28dd0a180dca19e72c233cbf58efa36df055e5b9d90d64fd1740b828/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f31d95a179f8d64d90f6831d71fa93290893a33148d890ba15de25642c5d075b", size = 2066378, upload-time = "2025-11-04T13:39:42.523Z" }, + { url = "https://files.pythonhosted.org/packages/b0/3b/698cf8ae1d536a010e05121b4958b1257f0b5522085e335360e53a6b1c8b/pydantic_core-2.41.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1df3d34aced70add6f867a8cf413e299177e0c22660cc767218373d0779487b", size = 2175761, upload-time = "2025-11-04T13:39:44.553Z" }, + { url = "https://files.pythonhosted.org/packages/b8/ba/15d537423939553116dea94ce02f9c31be0fa9d0b806d427e0308ec17145/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4009935984bd36bd2c774e13f9a09563ce8de4abaa7226f5108262fa3e637284", size = 2146303, upload-time = "2025-11-04T13:39:46.238Z" }, + { url = "https://files.pythonhosted.org/packages/58/7f/0de669bf37d206723795f9c90c82966726a2ab06c336deba4735b55af431/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:34a64bc3441dc1213096a20fe27e8e128bd3ff89921706e83c0b1ac971276594", size = 2340355, upload-time = "2025-11-04T13:39:48.002Z" }, + { url = "https://files.pythonhosted.org/packages/e5/de/e7482c435b83d7e3c3ee5ee4451f6e8973cff0eb6007d2872ce6383f6398/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c9e19dd6e28fdcaa5a1de679aec4141f691023916427ef9bae8584f9c2fb3b0e", size = 2319875, upload-time = "2025-11-04T13:39:49.705Z" }, + { url = "https://files.pythonhosted.org/packages/fe/e6/8c9e81bb6dd7560e33b9053351c29f30c8194b72f2d6932888581f503482/pydantic_core-2.41.5-cp311-cp311-win32.whl", hash = "sha256:2c010c6ded393148374c0f6f0bf89d206bf3217f201faa0635dcd56bd1520f6b", size = 1987549, upload-time = "2025-11-04T13:39:51.842Z" }, + { url = "https://files.pythonhosted.org/packages/11/66/f14d1d978ea94d1bc21fc98fcf570f9542fe55bfcc40269d4e1a21c19bf7/pydantic_core-2.41.5-cp311-cp311-win_amd64.whl", hash = "sha256:76ee27c6e9c7f16f47db7a94157112a2f3a00e958bc626e2f4ee8bec5c328fbe", size = 2011305, upload-time = "2025-11-04T13:39:53.485Z" }, + { url = "https://files.pythonhosted.org/packages/56/d8/0e271434e8efd03186c5386671328154ee349ff0354d83c74f5caaf096ed/pydantic_core-2.41.5-cp311-cp311-win_arm64.whl", hash = "sha256:4bc36bbc0b7584de96561184ad7f012478987882ebf9f9c389b23f432ea3d90f", size = 1972902, upload-time = "2025-11-04T13:39:56.488Z" }, + { url = "https://files.pythonhosted.org/packages/5f/5d/5f6c63eebb5afee93bcaae4ce9a898f3373ca23df3ccaef086d0233a35a7/pydantic_core-2.41.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7", size = 2110990, upload-time = "2025-11-04T13:39:58.079Z" }, + { url = "https://files.pythonhosted.org/packages/aa/32/9c2e8ccb57c01111e0fd091f236c7b371c1bccea0fa85247ac55b1e2b6b6/pydantic_core-2.41.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0", size = 1896003, upload-time = "2025-11-04T13:39:59.956Z" }, + { url = "https://files.pythonhosted.org/packages/68/b8/a01b53cb0e59139fbc9e4fda3e9724ede8de279097179be4ff31f1abb65a/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69", size = 1919200, upload-time = "2025-11-04T13:40:02.241Z" }, + { url = "https://files.pythonhosted.org/packages/38/de/8c36b5198a29bdaade07b5985e80a233a5ac27137846f3bc2d3b40a47360/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75", size = 2052578, upload-time = "2025-11-04T13:40:04.401Z" }, + { url = "https://files.pythonhosted.org/packages/00/b5/0e8e4b5b081eac6cb3dbb7e60a65907549a1ce035a724368c330112adfdd/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05", size = 2208504, upload-time = "2025-11-04T13:40:06.072Z" }, + { url = "https://files.pythonhosted.org/packages/77/56/87a61aad59c7c5b9dc8caad5a41a5545cba3810c3e828708b3d7404f6cef/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc", size = 2335816, upload-time = "2025-11-04T13:40:07.835Z" }, + { url = "https://files.pythonhosted.org/packages/0d/76/941cc9f73529988688a665a5c0ecff1112b3d95ab48f81db5f7606f522d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c", size = 2075366, upload-time = "2025-11-04T13:40:09.804Z" }, + { url = "https://files.pythonhosted.org/packages/d3/43/ebef01f69baa07a482844faaa0a591bad1ef129253ffd0cdaa9d8a7f72d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5", size = 2171698, upload-time = "2025-11-04T13:40:12.004Z" }, + { url = "https://files.pythonhosted.org/packages/b1/87/41f3202e4193e3bacfc2c065fab7706ebe81af46a83d3e27605029c1f5a6/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c", size = 2132603, upload-time = "2025-11-04T13:40:13.868Z" }, + { url = "https://files.pythonhosted.org/packages/49/7d/4c00df99cb12070b6bccdef4a195255e6020a550d572768d92cc54dba91a/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294", size = 2329591, upload-time = "2025-11-04T13:40:15.672Z" }, + { url = "https://files.pythonhosted.org/packages/cc/6a/ebf4b1d65d458f3cda6a7335d141305dfa19bdc61140a884d165a8a1bbc7/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1", size = 2319068, upload-time = "2025-11-04T13:40:17.532Z" }, + { url = "https://files.pythonhosted.org/packages/49/3b/774f2b5cd4192d5ab75870ce4381fd89cf218af999515baf07e7206753f0/pydantic_core-2.41.5-cp312-cp312-win32.whl", hash = "sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d", size = 1985908, upload-time = "2025-11-04T13:40:19.309Z" }, + { url = "https://files.pythonhosted.org/packages/86/45/00173a033c801cacf67c190fef088789394feaf88a98a7035b0e40d53dc9/pydantic_core-2.41.5-cp312-cp312-win_amd64.whl", hash = "sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815", size = 2020145, upload-time = "2025-11-04T13:40:21.548Z" }, + { url = "https://files.pythonhosted.org/packages/f9/22/91fbc821fa6d261b376a3f73809f907cec5ca6025642c463d3488aad22fb/pydantic_core-2.41.5-cp312-cp312-win_arm64.whl", hash = "sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3", size = 1976179, upload-time = "2025-11-04T13:40:23.393Z" }, + { url = "https://files.pythonhosted.org/packages/87/06/8806241ff1f70d9939f9af039c6c35f2360cf16e93c2ca76f184e76b1564/pydantic_core-2.41.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9", size = 2120403, upload-time = "2025-11-04T13:40:25.248Z" }, + { url = "https://files.pythonhosted.org/packages/94/02/abfa0e0bda67faa65fef1c84971c7e45928e108fe24333c81f3bfe35d5f5/pydantic_core-2.41.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34", size = 1896206, upload-time = "2025-11-04T13:40:27.099Z" }, + { url = "https://files.pythonhosted.org/packages/15/df/a4c740c0943e93e6500f9eb23f4ca7ec9bf71b19e608ae5b579678c8d02f/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0", size = 1919307, upload-time = "2025-11-04T13:40:29.806Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e3/6324802931ae1d123528988e0e86587c2072ac2e5394b4bc2bc34b61ff6e/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33", size = 2063258, upload-time = "2025-11-04T13:40:33.544Z" }, + { url = "https://files.pythonhosted.org/packages/c9/d4/2230d7151d4957dd79c3044ea26346c148c98fbf0ee6ebd41056f2d62ab5/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e", size = 2214917, upload-time = "2025-11-04T13:40:35.479Z" }, + { url = "https://files.pythonhosted.org/packages/e6/9f/eaac5df17a3672fef0081b6c1bb0b82b33ee89aa5cec0d7b05f52fd4a1fa/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2", size = 2332186, upload-time = "2025-11-04T13:40:37.436Z" }, + { url = "https://files.pythonhosted.org/packages/cf/4e/35a80cae583a37cf15604b44240e45c05e04e86f9cfd766623149297e971/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586", size = 2073164, upload-time = "2025-11-04T13:40:40.289Z" }, + { url = "https://files.pythonhosted.org/packages/bf/e3/f6e262673c6140dd3305d144d032f7bd5f7497d3871c1428521f19f9efa2/pydantic_core-2.41.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d", size = 2179146, upload-time = "2025-11-04T13:40:42.809Z" }, + { url = "https://files.pythonhosted.org/packages/75/c7/20bd7fc05f0c6ea2056a4565c6f36f8968c0924f19b7d97bbfea55780e73/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740", size = 2137788, upload-time = "2025-11-04T13:40:44.752Z" }, + { url = "https://files.pythonhosted.org/packages/3a/8d/34318ef985c45196e004bc46c6eab2eda437e744c124ef0dbe1ff2c9d06b/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e", size = 2340133, upload-time = "2025-11-04T13:40:46.66Z" }, + { url = "https://files.pythonhosted.org/packages/9c/59/013626bf8c78a5a5d9350d12e7697d3d4de951a75565496abd40ccd46bee/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858", size = 2324852, upload-time = "2025-11-04T13:40:48.575Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d9/c248c103856f807ef70c18a4f986693a46a8ffe1602e5d361485da502d20/pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36", size = 1994679, upload-time = "2025-11-04T13:40:50.619Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11", size = 2019766, upload-time = "2025-11-04T13:40:52.631Z" }, + { url = "https://files.pythonhosted.org/packages/73/7d/f2f9db34af103bea3e09735bb40b021788a5e834c81eedb541991badf8f5/pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd", size = 1981005, upload-time = "2025-11-04T13:40:54.734Z" }, + { url = "https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a", size = 2119622, upload-time = "2025-11-04T13:40:56.68Z" }, + { url = "https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14", size = 1891725, upload-time = "2025-11-04T13:40:58.807Z" }, + { url = "https://files.pythonhosted.org/packages/23/04/e89c29e267b8060b40dca97bfc64a19b2a3cf99018167ea1677d96368273/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1", size = 1915040, upload-time = "2025-11-04T13:41:00.853Z" }, + { url = "https://files.pythonhosted.org/packages/84/a3/15a82ac7bd97992a82257f777b3583d3e84bdb06ba6858f745daa2ec8a85/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66", size = 2063691, upload-time = "2025-11-04T13:41:03.504Z" }, + { url = "https://files.pythonhosted.org/packages/74/9b/0046701313c6ef08c0c1cf0e028c67c770a4e1275ca73131563c5f2a310a/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869", size = 2213897, upload-time = "2025-11-04T13:41:05.804Z" }, + { url = "https://files.pythonhosted.org/packages/8a/cd/6bac76ecd1b27e75a95ca3a9a559c643b3afcd2dd62086d4b7a32a18b169/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2", size = 2333302, upload-time = "2025-11-04T13:41:07.809Z" }, + { url = "https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375", size = 2064877, upload-time = "2025-11-04T13:41:09.827Z" }, + { url = "https://files.pythonhosted.org/packages/18/66/e9db17a9a763d72f03de903883c057b2592c09509ccfe468187f2a2eef29/pydantic_core-2.41.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553", size = 2180680, upload-time = "2025-11-04T13:41:12.379Z" }, + { url = "https://files.pythonhosted.org/packages/d3/9e/3ce66cebb929f3ced22be85d4c2399b8e85b622db77dad36b73c5387f8f8/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90", size = 2138960, upload-time = "2025-11-04T13:41:14.627Z" }, + { url = "https://files.pythonhosted.org/packages/a6/62/205a998f4327d2079326b01abee48e502ea739d174f0a89295c481a2272e/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07", size = 2339102, upload-time = "2025-11-04T13:41:16.868Z" }, + { url = "https://files.pythonhosted.org/packages/3c/0d/f05e79471e889d74d3d88f5bd20d0ed189ad94c2423d81ff8d0000aab4ff/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb", size = 2326039, upload-time = "2025-11-04T13:41:18.934Z" }, + { url = "https://files.pythonhosted.org/packages/ec/e1/e08a6208bb100da7e0c4b288eed624a703f4d129bde2da475721a80cab32/pydantic_core-2.41.5-cp314-cp314-win32.whl", hash = "sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23", size = 1995126, upload-time = "2025-11-04T13:41:21.418Z" }, + { url = "https://files.pythonhosted.org/packages/48/5d/56ba7b24e9557f99c9237e29f5c09913c81eeb2f3217e40e922353668092/pydantic_core-2.41.5-cp314-cp314-win_amd64.whl", hash = "sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf", size = 2015489, upload-time = "2025-11-04T13:41:24.076Z" }, + { url = "https://files.pythonhosted.org/packages/4e/bb/f7a190991ec9e3e0ba22e4993d8755bbc4a32925c0b5b42775c03e8148f9/pydantic_core-2.41.5-cp314-cp314-win_arm64.whl", hash = "sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0", size = 1977288, upload-time = "2025-11-04T13:41:26.33Z" }, + { url = "https://files.pythonhosted.org/packages/92/ed/77542d0c51538e32e15afe7899d79efce4b81eee631d99850edc2f5e9349/pydantic_core-2.41.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a", size = 2120255, upload-time = "2025-11-04T13:41:28.569Z" }, + { url = "https://files.pythonhosted.org/packages/bb/3d/6913dde84d5be21e284439676168b28d8bbba5600d838b9dca99de0fad71/pydantic_core-2.41.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3", size = 1863760, upload-time = "2025-11-04T13:41:31.055Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f0/e5e6b99d4191da102f2b0eb9687aaa7f5bea5d9964071a84effc3e40f997/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c", size = 1878092, upload-time = "2025-11-04T13:41:33.21Z" }, + { url = "https://files.pythonhosted.org/packages/71/48/36fb760642d568925953bcc8116455513d6e34c4beaa37544118c36aba6d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612", size = 2053385, upload-time = "2025-11-04T13:41:35.508Z" }, + { url = "https://files.pythonhosted.org/packages/20/25/92dc684dd8eb75a234bc1c764b4210cf2646479d54b47bf46061657292a8/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d", size = 2218832, upload-time = "2025-11-04T13:41:37.732Z" }, + { url = "https://files.pythonhosted.org/packages/e2/09/f53e0b05023d3e30357d82eb35835d0f6340ca344720a4599cd663dca599/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9", size = 2327585, upload-time = "2025-11-04T13:41:40Z" }, + { url = "https://files.pythonhosted.org/packages/aa/4e/2ae1aa85d6af35a39b236b1b1641de73f5a6ac4d5a7509f77b814885760c/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660", size = 2041078, upload-time = "2025-11-04T13:41:42.323Z" }, + { url = "https://files.pythonhosted.org/packages/cd/13/2e215f17f0ef326fc72afe94776edb77525142c693767fc347ed6288728d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9", size = 2173914, upload-time = "2025-11-04T13:41:45.221Z" }, + { url = "https://files.pythonhosted.org/packages/02/7a/f999a6dcbcd0e5660bc348a3991c8915ce6599f4f2c6ac22f01d7a10816c/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3", size = 2129560, upload-time = "2025-11-04T13:41:47.474Z" }, + { url = "https://files.pythonhosted.org/packages/3a/b1/6c990ac65e3b4c079a4fb9f5b05f5b013afa0f4ed6780a3dd236d2cbdc64/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf", size = 2329244, upload-time = "2025-11-04T13:41:49.992Z" }, + { url = "https://files.pythonhosted.org/packages/d9/02/3c562f3a51afd4d88fff8dffb1771b30cfdfd79befd9883ee094f5b6c0d8/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470", size = 2331955, upload-time = "2025-11-04T13:41:54.079Z" }, + { url = "https://files.pythonhosted.org/packages/5c/96/5fb7d8c3c17bc8c62fdb031c47d77a1af698f1d7a406b0f79aaa1338f9ad/pydantic_core-2.41.5-cp314-cp314t-win32.whl", hash = "sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa", size = 1988906, upload-time = "2025-11-04T13:41:56.606Z" }, + { url = "https://files.pythonhosted.org/packages/22/ed/182129d83032702912c2e2d8bbe33c036f342cc735737064668585dac28f/pydantic_core-2.41.5-cp314-cp314t-win_amd64.whl", hash = "sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c", size = 1981607, upload-time = "2025-11-04T13:41:58.889Z" }, + { url = "https://files.pythonhosted.org/packages/9f/ed/068e41660b832bb0b1aa5b58011dea2a3fe0ba7861ff38c4d4904c1c1a99/pydantic_core-2.41.5-cp314-cp314t-win_arm64.whl", hash = "sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008", size = 1974769, upload-time = "2025-11-04T13:42:01.186Z" }, + { url = "https://files.pythonhosted.org/packages/11/72/90fda5ee3b97e51c494938a4a44c3a35a9c96c19bba12372fb9c634d6f57/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034", size = 2115441, upload-time = "2025-11-04T13:42:39.557Z" }, + { url = "https://files.pythonhosted.org/packages/1f/53/8942f884fa33f50794f119012dc6a1a02ac43a56407adaac20463df8e98f/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c", size = 1930291, upload-time = "2025-11-04T13:42:42.169Z" }, + { url = "https://files.pythonhosted.org/packages/79/c8/ecb9ed9cd942bce09fc888ee960b52654fbdbede4ba6c2d6e0d3b1d8b49c/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2", size = 1948632, upload-time = "2025-11-04T13:42:44.564Z" }, + { url = "https://files.pythonhosted.org/packages/2e/1b/687711069de7efa6af934e74f601e2a4307365e8fdc404703afc453eab26/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad", size = 2138905, upload-time = "2025-11-04T13:42:47.156Z" }, + { url = "https://files.pythonhosted.org/packages/09/32/59b0c7e63e277fa7911c2fc70ccfb45ce4b98991e7ef37110663437005af/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd", size = 2110495, upload-time = "2025-11-04T13:42:49.689Z" }, + { url = "https://files.pythonhosted.org/packages/aa/81/05e400037eaf55ad400bcd318c05bb345b57e708887f07ddb2d20e3f0e98/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc", size = 1915388, upload-time = "2025-11-04T13:42:52.215Z" }, + { url = "https://files.pythonhosted.org/packages/6e/0d/e3549b2399f71d56476b77dbf3cf8937cec5cd70536bdc0e374a421d0599/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56", size = 1942879, upload-time = "2025-11-04T13:42:56.483Z" }, + { url = "https://files.pythonhosted.org/packages/f7/07/34573da085946b6a313d7c42f82f16e8920bfd730665de2d11c0c37a74b5/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b", size = 2139017, upload-time = "2025-11-04T13:42:59.471Z" }, + { url = "https://files.pythonhosted.org/packages/e6/b0/1a2aa41e3b5a4ba11420aba2d091b2d17959c8d1519ece3627c371951e73/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b5819cd790dbf0c5eb9f82c73c16b39a65dd6dd4d1439dcdea7816ec9adddab8", size = 2103351, upload-time = "2025-11-04T13:43:02.058Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ee/31b1f0020baaf6d091c87900ae05c6aeae101fa4e188e1613c80e4f1ea31/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5a4e67afbc95fa5c34cf27d9089bca7fcab4e51e57278d710320a70b956d1b9a", size = 1925363, upload-time = "2025-11-04T13:43:05.159Z" }, + { url = "https://files.pythonhosted.org/packages/e1/89/ab8e86208467e467a80deaca4e434adac37b10a9d134cd2f99b28a01e483/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ece5c59f0ce7d001e017643d8d24da587ea1f74f6993467d85ae8a5ef9d4f42b", size = 2135615, upload-time = "2025-11-04T13:43:08.116Z" }, + { url = "https://files.pythonhosted.org/packages/99/0a/99a53d06dd0348b2008f2f30884b34719c323f16c3be4e6cc1203b74a91d/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:16f80f7abe3351f8ea6858914ddc8c77e02578544a0ebc15b4c2e1a0e813b0b2", size = 2175369, upload-time = "2025-11-04T13:43:12.49Z" }, + { url = "https://files.pythonhosted.org/packages/6d/94/30ca3b73c6d485b9bb0bc66e611cff4a7138ff9736b7e66bcf0852151636/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:33cb885e759a705b426baada1fe68cbb0a2e68e34c5d0d0289a364cf01709093", size = 2144218, upload-time = "2025-11-04T13:43:15.431Z" }, + { url = "https://files.pythonhosted.org/packages/87/57/31b4f8e12680b739a91f472b5671294236b82586889ef764b5fbc6669238/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:c8d8b4eb992936023be7dee581270af5c6e0697a8559895f527f5b7105ecd36a", size = 2329951, upload-time = "2025-11-04T13:43:18.062Z" }, + { url = "https://files.pythonhosted.org/packages/7d/73/3c2c8edef77b8f7310e6fb012dbc4b8551386ed575b9eb6fb2506e28a7eb/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:242a206cd0318f95cd21bdacff3fcc3aab23e79bba5cac3db5a841c9ef9c6963", size = 2318428, upload-time = "2025-11-04T13:43:20.679Z" }, + { url = "https://files.pythonhosted.org/packages/2f/02/8559b1f26ee0d502c74f9cca5c0d2fd97e967e083e006bbbb4e97f3a043a/pydantic_core-2.41.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d3a978c4f57a597908b7e697229d996d77a6d3c94901e9edee593adada95ce1a", size = 2147009, upload-time = "2025-11-04T13:43:23.286Z" }, + { url = "https://files.pythonhosted.org/packages/5f/9b/1b3f0e9f9305839d7e84912f9e8bfbd191ed1b1ef48083609f0dabde978c/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b2379fa7ed44ddecb5bfe4e48577d752db9fc10be00a6b7446e9663ba143de26", size = 2101980, upload-time = "2025-11-04T13:43:25.97Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ed/d71fefcb4263df0da6a85b5d8a7508360f2f2e9b3bf5814be9c8bccdccc1/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:266fb4cbf5e3cbd0b53669a6d1b039c45e3ce651fd5442eff4d07c2cc8d66808", size = 1923865, upload-time = "2025-11-04T13:43:28.763Z" }, + { url = "https://files.pythonhosted.org/packages/ce/3a/626b38db460d675f873e4444b4bb030453bbe7b4ba55df821d026a0493c4/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58133647260ea01e4d0500089a8c4f07bd7aa6ce109682b1426394988d8aaacc", size = 2134256, upload-time = "2025-11-04T13:43:31.71Z" }, + { url = "https://files.pythonhosted.org/packages/83/d9/8412d7f06f616bbc053d30cb4e5f76786af3221462ad5eee1f202021eb4e/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:287dad91cfb551c363dc62899a80e9e14da1f0e2b6ebde82c806612ca2a13ef1", size = 2174762, upload-time = "2025-11-04T13:43:34.744Z" }, + { url = "https://files.pythonhosted.org/packages/55/4c/162d906b8e3ba3a99354e20faa1b49a85206c47de97a639510a0e673f5da/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:03b77d184b9eb40240ae9fd676ca364ce1085f203e1b1256f8ab9984dca80a84", size = 2143141, upload-time = "2025-11-04T13:43:37.701Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f2/f11dd73284122713f5f89fc940f370d035fa8e1e078d446b3313955157fe/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:a668ce24de96165bb239160b3d854943128f4334822900534f2fe947930e5770", size = 2330317, upload-time = "2025-11-04T13:43:40.406Z" }, + { url = "https://files.pythonhosted.org/packages/88/9d/b06ca6acfe4abb296110fb1273a4d848a0bfb2ff65f3ee92127b3244e16b/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f14f8f046c14563f8eb3f45f499cc658ab8d10072961e07225e507adb700e93f", size = 2316992, upload-time = "2025-11-04T13:43:43.602Z" }, + { url = "https://files.pythonhosted.org/packages/36/c7/cfc8e811f061c841d7990b0201912c3556bfeb99cdcb7ed24adc8d6f8704/pydantic_core-2.41.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:56121965f7a4dc965bff783d70b907ddf3d57f6eba29b6d2e5dabfaf07799c51", size = 2145302, upload-time = "2025-11-04T13:43:46.64Z" }, ] [[package]] name = "pyflakes" -version = "3.3.2" +version = "3.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/af/cc/1df338bd7ed1fa7c317081dcf29bf2f01266603b301e6858856d346a12b3/pyflakes-3.3.2.tar.gz", hash = "sha256:6dfd61d87b97fba5dcfaaf781171ac16be16453be6d816147989e7f6e6a9576b", size = 64175, upload-time = "2025-03-31T13:21:20.34Z" } +sdist = { url = "https://files.pythonhosted.org/packages/45/dc/fd034dc20b4b264b3d015808458391acbf9df40b1e54750ef175d39180b1/pyflakes-3.4.0.tar.gz", hash = "sha256:b24f96fafb7d2ab0ec5075b7350b3d2d2218eab42003821c06344973d3ea2f58", size = 64669, upload-time = "2025-06-20T18:45:27.834Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/15/40/b293a4fa769f3b02ab9e387c707c4cbdc34f073f945de0386107d4e669e6/pyflakes-3.3.2-py2.py3-none-any.whl", hash = "sha256:5039c8339cbb1944045f4ee5466908906180f13cc99cc9949348d10f82a5c32a", size = 63164, upload-time = "2025-03-31T13:21:18.503Z" }, + { url = "https://files.pythonhosted.org/packages/c2/2f/81d580a0fb83baeb066698975cb14a618bdbed7720678566f1b046a95fe8/pyflakes-3.4.0-py2.py3-none-any.whl", hash = "sha256:f742a7dbd0d9cb9ea41e9a24a918996e8170c799fa528688d40dd582c8265f4f", size = 63551, upload-time = "2025-06-20T18:45:26.937Z" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, +] + +[[package]] +name = "pylint" +version = "4.0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "astroid" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "dill" }, + { name = "isort" }, + { name = "mccabe" }, + { name = "platformdirs" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, + { name = "tomlkit" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5a/d2/b081da1a8930d00e3fc06352a1d449aaf815d4982319fab5d8cdb2e9ab35/pylint-4.0.4.tar.gz", hash = "sha256:d9b71674e19b1c36d79265b5887bf8e55278cbe236c9e95d22dc82cf044fdbd2", size = 1571735, upload-time = "2025-11-30T13:29:04.315Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/92/d40f5d937517cc489ad848fc4414ecccc7592e4686b9071e09e64f5e378e/pylint-4.0.4-py3-none-any.whl", hash = "sha256:63e06a37d5922555ee2c20963eb42559918c20bd2b21244e4ef426e7c43b92e0", size = 536425, upload-time = "2025-11-30T13:29:02.53Z" }, ] [[package]] name = "pyparsing" -version = "3.2.4" +version = "3.3.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/98/c9/b4594e6a81371dfa9eb7a2c110ad682acf985d96115ae8b25a1d63b4bf3b/pyparsing-3.2.4.tar.gz", hash = "sha256:fff89494f45559d0f2ce46613b419f632bbb6afbdaed49696d322bcf98a58e99", size = 1098809, upload-time = "2025-09-13T05:47:19.732Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc", size = 6851574, upload-time = "2026-01-21T03:57:59.36Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/53/b8/fbab973592e23ae313042d450fc26fa24282ebffba21ba373786e1ce63b4/pyparsing-3.2.4-py3-none-any.whl", hash = "sha256:91d0fcde680d42cd031daf3a6ba20da3107e08a75de50da58360e7d94ab24d36", size = 113869, upload-time = "2025-09-13T05:47:17.863Z" }, + { url = "https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", size = 122781, upload-time = "2026-01-21T03:57:55.912Z" }, ] [[package]] name = "pytest" -version = "8.3.5" +version = "9.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, @@ -953,24 +1812,25 @@ dependencies = [ { name = "iniconfig" }, { name = "packaging" }, { name = "pluggy" }, + { name = "pygments" }, { name = "tomli", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ae/3c/c9d525a414d506893f0cd8a8d0de7706446213181570cdbd766691164e40/pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845", size = 1450891, upload-time = "2025-03-02T12:54:54.503Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11", size = 1568901, upload-time = "2025-12-06T21:30:51.014Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/30/3d/64ad57c803f1fa1e963a7946b6e0fea4a70df53c1a7fed304586539c2bac/pytest-8.3.5-py3-none-any.whl", hash = "sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820", size = 343634, upload-time = "2025-03-02T12:54:52.069Z" }, + { url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", size = 374801, upload-time = "2025-12-06T21:30:49.154Z" }, ] [[package]] name = "pytest-benchmark" -version = "5.1.0" +version = "5.2.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "py-cpuinfo" }, { name = "pytest" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/39/d0/a8bd08d641b393db3be3819b03e2d9bb8760ca8479080a26a5f6e540e99c/pytest-benchmark-5.1.0.tar.gz", hash = "sha256:9ea661cdc292e8231f7cd4c10b0319e56a2118e2c09d9f50e1b3d150d2aca105", size = 337810, upload-time = "2024-10-30T11:51:48.521Z" } +sdist = { url = "https://files.pythonhosted.org/packages/24/34/9f732b76456d64faffbef6232f1f9dbec7a7c4999ff46282fa418bd1af66/pytest_benchmark-5.2.3.tar.gz", hash = "sha256:deb7317998a23c650fd4ff76e1230066a76cb45dcece0aca5607143c619e7779", size = 341340, upload-time = "2025-11-09T18:48:43.215Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9e/d6/b41653199ea09d5969d4e385df9bbfd9a100f28ca7e824ce7c0a016e3053/pytest_benchmark-5.1.0-py3-none-any.whl", hash = "sha256:922de2dfa3033c227c96da942d1878191afa135a29485fb942e85dff1c592c89", size = 44259, upload-time = "2024-10-30T11:51:45.94Z" }, + { url = "https://files.pythonhosted.org/packages/33/29/e756e715a48959f1c0045342088d7ca9762a2f509b945f362a316e9412b7/pytest_benchmark-5.2.3-py3-none-any.whl", hash = "sha256:bc839726ad20e99aaa0d11a127445457b4219bdb9e80a1afc4b51da7f96b0803", size = 45255, upload-time = "2025-11-09T18:48:39.765Z" }, ] [[package]] @@ -999,99 +1859,204 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, ] +[[package]] +name = "pytokens" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b6/34/b4e015b99031667a7b960f888889c5bd34ef585c85e1cb56a594b92836ac/pytokens-0.4.1.tar.gz", hash = "sha256:292052fe80923aae2260c073f822ceba21f3872ced9a68bb7953b348e561179a", size = 23015, upload-time = "2026-01-30T01:03:45.924Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/24/f206113e05cb8ef51b3850e7ef88f20da6f4bf932190ceb48bd3da103e10/pytokens-0.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2a44ed93ea23415c54f3face3b65ef2b844d96aeb3455b8a69b3df6beab6acc5", size = 161522, upload-time = "2026-01-30T01:02:50.393Z" }, + { url = "https://files.pythonhosted.org/packages/d4/e9/06a6bf1b90c2ed81a9c7d2544232fe5d2891d1cd480e8a1809ca354a8eb2/pytokens-0.4.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:add8bf86b71a5d9fb5b89f023a80b791e04fba57960aa790cc6125f7f1d39dfe", size = 246945, upload-time = "2026-01-30T01:02:52.399Z" }, + { url = "https://files.pythonhosted.org/packages/69/66/f6fb1007a4c3d8b682d5d65b7c1fb33257587a5f782647091e3408abe0b8/pytokens-0.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:670d286910b531c7b7e3c0b453fd8156f250adb140146d234a82219459b9640c", size = 259525, upload-time = "2026-01-30T01:02:53.737Z" }, + { url = "https://files.pythonhosted.org/packages/04/92/086f89b4d622a18418bac74ab5db7f68cf0c21cf7cc92de6c7b919d76c88/pytokens-0.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4e691d7f5186bd2842c14813f79f8884bb03f5995f0575272009982c5ac6c0f7", size = 262693, upload-time = "2026-01-30T01:02:54.871Z" }, + { url = "https://files.pythonhosted.org/packages/b4/7b/8b31c347cf94a3f900bdde750b2e9131575a61fdb620d3d3c75832262137/pytokens-0.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:27b83ad28825978742beef057bfe406ad6ed524b2d28c252c5de7b4a6dd48fa2", size = 103567, upload-time = "2026-01-30T01:02:56.414Z" }, + { url = "https://files.pythonhosted.org/packages/3d/92/790ebe03f07b57e53b10884c329b9a1a308648fc083a6d4a39a10a28c8fc/pytokens-0.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d70e77c55ae8380c91c0c18dea05951482e263982911fc7410b1ffd1dadd3440", size = 160864, upload-time = "2026-01-30T01:02:57.882Z" }, + { url = "https://files.pythonhosted.org/packages/13/25/a4f555281d975bfdd1eba731450e2fe3a95870274da73fb12c40aeae7625/pytokens-0.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4a58d057208cb9075c144950d789511220b07636dd2e4708d5645d24de666bdc", size = 248565, upload-time = "2026-01-30T01:02:59.912Z" }, + { url = "https://files.pythonhosted.org/packages/17/50/bc0394b4ad5b1601be22fa43652173d47e4c9efbf0044c62e9a59b747c56/pytokens-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b49750419d300e2b5a3813cf229d4e5a4c728dae470bcc89867a9ad6f25a722d", size = 260824, upload-time = "2026-01-30T01:03:01.471Z" }, + { url = "https://files.pythonhosted.org/packages/4e/54/3e04f9d92a4be4fc6c80016bc396b923d2a6933ae94b5f557c939c460ee0/pytokens-0.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d9907d61f15bf7261d7e775bd5d7ee4d2930e04424bab1972591918497623a16", size = 264075, upload-time = "2026-01-30T01:03:04.143Z" }, + { url = "https://files.pythonhosted.org/packages/d1/1b/44b0326cb5470a4375f37988aea5d61b5cc52407143303015ebee94abfd6/pytokens-0.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:ee44d0f85b803321710f9239f335aafe16553b39106384cef8e6de40cb4ef2f6", size = 103323, upload-time = "2026-01-30T01:03:05.412Z" }, + { url = "https://files.pythonhosted.org/packages/41/5d/e44573011401fb82e9d51e97f1290ceb377800fb4eed650b96f4753b499c/pytokens-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:140709331e846b728475786df8aeb27d24f48cbcf7bcd449f8de75cae7a45083", size = 160663, upload-time = "2026-01-30T01:03:06.473Z" }, + { url = "https://files.pythonhosted.org/packages/f0/e6/5bbc3019f8e6f21d09c41f8b8654536117e5e211a85d89212d59cbdab381/pytokens-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d6c4268598f762bc8e91f5dbf2ab2f61f7b95bdc07953b602db879b3c8c18e1", size = 255626, upload-time = "2026-01-30T01:03:08.177Z" }, + { url = "https://files.pythonhosted.org/packages/bf/3c/2d5297d82286f6f3d92770289fd439956b201c0a4fc7e72efb9b2293758e/pytokens-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:24afde1f53d95348b5a0eb19488661147285ca4dd7ed752bbc3e1c6242a304d1", size = 269779, upload-time = "2026-01-30T01:03:09.756Z" }, + { url = "https://files.pythonhosted.org/packages/20/01/7436e9ad693cebda0551203e0bf28f7669976c60ad07d6402098208476de/pytokens-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5ad948d085ed6c16413eb5fec6b3e02fa00dc29a2534f088d3302c47eb59adf9", size = 268076, upload-time = "2026-01-30T01:03:10.957Z" }, + { url = "https://files.pythonhosted.org/packages/2e/df/533c82a3c752ba13ae7ef238b7f8cdd272cf1475f03c63ac6cf3fcfb00b6/pytokens-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:3f901fe783e06e48e8cbdc82d631fca8f118333798193e026a50ce1b3757ea68", size = 103552, upload-time = "2026-01-30T01:03:12.066Z" }, + { url = "https://files.pythonhosted.org/packages/cb/dc/08b1a080372afda3cceb4f3c0a7ba2bde9d6a5241f1edb02a22a019ee147/pytokens-0.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8bdb9d0ce90cbf99c525e75a2fa415144fd570a1ba987380190e8b786bc6ef9b", size = 160720, upload-time = "2026-01-30T01:03:13.843Z" }, + { url = "https://files.pythonhosted.org/packages/64/0c/41ea22205da480837a700e395507e6a24425151dfb7ead73343d6e2d7ffe/pytokens-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5502408cab1cb18e128570f8d598981c68a50d0cbd7c61312a90507cd3a1276f", size = 254204, upload-time = "2026-01-30T01:03:14.886Z" }, + { url = "https://files.pythonhosted.org/packages/e0/d2/afe5c7f8607018beb99971489dbb846508f1b8f351fcefc225fcf4b2adc0/pytokens-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:29d1d8fb1030af4d231789959f21821ab6325e463f0503a61d204343c9b355d1", size = 268423, upload-time = "2026-01-30T01:03:15.936Z" }, + { url = "https://files.pythonhosted.org/packages/68/d4/00ffdbd370410c04e9591da9220a68dc1693ef7499173eb3e30d06e05ed1/pytokens-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:970b08dd6b86058b6dc07efe9e98414f5102974716232d10f32ff39701e841c4", size = 266859, upload-time = "2026-01-30T01:03:17.458Z" }, + { url = "https://files.pythonhosted.org/packages/a7/c9/c3161313b4ca0c601eeefabd3d3b576edaa9afdefd32da97210700e47652/pytokens-0.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:9bd7d7f544d362576be74f9d5901a22f317efc20046efe2034dced238cbbfe78", size = 103520, upload-time = "2026-01-30T01:03:18.652Z" }, + { url = "https://files.pythonhosted.org/packages/8f/a7/b470f672e6fc5fee0a01d9e75005a0e617e162381974213a945fcd274843/pytokens-0.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4a14d5f5fc78ce85e426aa159489e2d5961acf0e47575e08f35584009178e321", size = 160821, upload-time = "2026-01-30T01:03:19.684Z" }, + { url = "https://files.pythonhosted.org/packages/80/98/e83a36fe8d170c911f864bfded690d2542bfcfacb9c649d11a9e6eb9dc41/pytokens-0.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f50fd18543be72da51dd505e2ed20d2228c74e0464e4262e4899797803d7fa", size = 254263, upload-time = "2026-01-30T01:03:20.834Z" }, + { url = "https://files.pythonhosted.org/packages/0f/95/70d7041273890f9f97a24234c00b746e8da86df462620194cef1d411ddeb/pytokens-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dc74c035f9bfca0255c1af77ddd2d6ae8419012805453e4b0e7513e17904545d", size = 268071, upload-time = "2026-01-30T01:03:21.888Z" }, + { url = "https://files.pythonhosted.org/packages/da/79/76e6d09ae19c99404656d7db9c35dfd20f2086f3eb6ecb496b5b31163bad/pytokens-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f66a6bbe741bd431f6d741e617e0f39ec7257ca1f89089593479347cc4d13324", size = 271716, upload-time = "2026-01-30T01:03:23.633Z" }, + { url = "https://files.pythonhosted.org/packages/79/37/482e55fa1602e0a7ff012661d8c946bafdc05e480ea5a32f4f7e336d4aa9/pytokens-0.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:b35d7e5ad269804f6697727702da3c517bb8a5228afa450ab0fa787732055fc9", size = 104539, upload-time = "2026-01-30T01:03:24.788Z" }, + { url = "https://files.pythonhosted.org/packages/30/e8/20e7db907c23f3d63b0be3b8a4fd1927f6da2395f5bcc7f72242bb963dfe/pytokens-0.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8fcb9ba3709ff77e77f1c7022ff11d13553f3c30299a9fe246a166903e9091eb", size = 168474, upload-time = "2026-01-30T01:03:26.428Z" }, + { url = "https://files.pythonhosted.org/packages/d6/81/88a95ee9fafdd8f5f3452107748fd04c24930d500b9aba9738f3ade642cc/pytokens-0.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:79fc6b8699564e1f9b521582c35435f1bd32dd06822322ec44afdeba666d8cb3", size = 290473, upload-time = "2026-01-30T01:03:27.415Z" }, + { url = "https://files.pythonhosted.org/packages/cf/35/3aa899645e29b6375b4aed9f8d21df219e7c958c4c186b465e42ee0a06bf/pytokens-0.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d31b97b3de0f61571a124a00ffe9a81fb9939146c122c11060725bd5aea79975", size = 303485, upload-time = "2026-01-30T01:03:28.558Z" }, + { url = "https://files.pythonhosted.org/packages/52/a0/07907b6ff512674d9b201859f7d212298c44933633c946703a20c25e9d81/pytokens-0.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:967cf6e3fd4adf7de8fc73cd3043754ae79c36475c1c11d514fc72cf5490094a", size = 306698, upload-time = "2026-01-30T01:03:29.653Z" }, + { url = "https://files.pythonhosted.org/packages/39/2a/cbbf9250020a4a8dd53ba83a46c097b69e5eb49dd14e708f496f548c6612/pytokens-0.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:584c80c24b078eec1e227079d56dc22ff755e0ba8654d8383b2c549107528918", size = 116287, upload-time = "2026-01-30T01:03:30.912Z" }, + { url = "https://files.pythonhosted.org/packages/c6/78/397db326746f0a342855b81216ae1f0a32965deccfd7c830a2dbc66d2483/pytokens-0.4.1-py3-none-any.whl", hash = "sha256:26cef14744a8385f35d0e095dc8b3a7583f6c953c2e3d269c7f82484bf5ad2de", size = 13729, upload-time = "2026-01-30T01:03:45.029Z" }, +] + [[package]] name = "regex" -version = "2024.11.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8e/5f/bd69653fbfb76cf8604468d3b4ec4c403197144c7bfe0e6a5fc9e02a07cb/regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519", size = 399494, upload-time = "2024-11-06T20:12:31.635Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/95/3c/4651f6b130c6842a8f3df82461a8950f923925db8b6961063e82744bddcc/regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91", size = 482674, upload-time = "2024-11-06T20:08:57.575Z" }, - { url = "https://files.pythonhosted.org/packages/15/51/9f35d12da8434b489c7b7bffc205c474a0a9432a889457026e9bc06a297a/regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0", size = 287684, upload-time = "2024-11-06T20:08:59.787Z" }, - { url = "https://files.pythonhosted.org/packages/bd/18/b731f5510d1b8fb63c6b6d3484bfa9a59b84cc578ac8b5172970e05ae07c/regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e", size = 284589, upload-time = "2024-11-06T20:09:01.896Z" }, - { url = "https://files.pythonhosted.org/packages/78/a2/6dd36e16341ab95e4c6073426561b9bfdeb1a9c9b63ab1b579c2e96cb105/regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde", size = 782511, upload-time = "2024-11-06T20:09:04.062Z" }, - { url = "https://files.pythonhosted.org/packages/1b/2b/323e72d5d2fd8de0d9baa443e1ed70363ed7e7b2fb526f5950c5cb99c364/regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e", size = 821149, upload-time = "2024-11-06T20:09:06.237Z" }, - { url = "https://files.pythonhosted.org/packages/90/30/63373b9ea468fbef8a907fd273e5c329b8c9535fee36fc8dba5fecac475d/regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2", size = 809707, upload-time = "2024-11-06T20:09:07.715Z" }, - { url = "https://files.pythonhosted.org/packages/f2/98/26d3830875b53071f1f0ae6d547f1d98e964dd29ad35cbf94439120bb67a/regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf", size = 781702, upload-time = "2024-11-06T20:09:10.101Z" }, - { url = "https://files.pythonhosted.org/packages/87/55/eb2a068334274db86208ab9d5599ffa63631b9f0f67ed70ea7c82a69bbc8/regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c", size = 771976, upload-time = "2024-11-06T20:09:11.566Z" }, - { url = "https://files.pythonhosted.org/packages/74/c0/be707bcfe98254d8f9d2cff55d216e946f4ea48ad2fd8cf1428f8c5332ba/regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86", size = 697397, upload-time = "2024-11-06T20:09:13.119Z" }, - { url = "https://files.pythonhosted.org/packages/49/dc/bb45572ceb49e0f6509f7596e4ba7031f6819ecb26bc7610979af5a77f45/regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67", size = 768726, upload-time = "2024-11-06T20:09:14.85Z" }, - { url = "https://files.pythonhosted.org/packages/5a/db/f43fd75dc4c0c2d96d0881967897926942e935d700863666f3c844a72ce6/regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d", size = 775098, upload-time = "2024-11-06T20:09:16.504Z" }, - { url = "https://files.pythonhosted.org/packages/99/d7/f94154db29ab5a89d69ff893159b19ada89e76b915c1293e98603d39838c/regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2", size = 839325, upload-time = "2024-11-06T20:09:18.698Z" }, - { url = "https://files.pythonhosted.org/packages/f7/17/3cbfab1f23356fbbf07708220ab438a7efa1e0f34195bf857433f79f1788/regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008", size = 843277, upload-time = "2024-11-06T20:09:21.725Z" }, - { url = "https://files.pythonhosted.org/packages/7e/f2/48b393b51900456155de3ad001900f94298965e1cad1c772b87f9cfea011/regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62", size = 773197, upload-time = "2024-11-06T20:09:24.092Z" }, - { url = "https://files.pythonhosted.org/packages/45/3f/ef9589aba93e084cd3f8471fded352826dcae8489b650d0b9b27bc5bba8a/regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e", size = 261714, upload-time = "2024-11-06T20:09:26.36Z" }, - { url = "https://files.pythonhosted.org/packages/42/7e/5f1b92c8468290c465fd50c5318da64319133231415a8aa6ea5ab995a815/regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519", size = 274042, upload-time = "2024-11-06T20:09:28.762Z" }, - { url = "https://files.pythonhosted.org/packages/58/58/7e4d9493a66c88a7da6d205768119f51af0f684fe7be7bac8328e217a52c/regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638", size = 482669, upload-time = "2024-11-06T20:09:31.064Z" }, - { url = "https://files.pythonhosted.org/packages/34/4c/8f8e631fcdc2ff978609eaeef1d6994bf2f028b59d9ac67640ed051f1218/regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7", size = 287684, upload-time = "2024-11-06T20:09:32.915Z" }, - { url = "https://files.pythonhosted.org/packages/c5/1b/f0e4d13e6adf866ce9b069e191f303a30ab1277e037037a365c3aad5cc9c/regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20", size = 284589, upload-time = "2024-11-06T20:09:35.504Z" }, - { url = "https://files.pythonhosted.org/packages/25/4d/ab21047f446693887f25510887e6820b93f791992994f6498b0318904d4a/regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114", size = 792121, upload-time = "2024-11-06T20:09:37.701Z" }, - { url = "https://files.pythonhosted.org/packages/45/ee/c867e15cd894985cb32b731d89576c41a4642a57850c162490ea34b78c3b/regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3", size = 831275, upload-time = "2024-11-06T20:09:40.371Z" }, - { url = "https://files.pythonhosted.org/packages/b3/12/b0f480726cf1c60f6536fa5e1c95275a77624f3ac8fdccf79e6727499e28/regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f", size = 818257, upload-time = "2024-11-06T20:09:43.059Z" }, - { url = "https://files.pythonhosted.org/packages/bf/ce/0d0e61429f603bac433910d99ef1a02ce45a8967ffbe3cbee48599e62d88/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0", size = 792727, upload-time = "2024-11-06T20:09:48.19Z" }, - { url = "https://files.pythonhosted.org/packages/e4/c1/243c83c53d4a419c1556f43777ccb552bccdf79d08fda3980e4e77dd9137/regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55", size = 780667, upload-time = "2024-11-06T20:09:49.828Z" }, - { url = "https://files.pythonhosted.org/packages/c5/f4/75eb0dd4ce4b37f04928987f1d22547ddaf6c4bae697623c1b05da67a8aa/regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89", size = 776963, upload-time = "2024-11-06T20:09:51.819Z" }, - { url = "https://files.pythonhosted.org/packages/16/5d/95c568574e630e141a69ff8a254c2f188b4398e813c40d49228c9bbd9875/regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d", size = 784700, upload-time = "2024-11-06T20:09:53.982Z" }, - { url = "https://files.pythonhosted.org/packages/8e/b5/f8495c7917f15cc6fee1e7f395e324ec3e00ab3c665a7dc9d27562fd5290/regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34", size = 848592, upload-time = "2024-11-06T20:09:56.222Z" }, - { url = "https://files.pythonhosted.org/packages/1c/80/6dd7118e8cb212c3c60b191b932dc57db93fb2e36fb9e0e92f72a5909af9/regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d", size = 852929, upload-time = "2024-11-06T20:09:58.642Z" }, - { url = "https://files.pythonhosted.org/packages/11/9b/5a05d2040297d2d254baf95eeeb6df83554e5e1df03bc1a6687fc4ba1f66/regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45", size = 781213, upload-time = "2024-11-06T20:10:00.867Z" }, - { url = "https://files.pythonhosted.org/packages/26/b7/b14e2440156ab39e0177506c08c18accaf2b8932e39fb092074de733d868/regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9", size = 261734, upload-time = "2024-11-06T20:10:03.361Z" }, - { url = "https://files.pythonhosted.org/packages/80/32/763a6cc01d21fb3819227a1cc3f60fd251c13c37c27a73b8ff4315433a8e/regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60", size = 274052, upload-time = "2024-11-06T20:10:05.179Z" }, - { url = "https://files.pythonhosted.org/packages/ba/30/9a87ce8336b172cc232a0db89a3af97929d06c11ceaa19d97d84fa90a8f8/regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a", size = 483781, upload-time = "2024-11-06T20:10:07.07Z" }, - { url = "https://files.pythonhosted.org/packages/01/e8/00008ad4ff4be8b1844786ba6636035f7ef926db5686e4c0f98093612add/regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9", size = 288455, upload-time = "2024-11-06T20:10:09.117Z" }, - { url = "https://files.pythonhosted.org/packages/60/85/cebcc0aff603ea0a201667b203f13ba75d9fc8668fab917ac5b2de3967bc/regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2", size = 284759, upload-time = "2024-11-06T20:10:11.155Z" }, - { url = "https://files.pythonhosted.org/packages/94/2b/701a4b0585cb05472a4da28ee28fdfe155f3638f5e1ec92306d924e5faf0/regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4", size = 794976, upload-time = "2024-11-06T20:10:13.24Z" }, - { url = "https://files.pythonhosted.org/packages/4b/bf/fa87e563bf5fee75db8915f7352e1887b1249126a1be4813837f5dbec965/regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577", size = 833077, upload-time = "2024-11-06T20:10:15.37Z" }, - { url = "https://files.pythonhosted.org/packages/a1/56/7295e6bad94b047f4d0834e4779491b81216583c00c288252ef625c01d23/regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3", size = 823160, upload-time = "2024-11-06T20:10:19.027Z" }, - { url = "https://files.pythonhosted.org/packages/fb/13/e3b075031a738c9598c51cfbc4c7879e26729c53aa9cca59211c44235314/regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e", size = 796896, upload-time = "2024-11-06T20:10:21.85Z" }, - { url = "https://files.pythonhosted.org/packages/24/56/0b3f1b66d592be6efec23a795b37732682520b47c53da5a32c33ed7d84e3/regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe", size = 783997, upload-time = "2024-11-06T20:10:24.329Z" }, - { url = "https://files.pythonhosted.org/packages/f9/a1/eb378dada8b91c0e4c5f08ffb56f25fcae47bf52ad18f9b2f33b83e6d498/regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e", size = 781725, upload-time = "2024-11-06T20:10:28.067Z" }, - { url = "https://files.pythonhosted.org/packages/83/f2/033e7dec0cfd6dda93390089864732a3409246ffe8b042e9554afa9bff4e/regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29", size = 789481, upload-time = "2024-11-06T20:10:31.612Z" }, - { url = "https://files.pythonhosted.org/packages/83/23/15d4552ea28990a74e7696780c438aadd73a20318c47e527b47a4a5a596d/regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39", size = 852896, upload-time = "2024-11-06T20:10:34.054Z" }, - { url = "https://files.pythonhosted.org/packages/e3/39/ed4416bc90deedbfdada2568b2cb0bc1fdb98efe11f5378d9892b2a88f8f/regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51", size = 860138, upload-time = "2024-11-06T20:10:36.142Z" }, - { url = "https://files.pythonhosted.org/packages/93/2d/dd56bb76bd8e95bbce684326302f287455b56242a4f9c61f1bc76e28360e/regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad", size = 787692, upload-time = "2024-11-06T20:10:38.394Z" }, - { url = "https://files.pythonhosted.org/packages/0b/55/31877a249ab7a5156758246b9c59539abbeba22461b7d8adc9e8475ff73e/regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54", size = 262135, upload-time = "2024-11-06T20:10:40.367Z" }, - { url = "https://files.pythonhosted.org/packages/38/ec/ad2d7de49a600cdb8dd78434a1aeffe28b9d6fc42eb36afab4a27ad23384/regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b", size = 273567, upload-time = "2024-11-06T20:10:43.467Z" }, - { url = "https://files.pythonhosted.org/packages/90/73/bcb0e36614601016552fa9344544a3a2ae1809dc1401b100eab02e772e1f/regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84", size = 483525, upload-time = "2024-11-06T20:10:45.19Z" }, - { url = "https://files.pythonhosted.org/packages/0f/3f/f1a082a46b31e25291d830b369b6b0c5576a6f7fb89d3053a354c24b8a83/regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4", size = 288324, upload-time = "2024-11-06T20:10:47.177Z" }, - { url = "https://files.pythonhosted.org/packages/09/c9/4e68181a4a652fb3ef5099e077faf4fd2a694ea6e0f806a7737aff9e758a/regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0", size = 284617, upload-time = "2024-11-06T20:10:49.312Z" }, - { url = "https://files.pythonhosted.org/packages/fc/fd/37868b75eaf63843165f1d2122ca6cb94bfc0271e4428cf58c0616786dce/regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0", size = 795023, upload-time = "2024-11-06T20:10:51.102Z" }, - { url = "https://files.pythonhosted.org/packages/c4/7c/d4cd9c528502a3dedb5c13c146e7a7a539a3853dc20209c8e75d9ba9d1b2/regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7", size = 833072, upload-time = "2024-11-06T20:10:52.926Z" }, - { url = "https://files.pythonhosted.org/packages/4f/db/46f563a08f969159c5a0f0e722260568425363bea43bb7ae370becb66a67/regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7", size = 823130, upload-time = "2024-11-06T20:10:54.828Z" }, - { url = "https://files.pythonhosted.org/packages/db/60/1eeca2074f5b87df394fccaa432ae3fc06c9c9bfa97c5051aed70e6e00c2/regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c", size = 796857, upload-time = "2024-11-06T20:10:56.634Z" }, - { url = "https://files.pythonhosted.org/packages/10/db/ac718a08fcee981554d2f7bb8402f1faa7e868c1345c16ab1ebec54b0d7b/regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3", size = 784006, upload-time = "2024-11-06T20:10:59.369Z" }, - { url = "https://files.pythonhosted.org/packages/c2/41/7da3fe70216cea93144bf12da2b87367590bcf07db97604edeea55dac9ad/regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07", size = 781650, upload-time = "2024-11-06T20:11:02.042Z" }, - { url = "https://files.pythonhosted.org/packages/a7/d5/880921ee4eec393a4752e6ab9f0fe28009435417c3102fc413f3fe81c4e5/regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e", size = 789545, upload-time = "2024-11-06T20:11:03.933Z" }, - { url = "https://files.pythonhosted.org/packages/dc/96/53770115e507081122beca8899ab7f5ae28ae790bfcc82b5e38976df6a77/regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6", size = 853045, upload-time = "2024-11-06T20:11:06.497Z" }, - { url = "https://files.pythonhosted.org/packages/31/d3/1372add5251cc2d44b451bd94f43b2ec78e15a6e82bff6a290ef9fd8f00a/regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4", size = 860182, upload-time = "2024-11-06T20:11:09.06Z" }, - { url = "https://files.pythonhosted.org/packages/ed/e3/c446a64984ea9f69982ba1a69d4658d5014bc7a0ea468a07e1a1265db6e2/regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d", size = 787733, upload-time = "2024-11-06T20:11:11.256Z" }, - { url = "https://files.pythonhosted.org/packages/2b/f1/e40c8373e3480e4f29f2692bd21b3e05f296d3afebc7e5dcf21b9756ca1c/regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff", size = 262122, upload-time = "2024-11-06T20:11:13.161Z" }, - { url = "https://files.pythonhosted.org/packages/45/94/bc295babb3062a731f52621cdc992d123111282e291abaf23faa413443ea/regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a", size = 273545, upload-time = "2024-11-06T20:11:15Z" }, +version = "2026.1.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/86/07d5056945f9ec4590b518171c4254a5925832eb727b56d3c38a7476f316/regex-2026.1.15.tar.gz", hash = "sha256:164759aa25575cbc0651bef59a0b18353e54300d79ace8084c818ad8ac72b7d5", size = 414811, upload-time = "2026-01-14T23:18:02.775Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ea/d2/e6ee96b7dff201a83f650241c52db8e5bd080967cb93211f57aa448dc9d6/regex-2026.1.15-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4e3dd93c8f9abe8aa4b6c652016da9a3afa190df5ad822907efe6b206c09896e", size = 488166, upload-time = "2026-01-14T23:13:46.408Z" }, + { url = "https://files.pythonhosted.org/packages/23/8a/819e9ce14c9f87af026d0690901b3931f3101160833e5d4c8061fa3a1b67/regex-2026.1.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:97499ff7862e868b1977107873dd1a06e151467129159a6ffd07b66706ba3a9f", size = 290632, upload-time = "2026-01-14T23:13:48.688Z" }, + { url = "https://files.pythonhosted.org/packages/d5/c3/23dfe15af25d1d45b07dfd4caa6003ad710dcdcb4c4b279909bdfe7a2de8/regex-2026.1.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0bda75ebcac38d884240914c6c43d8ab5fb82e74cde6da94b43b17c411aa4c2b", size = 288500, upload-time = "2026-01-14T23:13:50.503Z" }, + { url = "https://files.pythonhosted.org/packages/c6/31/1adc33e2f717df30d2f4d973f8776d2ba6ecf939301efab29fca57505c95/regex-2026.1.15-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7dcc02368585334f5bc81fc73a2a6a0bbade60e7d83da21cead622faf408f32c", size = 781670, upload-time = "2026-01-14T23:13:52.453Z" }, + { url = "https://files.pythonhosted.org/packages/23/ce/21a8a22d13bc4adcb927c27b840c948f15fc973e21ed2346c1bd0eae22dc/regex-2026.1.15-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:693b465171707bbe882a7a05de5e866f33c76aa449750bee94a8d90463533cc9", size = 850820, upload-time = "2026-01-14T23:13:54.894Z" }, + { url = "https://files.pythonhosted.org/packages/6c/4f/3eeacdf587a4705a44484cd0b30e9230a0e602811fb3e2cc32268c70d509/regex-2026.1.15-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b0d190e6f013ea938623a58706d1469a62103fb2a241ce2873a9906e0386582c", size = 898777, upload-time = "2026-01-14T23:13:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/79/a9/1898a077e2965c35fc22796488141a22676eed2d73701e37c73ad7c0b459/regex-2026.1.15-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5ff818702440a5878a81886f127b80127f5d50563753a28211482867f8318106", size = 791750, upload-time = "2026-01-14T23:13:58.527Z" }, + { url = "https://files.pythonhosted.org/packages/4c/84/e31f9d149a178889b3817212827f5e0e8c827a049ff31b4b381e76b26e2d/regex-2026.1.15-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f052d1be37ef35a54e394de66136e30fa1191fab64f71fc06ac7bc98c9a84618", size = 782674, upload-time = "2026-01-14T23:13:59.874Z" }, + { url = "https://files.pythonhosted.org/packages/d2/ff/adf60063db24532add6a1676943754a5654dcac8237af024ede38244fd12/regex-2026.1.15-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6bfc31a37fd1592f0c4fc4bfc674b5c42e52efe45b4b7a6a14f334cca4bcebe4", size = 767906, upload-time = "2026-01-14T23:14:01.298Z" }, + { url = "https://files.pythonhosted.org/packages/af/3e/e6a216cee1e2780fec11afe7fc47b6f3925d7264e8149c607ac389fd9b1a/regex-2026.1.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3d6ce5ae80066b319ae3bc62fd55a557c9491baa5efd0d355f0de08c4ba54e79", size = 774798, upload-time = "2026-01-14T23:14:02.715Z" }, + { url = "https://files.pythonhosted.org/packages/0f/98/23a4a8378a9208514ed3efc7e7850c27fa01e00ed8557c958df0335edc4a/regex-2026.1.15-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:1704d204bd42b6bb80167df0e4554f35c255b579ba99616def38f69e14a5ccb9", size = 845861, upload-time = "2026-01-14T23:14:04.824Z" }, + { url = "https://files.pythonhosted.org/packages/f8/57/d7605a9d53bd07421a8785d349cd29677fe660e13674fa4c6cbd624ae354/regex-2026.1.15-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:e3174a5ed4171570dc8318afada56373aa9289eb6dc0d96cceb48e7358b0e220", size = 755648, upload-time = "2026-01-14T23:14:06.371Z" }, + { url = "https://files.pythonhosted.org/packages/6f/76/6f2e24aa192da1e299cc1101674a60579d3912391867ce0b946ba83e2194/regex-2026.1.15-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:87adf5bd6d72e3e17c9cb59ac4096b1faaf84b7eb3037a5ffa61c4b4370f0f13", size = 836250, upload-time = "2026-01-14T23:14:08.343Z" }, + { url = "https://files.pythonhosted.org/packages/11/3a/1f2a1d29453299a7858eab7759045fc3d9d1b429b088dec2dc85b6fa16a2/regex-2026.1.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e85dc94595f4d766bd7d872a9de5ede1ca8d3063f3bdf1e2c725f5eb411159e3", size = 779919, upload-time = "2026-01-14T23:14:09.954Z" }, + { url = "https://files.pythonhosted.org/packages/c0/67/eab9bc955c9dcc58e9b222c801e39cff7ca0b04261792a2149166ce7e792/regex-2026.1.15-cp310-cp310-win32.whl", hash = "sha256:21ca32c28c30d5d65fc9886ff576fc9b59bbca08933e844fa2363e530f4c8218", size = 265888, upload-time = "2026-01-14T23:14:11.35Z" }, + { url = "https://files.pythonhosted.org/packages/1d/62/31d16ae24e1f8803bddb0885508acecaec997fcdcde9c243787103119ae4/regex-2026.1.15-cp310-cp310-win_amd64.whl", hash = "sha256:3038a62fc7d6e5547b8915a3d927a0fbeef84cdbe0b1deb8c99bbd4a8961b52a", size = 277830, upload-time = "2026-01-14T23:14:12.908Z" }, + { url = "https://files.pythonhosted.org/packages/e5/36/5d9972bccd6417ecd5a8be319cebfd80b296875e7f116c37fb2a2deecebf/regex-2026.1.15-cp310-cp310-win_arm64.whl", hash = "sha256:505831646c945e3e63552cc1b1b9b514f0e93232972a2d5bedbcc32f15bc82e3", size = 270376, upload-time = "2026-01-14T23:14:14.782Z" }, + { url = "https://files.pythonhosted.org/packages/d0/c9/0c80c96eab96948363d270143138d671d5731c3a692b417629bf3492a9d6/regex-2026.1.15-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ae6020fb311f68d753b7efa9d4b9a5d47a5d6466ea0d5e3b5a471a960ea6e4a", size = 488168, upload-time = "2026-01-14T23:14:16.129Z" }, + { url = "https://files.pythonhosted.org/packages/17/f0/271c92f5389a552494c429e5cc38d76d1322eb142fb5db3c8ccc47751468/regex-2026.1.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:eddf73f41225942c1f994914742afa53dc0d01a6e20fe14b878a1b1edc74151f", size = 290636, upload-time = "2026-01-14T23:14:17.715Z" }, + { url = "https://files.pythonhosted.org/packages/a0/f9/5f1fd077d106ca5655a0f9ff8f25a1ab55b92128b5713a91ed7134ff688e/regex-2026.1.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e8cd52557603f5c66a548f69421310886b28b7066853089e1a71ee710e1cdc1", size = 288496, upload-time = "2026-01-14T23:14:19.326Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e1/8f43b03a4968c748858ec77f746c286d81f896c2e437ccf050ebc5d3128c/regex-2026.1.15-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5170907244b14303edc5978f522f16c974f32d3aa92109fabc2af52411c9433b", size = 793503, upload-time = "2026-01-14T23:14:20.922Z" }, + { url = "https://files.pythonhosted.org/packages/8d/4e/a39a5e8edc5377a46a7c875c2f9a626ed3338cb3bb06931be461c3e1a34a/regex-2026.1.15-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2748c1ec0663580b4510bd89941a31560b4b439a0b428b49472a3d9944d11cd8", size = 860535, upload-time = "2026-01-14T23:14:22.405Z" }, + { url = "https://files.pythonhosted.org/packages/dc/1c/9dce667a32a9477f7a2869c1c767dc00727284a9fa3ff5c09a5c6c03575e/regex-2026.1.15-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2f2775843ca49360508d080eaa87f94fa248e2c946bbcd963bb3aae14f333413", size = 907225, upload-time = "2026-01-14T23:14:23.897Z" }, + { url = "https://files.pythonhosted.org/packages/a4/3c/87ca0a02736d16b6262921425e84b48984e77d8e4e572c9072ce96e66c30/regex-2026.1.15-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9ea2604370efc9a174c1b5dcc81784fb040044232150f7f33756049edfc9026", size = 800526, upload-time = "2026-01-14T23:14:26.039Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ff/647d5715aeea7c87bdcbd2f578f47b415f55c24e361e639fe8c0cc88878f/regex-2026.1.15-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0dcd31594264029b57bf16f37fd7248a70b3b764ed9e0839a8f271b2d22c0785", size = 773446, upload-time = "2026-01-14T23:14:28.109Z" }, + { url = "https://files.pythonhosted.org/packages/af/89/bf22cac25cb4ba0fe6bff52ebedbb65b77a179052a9d6037136ae93f42f4/regex-2026.1.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c08c1f3e34338256732bd6938747daa3c0d5b251e04b6e43b5813e94d503076e", size = 783051, upload-time = "2026-01-14T23:14:29.929Z" }, + { url = "https://files.pythonhosted.org/packages/1e/f4/6ed03e71dca6348a5188363a34f5e26ffd5db1404780288ff0d79513bce4/regex-2026.1.15-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e43a55f378df1e7a4fa3547c88d9a5a9b7113f653a66821bcea4718fe6c58763", size = 854485, upload-time = "2026-01-14T23:14:31.366Z" }, + { url = "https://files.pythonhosted.org/packages/d9/9a/8e8560bd78caded8eb137e3e47612430a05b9a772caf60876435192d670a/regex-2026.1.15-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:f82110ab962a541737bd0ce87978d4c658f06e7591ba899192e2712a517badbb", size = 762195, upload-time = "2026-01-14T23:14:32.802Z" }, + { url = "https://files.pythonhosted.org/packages/38/6b/61fc710f9aa8dfcd764fe27d37edfaa023b1a23305a0d84fccd5adb346ea/regex-2026.1.15-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:27618391db7bdaf87ac6c92b31e8f0dfb83a9de0075855152b720140bda177a2", size = 845986, upload-time = "2026-01-14T23:14:34.898Z" }, + { url = "https://files.pythonhosted.org/packages/fd/2e/fbee4cb93f9d686901a7ca8d94285b80405e8c34fe4107f63ffcbfb56379/regex-2026.1.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bfb0d6be01fbae8d6655c8ca21b3b72458606c4aec9bbc932db758d47aba6db1", size = 788992, upload-time = "2026-01-14T23:14:37.116Z" }, + { url = "https://files.pythonhosted.org/packages/ed/14/3076348f3f586de64b1ab75a3fbabdaab7684af7f308ad43be7ef1849e55/regex-2026.1.15-cp311-cp311-win32.whl", hash = "sha256:b10e42a6de0e32559a92f2f8dc908478cc0fa02838d7dbe764c44dca3fa13569", size = 265893, upload-time = "2026-01-14T23:14:38.426Z" }, + { url = "https://files.pythonhosted.org/packages/0f/19/772cf8b5fc803f5c89ba85d8b1870a1ca580dc482aa030383a9289c82e44/regex-2026.1.15-cp311-cp311-win_amd64.whl", hash = "sha256:e9bf3f0bbdb56633c07d7116ae60a576f846efdd86a8848f8d62b749e1209ca7", size = 277840, upload-time = "2026-01-14T23:14:39.785Z" }, + { url = "https://files.pythonhosted.org/packages/78/84/d05f61142709474da3c0853222d91086d3e1372bcdab516c6fd8d80f3297/regex-2026.1.15-cp311-cp311-win_arm64.whl", hash = "sha256:41aef6f953283291c4e4e6850607bd71502be67779586a61472beacb315c97ec", size = 270374, upload-time = "2026-01-14T23:14:41.592Z" }, + { url = "https://files.pythonhosted.org/packages/92/81/10d8cf43c807d0326efe874c1b79f22bfb0fb226027b0b19ebc26d301408/regex-2026.1.15-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4c8fcc5793dde01641a35905d6731ee1548f02b956815f8f1cab89e515a5bdf1", size = 489398, upload-time = "2026-01-14T23:14:43.741Z" }, + { url = "https://files.pythonhosted.org/packages/90/b0/7c2a74e74ef2a7c32de724658a69a862880e3e4155cba992ba04d1c70400/regex-2026.1.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bfd876041a956e6a90ad7cdb3f6a630c07d491280bfeed4544053cd434901681", size = 291339, upload-time = "2026-01-14T23:14:45.183Z" }, + { url = "https://files.pythonhosted.org/packages/19/4d/16d0773d0c818417f4cc20aa0da90064b966d22cd62a8c46765b5bd2d643/regex-2026.1.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9250d087bc92b7d4899ccd5539a1b2334e44eee85d848c4c1aef8e221d3f8c8f", size = 289003, upload-time = "2026-01-14T23:14:47.25Z" }, + { url = "https://files.pythonhosted.org/packages/c6/e4/1fc4599450c9f0863d9406e944592d968b8d6dfd0d552a7d569e43bceada/regex-2026.1.15-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c8a154cf6537ebbc110e24dabe53095e714245c272da9c1be05734bdad4a61aa", size = 798656, upload-time = "2026-01-14T23:14:48.77Z" }, + { url = "https://files.pythonhosted.org/packages/b2/e6/59650d73a73fa8a60b3a590545bfcf1172b4384a7df2e7fe7b9aab4e2da9/regex-2026.1.15-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8050ba2e3ea1d8731a549e83c18d2f0999fbc99a5f6bd06b4c91449f55291804", size = 864252, upload-time = "2026-01-14T23:14:50.528Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ab/1d0f4d50a1638849a97d731364c9a80fa304fec46325e48330c170ee8e80/regex-2026.1.15-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0bf065240704cb8951cc04972cf107063917022511273e0969bdb34fc173456c", size = 912268, upload-time = "2026-01-14T23:14:52.952Z" }, + { url = "https://files.pythonhosted.org/packages/dd/df/0d722c030c82faa1d331d1921ee268a4e8fb55ca8b9042c9341c352f17fa/regex-2026.1.15-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c32bef3e7aeee75746748643667668ef941d28b003bfc89994ecf09a10f7a1b5", size = 803589, upload-time = "2026-01-14T23:14:55.182Z" }, + { url = "https://files.pythonhosted.org/packages/66/23/33289beba7ccb8b805c6610a8913d0131f834928afc555b241caabd422a9/regex-2026.1.15-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d5eaa4a4c5b1906bd0d2508d68927f15b81821f85092e06f1a34a4254b0e1af3", size = 775700, upload-time = "2026-01-14T23:14:56.707Z" }, + { url = "https://files.pythonhosted.org/packages/e7/65/bf3a42fa6897a0d3afa81acb25c42f4b71c274f698ceabd75523259f6688/regex-2026.1.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:86c1077a3cc60d453d4084d5b9649065f3bf1184e22992bd322e1f081d3117fb", size = 787928, upload-time = "2026-01-14T23:14:58.312Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f5/13bf65864fc314f68cdd6d8ca94adcab064d4d39dbd0b10fef29a9da48fc/regex-2026.1.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:2b091aefc05c78d286657cd4db95f2e6313375ff65dcf085e42e4c04d9c8d410", size = 858607, upload-time = "2026-01-14T23:15:00.657Z" }, + { url = "https://files.pythonhosted.org/packages/a3/31/040e589834d7a439ee43fb0e1e902bc81bd58a5ba81acffe586bb3321d35/regex-2026.1.15-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:57e7d17f59f9ebfa9667e6e5a1c0127b96b87cb9cede8335482451ed00788ba4", size = 763729, upload-time = "2026-01-14T23:15:02.248Z" }, + { url = "https://files.pythonhosted.org/packages/9b/84/6921e8129687a427edf25a34a5594b588b6d88f491320b9de5b6339a4fcb/regex-2026.1.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:c6c4dcdfff2c08509faa15d36ba7e5ef5fcfab25f1e8f85a0c8f45bc3a30725d", size = 850697, upload-time = "2026-01-14T23:15:03.878Z" }, + { url = "https://files.pythonhosted.org/packages/8a/87/3d06143d4b128f4229158f2de5de6c8f2485170c7221e61bf381313314b2/regex-2026.1.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cf8ff04c642716a7f2048713ddc6278c5fd41faa3b9cab12607c7abecd012c22", size = 789849, upload-time = "2026-01-14T23:15:06.102Z" }, + { url = "https://files.pythonhosted.org/packages/77/69/c50a63842b6bd48850ebc7ab22d46e7a2a32d824ad6c605b218441814639/regex-2026.1.15-cp312-cp312-win32.whl", hash = "sha256:82345326b1d8d56afbe41d881fdf62f1926d7264b2fc1537f99ae5da9aad7913", size = 266279, upload-time = "2026-01-14T23:15:07.678Z" }, + { url = "https://files.pythonhosted.org/packages/f2/36/39d0b29d087e2b11fd8191e15e81cce1b635fcc845297c67f11d0d19274d/regex-2026.1.15-cp312-cp312-win_amd64.whl", hash = "sha256:4def140aa6156bc64ee9912383d4038f3fdd18fee03a6f222abd4de6357ce42a", size = 277166, upload-time = "2026-01-14T23:15:09.257Z" }, + { url = "https://files.pythonhosted.org/packages/28/32/5b8e476a12262748851fa8ab1b0be540360692325975b094e594dfebbb52/regex-2026.1.15-cp312-cp312-win_arm64.whl", hash = "sha256:c6c565d9a6e1a8d783c1948937ffc377dd5771e83bd56de8317c450a954d2056", size = 270415, upload-time = "2026-01-14T23:15:10.743Z" }, + { url = "https://files.pythonhosted.org/packages/f8/2e/6870bb16e982669b674cce3ee9ff2d1d46ab80528ee6bcc20fb2292efb60/regex-2026.1.15-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e69d0deeb977ffe7ed3d2e4439360089f9c3f217ada608f0f88ebd67afb6385e", size = 489164, upload-time = "2026-01-14T23:15:13.962Z" }, + { url = "https://files.pythonhosted.org/packages/dc/67/9774542e203849b0286badf67199970a44ebdb0cc5fb739f06e47ada72f8/regex-2026.1.15-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3601ffb5375de85a16f407854d11cca8fe3f5febbe3ac78fb2866bb220c74d10", size = 291218, upload-time = "2026-01-14T23:15:15.647Z" }, + { url = "https://files.pythonhosted.org/packages/b2/87/b0cda79f22b8dee05f774922a214da109f9a4c0eca5da2c9d72d77ea062c/regex-2026.1.15-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4c5ef43b5c2d4114eb8ea424bb8c9cec01d5d17f242af88b2448f5ee81caadbc", size = 288895, upload-time = "2026-01-14T23:15:17.788Z" }, + { url = "https://files.pythonhosted.org/packages/3b/6a/0041f0a2170d32be01ab981d6346c83a8934277d82c780d60b127331f264/regex-2026.1.15-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:968c14d4f03e10b2fd960f1d5168c1f0ac969381d3c1fcc973bc45fb06346599", size = 798680, upload-time = "2026-01-14T23:15:19.342Z" }, + { url = "https://files.pythonhosted.org/packages/58/de/30e1cfcdbe3e891324aa7568b7c968771f82190df5524fabc1138cb2d45a/regex-2026.1.15-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:56a5595d0f892f214609c9f76b41b7428bed439d98dc961efafdd1354d42baae", size = 864210, upload-time = "2026-01-14T23:15:22.005Z" }, + { url = "https://files.pythonhosted.org/packages/64/44/4db2f5c5ca0ccd40ff052ae7b1e9731352fcdad946c2b812285a7505ca75/regex-2026.1.15-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0bf650f26087363434c4e560011f8e4e738f6f3e029b85d4904c50135b86cfa5", size = 912358, upload-time = "2026-01-14T23:15:24.569Z" }, + { url = "https://files.pythonhosted.org/packages/79/b6/e6a5665d43a7c42467138c8a2549be432bad22cbd206f5ec87162de74bd7/regex-2026.1.15-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18388a62989c72ac24de75f1449d0fb0b04dfccd0a1a7c1c43af5eb503d890f6", size = 803583, upload-time = "2026-01-14T23:15:26.526Z" }, + { url = "https://files.pythonhosted.org/packages/e7/53/7cd478222169d85d74d7437e74750005e993f52f335f7c04ff7adfda3310/regex-2026.1.15-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6d220a2517f5893f55daac983bfa9fe998a7dbcaee4f5d27a88500f8b7873788", size = 775782, upload-time = "2026-01-14T23:15:29.352Z" }, + { url = "https://files.pythonhosted.org/packages/ca/b5/75f9a9ee4b03a7c009fe60500fe550b45df94f0955ca29af16333ef557c5/regex-2026.1.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c9c08c2fbc6120e70abff5d7f28ffb4d969e14294fb2143b4b5c7d20e46d1714", size = 787978, upload-time = "2026-01-14T23:15:31.295Z" }, + { url = "https://files.pythonhosted.org/packages/72/b3/79821c826245bbe9ccbb54f6eadb7879c722fd3e0248c17bfc90bf54e123/regex-2026.1.15-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7ef7d5d4bd49ec7364315167a4134a015f61e8266c6d446fc116a9ac4456e10d", size = 858550, upload-time = "2026-01-14T23:15:33.558Z" }, + { url = "https://files.pythonhosted.org/packages/4a/85/2ab5f77a1c465745bfbfcb3ad63178a58337ae8d5274315e2cc623a822fa/regex-2026.1.15-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:6e42844ad64194fa08d5ccb75fe6a459b9b08e6d7296bd704460168d58a388f3", size = 763747, upload-time = "2026-01-14T23:15:35.206Z" }, + { url = "https://files.pythonhosted.org/packages/6d/84/c27df502d4bfe2873a3e3a7cf1bdb2b9cc10284d1a44797cf38bed790470/regex-2026.1.15-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:cfecdaa4b19f9ca534746eb3b55a5195d5c95b88cac32a205e981ec0a22b7d31", size = 850615, upload-time = "2026-01-14T23:15:37.523Z" }, + { url = "https://files.pythonhosted.org/packages/7d/b7/658a9782fb253680aa8ecb5ccbb51f69e088ed48142c46d9f0c99b46c575/regex-2026.1.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:08df9722d9b87834a3d701f3fca570b2be115654dbfd30179f30ab2f39d606d3", size = 789951, upload-time = "2026-01-14T23:15:39.582Z" }, + { url = "https://files.pythonhosted.org/packages/fc/2a/5928af114441e059f15b2f63e188bd00c6529b3051c974ade7444b85fcda/regex-2026.1.15-cp313-cp313-win32.whl", hash = "sha256:d426616dae0967ca225ab12c22274eb816558f2f99ccb4a1d52ca92e8baf180f", size = 266275, upload-time = "2026-01-14T23:15:42.108Z" }, + { url = "https://files.pythonhosted.org/packages/4f/16/5bfbb89e435897bff28cf0352a992ca719d9e55ebf8b629203c96b6ce4f7/regex-2026.1.15-cp313-cp313-win_amd64.whl", hash = "sha256:febd38857b09867d3ed3f4f1af7d241c5c50362e25ef43034995b77a50df494e", size = 277145, upload-time = "2026-01-14T23:15:44.244Z" }, + { url = "https://files.pythonhosted.org/packages/56/c1/a09ff7392ef4233296e821aec5f78c51be5e91ffde0d163059e50fd75835/regex-2026.1.15-cp313-cp313-win_arm64.whl", hash = "sha256:8e32f7896f83774f91499d239e24cebfadbc07639c1494bb7213983842348337", size = 270411, upload-time = "2026-01-14T23:15:45.858Z" }, + { url = "https://files.pythonhosted.org/packages/3c/38/0cfd5a78e5c6db00e6782fdae70458f89850ce95baa5e8694ab91d89744f/regex-2026.1.15-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ec94c04149b6a7b8120f9f44565722c7ae31b7a6d2275569d2eefa76b83da3be", size = 492068, upload-time = "2026-01-14T23:15:47.616Z" }, + { url = "https://files.pythonhosted.org/packages/50/72/6c86acff16cb7c959c4355826bbf06aad670682d07c8f3998d9ef4fee7cd/regex-2026.1.15-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:40c86d8046915bb9aeb15d3f3f15b6fd500b8ea4485b30e1bbc799dab3fe29f8", size = 292756, upload-time = "2026-01-14T23:15:49.307Z" }, + { url = "https://files.pythonhosted.org/packages/4e/58/df7fb69eadfe76526ddfce28abdc0af09ffe65f20c2c90932e89d705153f/regex-2026.1.15-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:726ea4e727aba21643205edad8f2187ec682d3305d790f73b7a51c7587b64bdd", size = 291114, upload-time = "2026-01-14T23:15:51.484Z" }, + { url = "https://files.pythonhosted.org/packages/ed/6c/a4011cd1cf96b90d2cdc7e156f91efbd26531e822a7fbb82a43c1016678e/regex-2026.1.15-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1cb740d044aff31898804e7bf1181cc72c03d11dfd19932b9911ffc19a79070a", size = 807524, upload-time = "2026-01-14T23:15:53.102Z" }, + { url = "https://files.pythonhosted.org/packages/1d/25/a53ffb73183f69c3e9f4355c4922b76d2840aee160af6af5fac229b6201d/regex-2026.1.15-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:05d75a668e9ea16f832390d22131fe1e8acc8389a694c8febc3e340b0f810b93", size = 873455, upload-time = "2026-01-14T23:15:54.956Z" }, + { url = "https://files.pythonhosted.org/packages/66/0b/8b47fc2e8f97d9b4a851736f3890a5f786443aa8901061c55f24c955f45b/regex-2026.1.15-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d991483606f3dbec93287b9f35596f41aa2e92b7c2ebbb935b63f409e243c9af", size = 915007, upload-time = "2026-01-14T23:15:57.041Z" }, + { url = "https://files.pythonhosted.org/packages/c2/fa/97de0d681e6d26fabe71968dbee06dd52819e9a22fdce5dac7256c31ed84/regex-2026.1.15-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:194312a14819d3e44628a44ed6fea6898fdbecb0550089d84c403475138d0a09", size = 812794, upload-time = "2026-01-14T23:15:58.916Z" }, + { url = "https://files.pythonhosted.org/packages/22/38/e752f94e860d429654aa2b1c51880bff8dfe8f084268258adf9151cf1f53/regex-2026.1.15-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fe2fda4110a3d0bc163c2e0664be44657431440722c5c5315c65155cab92f9e5", size = 781159, upload-time = "2026-01-14T23:16:00.817Z" }, + { url = "https://files.pythonhosted.org/packages/e9/a7/d739ffaef33c378fc888302a018d7f81080393d96c476b058b8c64fd2b0d/regex-2026.1.15-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:124dc36c85d34ef2d9164da41a53c1c8c122cfb1f6e1ec377a1f27ee81deb794", size = 795558, upload-time = "2026-01-14T23:16:03.267Z" }, + { url = "https://files.pythonhosted.org/packages/3e/c4/542876f9a0ac576100fc73e9c75b779f5c31e3527576cfc9cb3009dcc58a/regex-2026.1.15-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:a1774cd1981cd212506a23a14dba7fdeaee259f5deba2df6229966d9911e767a", size = 868427, upload-time = "2026-01-14T23:16:05.646Z" }, + { url = "https://files.pythonhosted.org/packages/fc/0f/d5655bea5b22069e32ae85a947aa564912f23758e112cdb74212848a1a1b/regex-2026.1.15-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:b5f7d8d2867152cdb625e72a530d2ccb48a3d199159144cbdd63870882fb6f80", size = 769939, upload-time = "2026-01-14T23:16:07.542Z" }, + { url = "https://files.pythonhosted.org/packages/20/06/7e18a4fa9d326daeda46d471a44ef94201c46eaa26dbbb780b5d92cbfdda/regex-2026.1.15-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:492534a0ab925d1db998defc3c302dae3616a2fc3fe2e08db1472348f096ddf2", size = 854753, upload-time = "2026-01-14T23:16:10.395Z" }, + { url = "https://files.pythonhosted.org/packages/3b/67/dc8946ef3965e166f558ef3b47f492bc364e96a265eb4a2bb3ca765c8e46/regex-2026.1.15-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c661fc820cfb33e166bf2450d3dadbda47c8d8981898adb9b6fe24e5e582ba60", size = 799559, upload-time = "2026-01-14T23:16:12.347Z" }, + { url = "https://files.pythonhosted.org/packages/a5/61/1bba81ff6d50c86c65d9fd84ce9699dd106438ee4cdb105bf60374ee8412/regex-2026.1.15-cp313-cp313t-win32.whl", hash = "sha256:99ad739c3686085e614bf77a508e26954ff1b8f14da0e3765ff7abbf7799f952", size = 268879, upload-time = "2026-01-14T23:16:14.049Z" }, + { url = "https://files.pythonhosted.org/packages/e9/5e/cef7d4c5fb0ea3ac5c775fd37db5747f7378b29526cc83f572198924ff47/regex-2026.1.15-cp313-cp313t-win_amd64.whl", hash = "sha256:32655d17905e7ff8ba5c764c43cb124e34a9245e45b83c22e81041e1071aee10", size = 280317, upload-time = "2026-01-14T23:16:15.718Z" }, + { url = "https://files.pythonhosted.org/packages/b4/52/4317f7a5988544e34ab57b4bde0f04944c4786128c933fb09825924d3e82/regex-2026.1.15-cp313-cp313t-win_arm64.whl", hash = "sha256:b2a13dd6a95e95a489ca242319d18fc02e07ceb28fa9ad146385194d95b3c829", size = 271551, upload-time = "2026-01-14T23:16:17.533Z" }, + { url = "https://files.pythonhosted.org/packages/52/0a/47fa888ec7cbbc7d62c5f2a6a888878e76169170ead271a35239edd8f0e8/regex-2026.1.15-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:d920392a6b1f353f4aa54328c867fec3320fa50657e25f64abf17af054fc97ac", size = 489170, upload-time = "2026-01-14T23:16:19.835Z" }, + { url = "https://files.pythonhosted.org/packages/ac/c4/d000e9b7296c15737c9301708e9e7fbdea009f8e93541b6b43bdb8219646/regex-2026.1.15-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:b5a28980a926fa810dbbed059547b02783952e2efd9c636412345232ddb87ff6", size = 291146, upload-time = "2026-01-14T23:16:21.541Z" }, + { url = "https://files.pythonhosted.org/packages/f9/b6/921cc61982e538682bdf3bdf5b2c6ab6b34368da1f8e98a6c1ddc503c9cf/regex-2026.1.15-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:621f73a07595d83f28952d7bd1e91e9d1ed7625fb7af0064d3516674ec93a2a2", size = 288986, upload-time = "2026-01-14T23:16:23.381Z" }, + { url = "https://files.pythonhosted.org/packages/ca/33/eb7383dde0bbc93f4fb9d03453aab97e18ad4024ac7e26cef8d1f0a2cff0/regex-2026.1.15-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3d7d92495f47567a9b1669c51fc8d6d809821849063d168121ef801bbc213846", size = 799098, upload-time = "2026-01-14T23:16:25.088Z" }, + { url = "https://files.pythonhosted.org/packages/27/56/b664dccae898fc8d8b4c23accd853f723bde0f026c747b6f6262b688029c/regex-2026.1.15-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8dd16fba2758db7a3780a051f245539c4451ca20910f5a5e6ea1c08d06d4a76b", size = 864980, upload-time = "2026-01-14T23:16:27.297Z" }, + { url = "https://files.pythonhosted.org/packages/16/40/0999e064a170eddd237bae9ccfcd8f28b3aa98a38bf727a086425542a4fc/regex-2026.1.15-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1e1808471fbe44c1a63e5f577a1d5f02fe5d66031dcbdf12f093ffc1305a858e", size = 911607, upload-time = "2026-01-14T23:16:29.235Z" }, + { url = "https://files.pythonhosted.org/packages/07/78/c77f644b68ab054e5a674fb4da40ff7bffb2c88df58afa82dbf86573092d/regex-2026.1.15-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0751a26ad39d4f2ade8fe16c59b2bf5cb19eb3d2cd543e709e583d559bd9efde", size = 803358, upload-time = "2026-01-14T23:16:31.369Z" }, + { url = "https://files.pythonhosted.org/packages/27/31/d4292ea8566eaa551fafc07797961c5963cf5235c797cc2ae19b85dfd04d/regex-2026.1.15-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0f0c7684c7f9ca241344ff95a1de964f257a5251968484270e91c25a755532c5", size = 775833, upload-time = "2026-01-14T23:16:33.141Z" }, + { url = "https://files.pythonhosted.org/packages/ce/b2/cff3bf2fea4133aa6fb0d1e370b37544d18c8350a2fa118c7e11d1db0e14/regex-2026.1.15-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:74f45d170a21df41508cb67165456538425185baaf686281fa210d7e729abc34", size = 788045, upload-time = "2026-01-14T23:16:35.005Z" }, + { url = "https://files.pythonhosted.org/packages/8d/99/2cb9b69045372ec877b6f5124bda4eb4253bc58b8fe5848c973f752bc52c/regex-2026.1.15-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:f1862739a1ffb50615c0fde6bae6569b5efbe08d98e59ce009f68a336f64da75", size = 859374, upload-time = "2026-01-14T23:16:36.919Z" }, + { url = "https://files.pythonhosted.org/packages/09/16/710b0a5abe8e077b1729a562d2f297224ad079f3a66dce46844c193416c8/regex-2026.1.15-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:453078802f1b9e2b7303fb79222c054cb18e76f7bdc220f7530fdc85d319f99e", size = 763940, upload-time = "2026-01-14T23:16:38.685Z" }, + { url = "https://files.pythonhosted.org/packages/dd/d1/7585c8e744e40eb3d32f119191969b91de04c073fca98ec14299041f6e7e/regex-2026.1.15-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:a30a68e89e5a218b8b23a52292924c1f4b245cb0c68d1cce9aec9bbda6e2c160", size = 850112, upload-time = "2026-01-14T23:16:40.646Z" }, + { url = "https://files.pythonhosted.org/packages/af/d6/43e1dd85df86c49a347aa57c1f69d12c652c7b60e37ec162e3096194a278/regex-2026.1.15-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:9479cae874c81bf610d72b85bb681a94c95722c127b55445285fb0e2c82db8e1", size = 789586, upload-time = "2026-01-14T23:16:42.799Z" }, + { url = "https://files.pythonhosted.org/packages/93/38/77142422f631e013f316aaae83234c629555729a9fbc952b8a63ac91462a/regex-2026.1.15-cp314-cp314-win32.whl", hash = "sha256:d639a750223132afbfb8f429c60d9d318aeba03281a5f1ab49f877456448dcf1", size = 271691, upload-time = "2026-01-14T23:16:44.671Z" }, + { url = "https://files.pythonhosted.org/packages/4a/a9/ab16b4649524ca9e05213c1cdbb7faa85cc2aa90a0230d2f796cbaf22736/regex-2026.1.15-cp314-cp314-win_amd64.whl", hash = "sha256:4161d87f85fa831e31469bfd82c186923070fc970b9de75339b68f0c75b51903", size = 280422, upload-time = "2026-01-14T23:16:46.607Z" }, + { url = "https://files.pythonhosted.org/packages/be/2a/20fd057bf3521cb4791f69f869635f73e0aaf2b9ad2d260f728144f9047c/regex-2026.1.15-cp314-cp314-win_arm64.whl", hash = "sha256:91c5036ebb62663a6b3999bdd2e559fd8456d17e2b485bf509784cd31a8b1705", size = 273467, upload-time = "2026-01-14T23:16:48.967Z" }, + { url = "https://files.pythonhosted.org/packages/ad/77/0b1e81857060b92b9cad239104c46507dd481b3ff1fa79f8e7f865aae38a/regex-2026.1.15-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:ee6854c9000a10938c79238de2379bea30c82e4925a371711af45387df35cab8", size = 492073, upload-time = "2026-01-14T23:16:51.154Z" }, + { url = "https://files.pythonhosted.org/packages/70/f3/f8302b0c208b22c1e4f423147e1913fd475ddd6230565b299925353de644/regex-2026.1.15-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2c2b80399a422348ce5de4fe40c418d6299a0fa2803dd61dc0b1a2f28e280fcf", size = 292757, upload-time = "2026-01-14T23:16:53.08Z" }, + { url = "https://files.pythonhosted.org/packages/bf/f0/ef55de2460f3b4a6da9d9e7daacd0cb79d4ef75c64a2af316e68447f0df0/regex-2026.1.15-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:dca3582bca82596609959ac39e12b7dad98385b4fefccb1151b937383cec547d", size = 291122, upload-time = "2026-01-14T23:16:55.383Z" }, + { url = "https://files.pythonhosted.org/packages/cf/55/bb8ccbacabbc3a11d863ee62a9f18b160a83084ea95cdfc5d207bfc3dd75/regex-2026.1.15-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ef71d476caa6692eea743ae5ea23cde3260677f70122c4d258ca952e5c2d4e84", size = 807761, upload-time = "2026-01-14T23:16:57.251Z" }, + { url = "https://files.pythonhosted.org/packages/8f/84/f75d937f17f81e55679a0509e86176e29caa7298c38bd1db7ce9c0bf6075/regex-2026.1.15-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c243da3436354f4af6c3058a3f81a97d47ea52c9bd874b52fd30274853a1d5df", size = 873538, upload-time = "2026-01-14T23:16:59.349Z" }, + { url = "https://files.pythonhosted.org/packages/b8/d9/0da86327df70349aa8d86390da91171bd3ca4f0e7c1d1d453a9c10344da3/regex-2026.1.15-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8355ad842a7c7e9e5e55653eade3b7d1885ba86f124dd8ab1f722f9be6627434", size = 915066, upload-time = "2026-01-14T23:17:01.607Z" }, + { url = "https://files.pythonhosted.org/packages/2a/5e/f660fb23fc77baa2a61aa1f1fe3a4eea2bbb8a286ddec148030672e18834/regex-2026.1.15-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f192a831d9575271a22d804ff1a5355355723f94f31d9eef25f0d45a152fdc1a", size = 812938, upload-time = "2026-01-14T23:17:04.366Z" }, + { url = "https://files.pythonhosted.org/packages/69/33/a47a29bfecebbbfd1e5cd3f26b28020a97e4820f1c5148e66e3b7d4b4992/regex-2026.1.15-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:166551807ec20d47ceaeec380081f843e88c8949780cd42c40f18d16168bed10", size = 781314, upload-time = "2026-01-14T23:17:06.378Z" }, + { url = "https://files.pythonhosted.org/packages/65/ec/7ec2bbfd4c3f4e494a24dec4c6943a668e2030426b1b8b949a6462d2c17b/regex-2026.1.15-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:f9ca1cbdc0fbfe5e6e6f8221ef2309988db5bcede52443aeaee9a4ad555e0dac", size = 795652, upload-time = "2026-01-14T23:17:08.521Z" }, + { url = "https://files.pythonhosted.org/packages/46/79/a5d8651ae131fe27d7c521ad300aa7f1c7be1dbeee4d446498af5411b8a9/regex-2026.1.15-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b30bcbd1e1221783c721483953d9e4f3ab9c5d165aa709693d3f3946747b1aea", size = 868550, upload-time = "2026-01-14T23:17:10.573Z" }, + { url = "https://files.pythonhosted.org/packages/06/b7/25635d2809664b79f183070786a5552dd4e627e5aedb0065f4e3cf8ee37d/regex-2026.1.15-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:2a8d7b50c34578d0d3bf7ad58cde9652b7d683691876f83aedc002862a35dc5e", size = 769981, upload-time = "2026-01-14T23:17:12.871Z" }, + { url = "https://files.pythonhosted.org/packages/16/8b/fc3fcbb2393dcfa4a6c5ffad92dc498e842df4581ea9d14309fcd3c55fb9/regex-2026.1.15-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9d787e3310c6a6425eb346be4ff2ccf6eece63017916fd77fe8328c57be83521", size = 854780, upload-time = "2026-01-14T23:17:14.837Z" }, + { url = "https://files.pythonhosted.org/packages/d0/38/dde117c76c624713c8a2842530be9c93ca8b606c0f6102d86e8cd1ce8bea/regex-2026.1.15-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:619843841e220adca114118533a574a9cd183ed8a28b85627d2844c500a2b0db", size = 799778, upload-time = "2026-01-14T23:17:17.369Z" }, + { url = "https://files.pythonhosted.org/packages/e3/0d/3a6cfa9ae99606afb612d8fb7a66b245a9d5ff0f29bb347c8a30b6ad561b/regex-2026.1.15-cp314-cp314t-win32.whl", hash = "sha256:e90b8db97f6f2c97eb045b51a6b2c5ed69cedd8392459e0642d4199b94fabd7e", size = 274667, upload-time = "2026-01-14T23:17:19.301Z" }, + { url = "https://files.pythonhosted.org/packages/5b/b2/297293bb0742fd06b8d8e2572db41a855cdf1cae0bf009b1cb74fe07e196/regex-2026.1.15-cp314-cp314t-win_amd64.whl", hash = "sha256:5ef19071f4ac9f0834793af85bd04a920b4407715624e40cb7a0631a11137cdf", size = 284386, upload-time = "2026-01-14T23:17:21.231Z" }, + { url = "https://files.pythonhosted.org/packages/95/e4/a3b9480c78cf8ee86626cb06f8d931d74d775897d44201ccb813097ae697/regex-2026.1.15-cp314-cp314t-win_arm64.whl", hash = "sha256:ca89c5e596fc05b015f27561b3793dc2fa0917ea0d7507eebb448efd35274a70", size = 274837, upload-time = "2026-01-14T23:17:23.146Z" }, +] + +[[package]] +name = "requests" +version = "2.32.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, ] [[package]] name = "ruff" -version = "0.13.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6e/1a/1f4b722862840295bcaba8c9e5261572347509548faaa99b2d57ee7bfe6a/ruff-0.13.0.tar.gz", hash = "sha256:5b4b1ee7eb35afae128ab94459b13b2baaed282b1fb0f472a73c82c996c8ae60", size = 5372863, upload-time = "2025-09-10T16:25:37.917Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ac/fe/6f87b419dbe166fd30a991390221f14c5b68946f389ea07913e1719741e0/ruff-0.13.0-py3-none-linux_armv6l.whl", hash = "sha256:137f3d65d58ee828ae136a12d1dc33d992773d8f7644bc6b82714570f31b2004", size = 12187826, upload-time = "2025-09-10T16:24:39.5Z" }, - { url = "https://files.pythonhosted.org/packages/e4/25/c92296b1fc36d2499e12b74a3fdb230f77af7bdf048fad7b0a62e94ed56a/ruff-0.13.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:21ae48151b66e71fd111b7d79f9ad358814ed58c339631450c66a4be33cc28b9", size = 12933428, upload-time = "2025-09-10T16:24:43.866Z" }, - { url = "https://files.pythonhosted.org/packages/44/cf/40bc7221a949470307d9c35b4ef5810c294e6cfa3caafb57d882731a9f42/ruff-0.13.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:64de45f4ca5441209e41742d527944635a05a6e7c05798904f39c85bafa819e3", size = 12095543, upload-time = "2025-09-10T16:24:46.638Z" }, - { url = "https://files.pythonhosted.org/packages/f1/03/8b5ff2a211efb68c63a1d03d157e924997ada87d01bebffbd13a0f3fcdeb/ruff-0.13.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2b2c653ae9b9d46e0ef62fc6fbf5b979bda20a0b1d2b22f8f7eb0cde9f4963b8", size = 12312489, upload-time = "2025-09-10T16:24:49.556Z" }, - { url = "https://files.pythonhosted.org/packages/37/fc/2336ef6d5e9c8d8ea8305c5f91e767d795cd4fc171a6d97ef38a5302dadc/ruff-0.13.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4cec632534332062bc9eb5884a267b689085a1afea9801bf94e3ba7498a2d207", size = 11991631, upload-time = "2025-09-10T16:24:53.439Z" }, - { url = "https://files.pythonhosted.org/packages/39/7f/f6d574d100fca83d32637d7f5541bea2f5e473c40020bbc7fc4a4d5b7294/ruff-0.13.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dcd628101d9f7d122e120ac7c17e0a0f468b19bc925501dbe03c1cb7f5415b24", size = 13720602, upload-time = "2025-09-10T16:24:56.392Z" }, - { url = "https://files.pythonhosted.org/packages/fd/c8/a8a5b81d8729b5d1f663348d11e2a9d65a7a9bd3c399763b1a51c72be1ce/ruff-0.13.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:afe37db8e1466acb173bb2a39ca92df00570e0fd7c94c72d87b51b21bb63efea", size = 14697751, upload-time = "2025-09-10T16:24:59.89Z" }, - { url = "https://files.pythonhosted.org/packages/57/f5/183ec292272ce7ec5e882aea74937f7288e88ecb500198b832c24debc6d3/ruff-0.13.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0f96a8d90bb258d7d3358b372905fe7333aaacf6c39e2408b9f8ba181f4b6ef2", size = 14095317, upload-time = "2025-09-10T16:25:03.025Z" }, - { url = "https://files.pythonhosted.org/packages/9f/8d/7f9771c971724701af7926c14dab31754e7b303d127b0d3f01116faef456/ruff-0.13.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94b5e3d883e4f924c5298e3f2ee0f3085819c14f68d1e5b6715597681433f153", size = 13144418, upload-time = "2025-09-10T16:25:06.272Z" }, - { url = "https://files.pythonhosted.org/packages/a8/a6/7985ad1778e60922d4bef546688cd8a25822c58873e9ff30189cfe5dc4ab/ruff-0.13.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03447f3d18479df3d24917a92d768a89f873a7181a064858ea90a804a7538991", size = 13370843, upload-time = "2025-09-10T16:25:09.965Z" }, - { url = "https://files.pythonhosted.org/packages/64/1c/bafdd5a7a05a50cc51d9f5711da704942d8dd62df3d8c70c311e98ce9f8a/ruff-0.13.0-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:fbc6b1934eb1c0033da427c805e27d164bb713f8e273a024a7e86176d7f462cf", size = 13321891, upload-time = "2025-09-10T16:25:12.969Z" }, - { url = "https://files.pythonhosted.org/packages/bc/3e/7817f989cb9725ef7e8d2cee74186bf90555279e119de50c750c4b7a72fe/ruff-0.13.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:a8ab6a3e03665d39d4a25ee199d207a488724f022db0e1fe4002968abdb8001b", size = 12119119, upload-time = "2025-09-10T16:25:16.621Z" }, - { url = "https://files.pythonhosted.org/packages/58/07/9df080742e8d1080e60c426dce6e96a8faf9a371e2ce22eef662e3839c95/ruff-0.13.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d2a5c62f8ccc6dd2fe259917482de7275cecc86141ee10432727c4816235bc41", size = 11961594, upload-time = "2025-09-10T16:25:19.49Z" }, - { url = "https://files.pythonhosted.org/packages/6a/f4/ae1185349197d26a2316840cb4d6c3fba61d4ac36ed728bf0228b222d71f/ruff-0.13.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:b7b85ca27aeeb1ab421bc787009831cffe6048faae08ad80867edab9f2760945", size = 12933377, upload-time = "2025-09-10T16:25:22.371Z" }, - { url = "https://files.pythonhosted.org/packages/b6/39/e776c10a3b349fc8209a905bfb327831d7516f6058339a613a8d2aaecacd/ruff-0.13.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:79ea0c44a3032af768cabfd9616e44c24303af49d633b43e3a5096e009ebe823", size = 13418555, upload-time = "2025-09-10T16:25:25.681Z" }, - { url = "https://files.pythonhosted.org/packages/46/09/dca8df3d48e8b3f4202bf20b1658898e74b6442ac835bfe2c1816d926697/ruff-0.13.0-py3-none-win32.whl", hash = "sha256:4e473e8f0e6a04e4113f2e1de12a5039579892329ecc49958424e5568ef4f768", size = 12141613, upload-time = "2025-09-10T16:25:28.664Z" }, - { url = "https://files.pythonhosted.org/packages/61/21/0647eb71ed99b888ad50e44d8ec65d7148babc0e242d531a499a0bbcda5f/ruff-0.13.0-py3-none-win_amd64.whl", hash = "sha256:48e5c25c7a3713eea9ce755995767f4dcd1b0b9599b638b12946e892123d1efb", size = 13258250, upload-time = "2025-09-10T16:25:31.773Z" }, - { url = "https://files.pythonhosted.org/packages/e1/a3/03216a6a86c706df54422612981fb0f9041dbb452c3401501d4a22b942c9/ruff-0.13.0-py3-none-win_arm64.whl", hash = "sha256:ab80525317b1e1d38614addec8ac954f1b3e662de9d59114ecbf771d00cf613e", size = 12312357, upload-time = "2025-09-10T16:25:35.595Z" }, +version = "0.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c8/39/5cee96809fbca590abea6b46c6d1c586b49663d1d2830a751cc8fc42c666/ruff-0.15.0.tar.gz", hash = "sha256:6bdea47cdbea30d40f8f8d7d69c0854ba7c15420ec75a26f463290949d7f7e9a", size = 4524893, upload-time = "2026-02-03T17:53:35.357Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bc/88/3fd1b0aa4b6330d6aaa63a285bc96c9f71970351579152d231ed90914586/ruff-0.15.0-py3-none-linux_armv6l.whl", hash = "sha256:aac4ebaa612a82b23d45964586f24ae9bc23ca101919f5590bdb368d74ad5455", size = 10354332, upload-time = "2026-02-03T17:52:54.892Z" }, + { url = "https://files.pythonhosted.org/packages/72/f6/62e173fbb7eb75cc29fe2576a1e20f0a46f671a2587b5f604bfb0eaf5f6f/ruff-0.15.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:dcd4be7cc75cfbbca24a98d04d0b9b36a270d0833241f776b788d59f4142b14d", size = 10767189, upload-time = "2026-02-03T17:53:19.778Z" }, + { url = "https://files.pythonhosted.org/packages/99/e4/968ae17b676d1d2ff101d56dc69cf333e3a4c985e1ec23803df84fc7bf9e/ruff-0.15.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d747e3319b2bce179c7c1eaad3d884dc0a199b5f4d5187620530adf9105268ce", size = 10075384, upload-time = "2026-02-03T17:53:29.241Z" }, + { url = "https://files.pythonhosted.org/packages/a2/bf/9843c6044ab9e20af879c751487e61333ca79a2c8c3058b15722386b8cae/ruff-0.15.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:650bd9c56ae03102c51a5e4b554d74d825ff3abe4db22b90fd32d816c2e90621", size = 10481363, upload-time = "2026-02-03T17:52:43.332Z" }, + { url = "https://files.pythonhosted.org/packages/55/d9/4ada5ccf4cd1f532db1c8d44b6f664f2208d3d93acbeec18f82315e15193/ruff-0.15.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a6664b7eac559e3048223a2da77769c2f92b43a6dfd4720cef42654299a599c9", size = 10187736, upload-time = "2026-02-03T17:53:00.522Z" }, + { url = "https://files.pythonhosted.org/packages/86/e2/f25eaecd446af7bb132af0a1d5b135a62971a41f5366ff41d06d25e77a91/ruff-0.15.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f811f97b0f092b35320d1556f3353bf238763420ade5d9e62ebd2b73f2ff179", size = 10968415, upload-time = "2026-02-03T17:53:15.705Z" }, + { url = "https://files.pythonhosted.org/packages/e7/dc/f06a8558d06333bf79b497d29a50c3a673d9251214e0d7ec78f90b30aa79/ruff-0.15.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:761ec0a66680fab6454236635a39abaf14198818c8cdf691e036f4bc0f406b2d", size = 11809643, upload-time = "2026-02-03T17:53:23.031Z" }, + { url = "https://files.pythonhosted.org/packages/dd/45/0ece8db2c474ad7df13af3a6d50f76e22a09d078af63078f005057ca59eb/ruff-0.15.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:940f11c2604d317e797b289f4f9f3fa5555ffe4fb574b55ed006c3d9b6f0eb78", size = 11234787, upload-time = "2026-02-03T17:52:46.432Z" }, + { url = "https://files.pythonhosted.org/packages/8a/d9/0e3a81467a120fd265658d127db648e4d3acfe3e4f6f5d4ea79fac47e587/ruff-0.15.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bcbca3d40558789126da91d7ef9a7c87772ee107033db7191edefa34e2c7f1b4", size = 11112797, upload-time = "2026-02-03T17:52:49.274Z" }, + { url = "https://files.pythonhosted.org/packages/b2/cb/8c0b3b0c692683f8ff31351dfb6241047fa873a4481a76df4335a8bff716/ruff-0.15.0-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:9a121a96db1d75fa3eb39c4539e607f628920dd72ff1f7c5ee4f1b768ac62d6e", size = 11033133, upload-time = "2026-02-03T17:53:33.105Z" }, + { url = "https://files.pythonhosted.org/packages/f8/5e/23b87370cf0f9081a8c89a753e69a4e8778805b8802ccfe175cc410e50b9/ruff-0.15.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:5298d518e493061f2eabd4abd067c7e4fb89e2f63291c94332e35631c07c3662", size = 10442646, upload-time = "2026-02-03T17:53:06.278Z" }, + { url = "https://files.pythonhosted.org/packages/e1/9a/3c94de5ce642830167e6d00b5c75aacd73e6347b4c7fc6828699b150a5ee/ruff-0.15.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:afb6e603d6375ff0d6b0cee563fa21ab570fd15e65c852cb24922cef25050cf1", size = 10195750, upload-time = "2026-02-03T17:53:26.084Z" }, + { url = "https://files.pythonhosted.org/packages/30/15/e396325080d600b436acc970848d69df9c13977942fb62bb8722d729bee8/ruff-0.15.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:77e515f6b15f828b94dc17d2b4ace334c9ddb7d9468c54b2f9ed2b9c1593ef16", size = 10676120, upload-time = "2026-02-03T17:53:09.363Z" }, + { url = "https://files.pythonhosted.org/packages/8d/c9/229a23d52a2983de1ad0fb0ee37d36e0257e6f28bfd6b498ee2c76361874/ruff-0.15.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:6f6e80850a01eb13b3e42ee0ebdf6e4497151b48c35051aab51c101266d187a3", size = 11201636, upload-time = "2026-02-03T17:52:57.281Z" }, + { url = "https://files.pythonhosted.org/packages/6f/b0/69adf22f4e24f3677208adb715c578266842e6e6a3cc77483f48dd999ede/ruff-0.15.0-py3-none-win32.whl", hash = "sha256:238a717ef803e501b6d51e0bdd0d2c6e8513fe9eec14002445134d3907cd46c3", size = 10465945, upload-time = "2026-02-03T17:53:12.591Z" }, + { url = "https://files.pythonhosted.org/packages/51/ad/f813b6e2c97e9b4598be25e94a9147b9af7e60523b0cb5d94d307c15229d/ruff-0.15.0-py3-none-win_amd64.whl", hash = "sha256:dd5e4d3301dc01de614da3cdffc33d4b1b96fb89e45721f1598e5532ccf78b18", size = 11564657, upload-time = "2026-02-03T17:52:51.893Z" }, + { url = "https://files.pythonhosted.org/packages/f6/b0/2d823f6e77ebe560f4e397d078487e8d52c1516b331e3521bc75db4272ca/ruff-0.15.0-py3-none-win_arm64.whl", hash = "sha256:c480d632cc0ca3f0727acac8b7d053542d9e114a462a145d0b00e7cd658c515a", size = 10865753, upload-time = "2026-02-03T17:53:03.014Z" }, ] [[package]] @@ -1106,6 +2071,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/dd/60/d384dbae5d4756e33f1750fa3472303de2c827011907a64e213e114d0556/segtok-1.5.11-py3-none-any.whl", hash = "sha256:910616b76198c3141b2772df530270d3b706e42ae69a5b30ef115c7bd5d1501a", size = 24332, upload-time = "2021-12-15T21:56:12.508Z" }, ] +[[package]] +name = "setuptools" +version = "82.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/f3/748f4d6f65d1756b9ae577f329c951cda23fb900e4de9f70900ced962085/setuptools-82.0.0.tar.gz", hash = "sha256:22e0a2d69474c6ae4feb01951cb69d515ed23728cf96d05513d36e42b62b37cb", size = 1144893, upload-time = "2026-02-08T15:08:40.206Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/c6/76dc613121b793286a3f91621d7b75a2b493e0390ddca50f11993eadf192/setuptools-82.0.0-py3-none-any.whl", hash = "sha256:70b18734b607bd1da571d097d236cfcfacaf01de45717d59e6e04b96877532e0", size = 1003468, upload-time = "2026-02-08T15:08:38.723Z" }, +] + [[package]] name = "six" version = "1.17.0" @@ -1115,6 +2089,157 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, ] +[[package]] +name = "smart-open" +version = "7.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/67/9a/0a7acb748b86e2922982366d780ca4b16c33f7246fa5860d26005c97e4f3/smart_open-7.5.0.tar.gz", hash = "sha256:f394b143851d8091011832ac8113ea4aba6b92e6c35f6e677ddaaccb169d7cb9", size = 53920, upload-time = "2025-11-08T21:38:40.698Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/95/bc978be7ea0babf2fb48a414b6afaad414c6a9e8b1eafc5b8a53c030381a/smart_open-7.5.0-py3-none-any.whl", hash = "sha256:87e695c5148bbb988f15cec00971602765874163be85acb1c9fb8abc012e6599", size = 63940, upload-time = "2025-11-08T21:38:39.024Z" }, +] + +[[package]] +name = "spacy" +version = "3.8.11" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "catalogue" }, + { name = "cymem" }, + { name = "jinja2" }, + { name = "murmurhash" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "packaging" }, + { name = "preshed" }, + { name = "pydantic" }, + { name = "requests" }, + { name = "setuptools" }, + { name = "spacy-legacy" }, + { name = "spacy-loggers" }, + { name = "srsly" }, + { name = "thinc" }, + { name = "tqdm" }, + { name = "typer-slim" }, + { name = "wasabi" }, + { name = "weasel" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/59/9f/424244b0e2656afc9ff82fb7a96931a47397bfce5ba382213827b198312a/spacy-3.8.11.tar.gz", hash = "sha256:54e1e87b74a2f9ea807ffd606166bf29ac45e2bd81ff7f608eadc7b05787d90d", size = 1326804, upload-time = "2025-11-17T20:40:03.079Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/63/f23db7119e0bb7740d74eff4583543824be84e7c0aad1c87683b8f40a17e/spacy-3.8.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f9cc7f775cfc41ccb8be63bd6258a1ec4613d4ad3859f2ba2c079f34240b21f6", size = 6499016, upload-time = "2025-11-17T20:38:22.359Z" }, + { url = "https://files.pythonhosted.org/packages/5d/e4/e8c0f0561e8b29b4f38ba3d491fca427faa750765df3e27850036af28762/spacy-3.8.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:be9d665be8581926fba4303543ba189d34e8517803052551b000cf1a1af33b87", size = 6159121, upload-time = "2025-11-17T20:38:24.85Z" }, + { url = "https://files.pythonhosted.org/packages/15/7a/7ce7320f2a384023240fad0e6b7ffb2e3717ae4cc09ec0770706fd20c419/spacy-3.8.11-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:06e46ad776a1b20cc6296fe04890dea8a7b4e4653d7e8c143dd4a707f7ae2670", size = 30763429, upload-time = "2025-11-17T20:38:27.001Z" }, + { url = "https://files.pythonhosted.org/packages/db/36/b16df8f5ba8d5fc3d2b23f004eb55f3edf4f3345e743efdd560b6b20faf8/spacy-3.8.11-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e1b91199926eb9de507f7bfc63090b17ee9a12663bcfc76357560c2c7ef4750a", size = 31002535, upload-time = "2025-11-17T20:38:30.115Z" }, + { url = "https://files.pythonhosted.org/packages/6e/be/58183313f1401fff896d3dd8f8da977847fb1c205a2c2a8a7030e81da265/spacy-3.8.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a1d4c506adcbefd19ead59daca2e0e61ce669ff35372cc9c23aae1b292c57f94", size = 31033341, upload-time = "2025-11-17T20:38:33.06Z" }, + { url = "https://files.pythonhosted.org/packages/94/08/d490ed3a4ea070734c58cf1f2e3e6081a20630067bca2c58d5dbcfb36558/spacy-3.8.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d885a2bf427c854c5a5f1dda7451924a1f2c036aefaa2946c741201ff05a915a", size = 31882346, upload-time = "2025-11-17T20:38:35.596Z" }, + { url = "https://files.pythonhosted.org/packages/79/38/e64856b3f768754def0f5dc4c5fb3f692d96a193eec7e2eee03d37c233b6/spacy-3.8.11-cp310-cp310-win_amd64.whl", hash = "sha256:909d12ff2365c2e7ebf0258ddc566d2b361ef1fd2e7684ce1af5f7022111e366", size = 15346864, upload-time = "2025-11-17T20:38:37.95Z" }, + { url = "https://files.pythonhosted.org/packages/74/d3/0c795e6f31ee3535b6e70d08e89fc22247b95b61f94fc8334a01d39bf871/spacy-3.8.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a12d83e8bfba07563300ae5e0086548e41aa4bfe3734c97dda87e0eec813df0d", size = 6487958, upload-time = "2025-11-17T20:38:40.378Z" }, + { url = "https://files.pythonhosted.org/packages/4e/2a/83ca9b4d0a2b31adcf0ced49fa667212d12958f75d4e238618a60eb50b10/spacy-3.8.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e07a50b69500ef376326545353a470f00d1ed7203c76341b97242af976e3681a", size = 6148078, upload-time = "2025-11-17T20:38:42.524Z" }, + { url = "https://files.pythonhosted.org/packages/2c/f0/ff520df18a6152ba2dbf808c964014308e71a48feb4c7563f2a6cd6e668d/spacy-3.8.11-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:718b7bb5e83c76cb841ed6e407f7b40255d0b46af7101a426c20e04af3afd64e", size = 32056451, upload-time = "2025-11-17T20:38:44.92Z" }, + { url = "https://files.pythonhosted.org/packages/9d/3a/6c44c0b9b6a70595888b8d021514ded065548a5b10718ac253bd39f9fd73/spacy-3.8.11-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f860f9d51c1aeb2d61852442b232576e4ca4d239cb3d1b40ac452118b8eb2c68", size = 32302908, upload-time = "2025-11-17T20:38:47.672Z" }, + { url = "https://files.pythonhosted.org/packages/db/77/00e99e00efd4c2456772befc48400c2e19255140660d663e16b6924a0f2e/spacy-3.8.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ff8d928ce70d751b7bb27f60ee5e3a308216efd4ab4517291e6ff05d9b194840", size = 32280936, upload-time = "2025-11-17T20:38:50.893Z" }, + { url = "https://files.pythonhosted.org/packages/d8/da/692b51e9e5be2766d2d1fb9a7c8122cfd99c337570e621f09c40ce94ad17/spacy-3.8.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3f3cb91d7d42fafd92b8d5bf9f696571170d2f0747f85724a2c5b997753e33c9", size = 33117270, upload-time = "2025-11-17T20:38:53.596Z" }, + { url = "https://files.pythonhosted.org/packages/9b/13/a542ac9b61d071f3328fda1fd8087b523fb7a4f2c340010bc70b1f762485/spacy-3.8.11-cp311-cp311-win_amd64.whl", hash = "sha256:745c190923584935272188c604e0cc170f4179aace1025814a25d92ee90cf3de", size = 15348350, upload-time = "2025-11-17T20:38:56.833Z" }, + { url = "https://files.pythonhosted.org/packages/23/53/975c16514322f6385d6caa5929771613d69f5458fb24f03e189ba533f279/spacy-3.8.11-cp311-cp311-win_arm64.whl", hash = "sha256:27535d81d9dee0483b66660cadd93d14c1668f55e4faf4386aca4a11a41a8b97", size = 14701913, upload-time = "2025-11-17T20:38:59.507Z" }, + { url = "https://files.pythonhosted.org/packages/51/fb/01eadf4ba70606b3054702dc41fc2ccf7d70fb14514b3cd57f0ff78ebea8/spacy-3.8.11-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aa1ee8362074c30098feaaf2dd888c829a1a79c4311eec1b117a0a61f16fa6dd", size = 6073726, upload-time = "2025-11-17T20:39:01.679Z" }, + { url = "https://files.pythonhosted.org/packages/3a/f8/07b03a2997fc2621aaeafae00af50f55522304a7da6926b07027bb6d0709/spacy-3.8.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:75a036d04c2cf11d6cb566c0a689860cc5a7a75b439e8fea1b3a6b673dabf25d", size = 5724702, upload-time = "2025-11-17T20:39:03.486Z" }, + { url = "https://files.pythonhosted.org/packages/13/0c/c4fa0f379dbe3258c305d2e2df3760604a9fcd71b34f8f65c23e43f4cf55/spacy-3.8.11-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cb599d2747d4a59a5f90e8a453c149b13db382a8297925cf126333141dbc4f7", size = 32727774, upload-time = "2025-11-17T20:39:05.894Z" }, + { url = "https://files.pythonhosted.org/packages/ce/8e/6a4ba82bed480211ebdf5341b0f89e7271b454307525ac91b5e447825914/spacy-3.8.11-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:94632e302ad2fb79dc285bf1e9e4d4a178904d5c67049e0e02b7fb4a77af85c4", size = 33215053, upload-time = "2025-11-17T20:39:08.588Z" }, + { url = "https://files.pythonhosted.org/packages/a6/bc/44d863d248e9d7358c76a0aa8b3f196b8698df520650ed8de162e18fbffb/spacy-3.8.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aeca6cf34009d48cda9fb1bbfb532469e3d643817241a73e367b34ab99a5806f", size = 32074195, upload-time = "2025-11-17T20:39:11.601Z" }, + { url = "https://files.pythonhosted.org/packages/6f/7d/0b115f3f16e1dd2d3f99b0f89497867fc11c41aed94f4b7a4367b4b54136/spacy-3.8.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:368a79b8df925b15d89dccb5e502039446fb2ce93cf3020e092d5b962c3349b9", size = 32996143, upload-time = "2025-11-17T20:39:14.705Z" }, + { url = "https://files.pythonhosted.org/packages/7d/48/7e9581b476df76aaf9ee182888d15322e77c38b0bbbd5e80160ba0bddd4c/spacy-3.8.11-cp312-cp312-win_amd64.whl", hash = "sha256:88d65941a87f58d75afca1785bd64d01183a92f7269dcbcf28bd9d6f6a77d1a7", size = 14217511, upload-time = "2025-11-17T20:39:17.316Z" }, + { url = "https://files.pythonhosted.org/packages/7b/1f/307a16f32f90aa5ee7ad8d29ff8620a57132b80a4c8c536963d46d192e1a/spacy-3.8.11-cp312-cp312-win_arm64.whl", hash = "sha256:97b865d6d3658e2ab103a67d6c8a2d678e193e84a07f40d9938565b669ceee39", size = 13614446, upload-time = "2025-11-17T20:39:19.748Z" }, + { url = "https://files.pythonhosted.org/packages/ed/5c/3f07cff8bc478fcf48a915ca9fe8637486a1ec676587ed3e6fd775423301/spacy-3.8.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ea4adeb399636059925be085c5bb852c1f3a2ebe1c2060332cbad6257d223bbc", size = 6051355, upload-time = "2025-11-17T20:39:22.243Z" }, + { url = "https://files.pythonhosted.org/packages/6d/44/4671e8098b62befec69c7848538a0824086559f74065284bbd57a5747781/spacy-3.8.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dd785e6bd85a58fa037da0c18fcd7250e2daecdfc30464d3882912529d1ad588", size = 5700468, upload-time = "2025-11-17T20:39:23.87Z" }, + { url = "https://files.pythonhosted.org/packages/0c/98/5708bdfb39f94af0655568e14d953886117e18bd04c3aa3ab5ff1a60ea89/spacy-3.8.11-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:598c177054eb6196deed03cac6fb7a3229f4789719ad0c9f7483f9491e375749", size = 32521877, upload-time = "2025-11-17T20:39:26.291Z" }, + { url = "https://files.pythonhosted.org/packages/c6/1f/731beb48f2c7415a71e2f655876fea8a0b3a6798be3d4d51b794f939623d/spacy-3.8.11-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a5a449ed3f2d03399481870b776f3ec61f2b831812d63dc1acedf6da70e5ab03", size = 32848355, upload-time = "2025-11-17T20:39:28.971Z" }, + { url = "https://files.pythonhosted.org/packages/47/6b/f3d131d3f9bb1c7de4f355a12adcd0a5fa77f9f624711ddd0f19c517e88b/spacy-3.8.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a6c35c2cb93bade9b7360d1f9db608a066246a41301bb579309efb50764ba55b", size = 31764944, upload-time = "2025-11-17T20:39:31.788Z" }, + { url = "https://files.pythonhosted.org/packages/72/bf/37ea8134667a4f2787b5f0e0146f2e8df1fb36ab67d598ad06eb5ed2e7db/spacy-3.8.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0156ae575b20290021573faa1fed8a82b11314e9a1c28f034713359a5240a325", size = 32718517, upload-time = "2025-11-17T20:39:35.286Z" }, + { url = "https://files.pythonhosted.org/packages/79/fe/436435dfa93cc355ed511f21cf3cda5302b7aa29716457317eb07f1cf2da/spacy-3.8.11-cp313-cp313-win_amd64.whl", hash = "sha256:6f39cf36f86bd6a8882076f86ca80f246c73aa41d7ebc8679fbbe41b6f8ec045", size = 14211913, upload-time = "2025-11-17T20:39:37.906Z" }, + { url = "https://files.pythonhosted.org/packages/c8/23/f89cfa51f54aa5e9c6c7a37f8bf4952d678f0902a5e1d81dfda33a94bfb2/spacy-3.8.11-cp313-cp313-win_arm64.whl", hash = "sha256:9a7151eee0814a5ced36642b42b1ecc8f98ac7225f3e378fb9f862ffbe84b8bf", size = 13605169, upload-time = "2025-11-17T20:39:40.455Z" }, + { url = "https://files.pythonhosted.org/packages/d7/78/ddeb09116b593f3cccc7eb489a713433076b11cf8cdfb98aec641b73a2c2/spacy-3.8.11-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:43c24d19a3f85bde0872935294a31fd9b3a6db3f92bb2b75074177cd3acec03f", size = 6067734, upload-time = "2025-11-17T20:39:42.629Z" }, + { url = "https://files.pythonhosted.org/packages/65/bb/1bb630250dc70e00fa3821879c6e2cb65c19425aba38840d3484061285c1/spacy-3.8.11-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:b6158c21da57b8373d2d1afb2b73977c4bc4235d2563e7788d44367fc384939a", size = 5732963, upload-time = "2025-11-17T20:39:44.872Z" }, + { url = "https://files.pythonhosted.org/packages/7a/56/c58071b3db23932ab2b934af3462a958e7edf472da9668e4869fe2a2199e/spacy-3.8.11-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1c0bd1bde1d91f1d7a44774ca4ca3fcf064946b72599a8eb34c25e014362ace1", size = 32447290, upload-time = "2025-11-17T20:39:47.392Z" }, + { url = "https://files.pythonhosted.org/packages/34/eb/d3947efa2b46848372e89ced8371671d77219612a3eebef15db5690aa4d2/spacy-3.8.11-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:99b767c41a772e544cf2d48e0808764f42f17eb2fd6188db4a729922ff7f0c1e", size = 32488011, upload-time = "2025-11-17T20:39:50.408Z" }, + { url = "https://files.pythonhosted.org/packages/04/9e/8c6c01558b62388557247e553e48874f52637a5648b957ed01fbd628391d/spacy-3.8.11-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a3c500f04c164e4366a1163a61bf39fd50f0c63abdb1fc17991281ec52a54ab4", size = 31731340, upload-time = "2025-11-17T20:39:53.221Z" }, + { url = "https://files.pythonhosted.org/packages/23/1f/21812ec34b187ef6ba223389760dfea09bbe27d2b84b553c5205576b4ac2/spacy-3.8.11-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a2bfe45c0c1530eaabc68f5434c52b1be8df10d5c195c54d4dc2e70cea97dc65", size = 32478557, upload-time = "2025-11-17T20:39:55.826Z" }, + { url = "https://files.pythonhosted.org/packages/f3/16/a0c9174a232dfe7b48281c05364957e2c6d0f80ef26b67ce8d28a49c2d91/spacy-3.8.11-cp314-cp314-win_amd64.whl", hash = "sha256:45d0bbc8442d18dcea9257be0d1ab26e884067e038b1fa133405bf2f20c74edf", size = 14396041, upload-time = "2025-11-17T20:39:58.557Z" }, + { url = "https://files.pythonhosted.org/packages/aa/d0/a6aad5b73d523e4686474b0cfcf46f37f3d7a18765be5c1f56c1dcee4c18/spacy-3.8.11-cp314-cp314-win_arm64.whl", hash = "sha256:90a12961ecc44e0195fd42db9f0ce4aade17e6fe03f8ab98d4549911d9e6f992", size = 13823760, upload-time = "2025-11-17T20:40:00.831Z" }, +] + +[[package]] +name = "spacy-legacy" +version = "3.0.12" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d9/79/91f9d7cc8db5642acad830dcc4b49ba65a7790152832c4eceb305e46d681/spacy-legacy-3.0.12.tar.gz", hash = "sha256:b37d6e0c9b6e1d7ca1cf5bc7152ab64a4c4671f59c85adaf7a3fcb870357a774", size = 23806, upload-time = "2023-01-23T09:04:15.104Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/55/12e842c70ff8828e34e543a2c7176dac4da006ca6901c9e8b43efab8bc6b/spacy_legacy-3.0.12-py2.py3-none-any.whl", hash = "sha256:476e3bd0d05f8c339ed60f40986c07387c0a71479245d6d0f4298dbd52cda55f", size = 29971, upload-time = "2023-01-23T09:04:13.45Z" }, +] + +[[package]] +name = "spacy-loggers" +version = "1.0.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/67/3d/926db774c9c98acf66cb4ed7faf6c377746f3e00b84b700d0868b95d0712/spacy-loggers-1.0.5.tar.gz", hash = "sha256:d60b0bdbf915a60e516cc2e653baeff946f0cfc461b452d11a4d5458c6fe5f24", size = 20811, upload-time = "2023-09-11T12:26:52.323Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/78/d1a1a026ef3af911159398c939b1509d5c36fe524c7b644f34a5146c4e16/spacy_loggers-1.0.5-py3-none-any.whl", hash = "sha256:196284c9c446cc0cdb944005384270d775fdeaf4f494d8e269466cfa497ef645", size = 22343, upload-time = "2023-09-11T12:26:50.586Z" }, +] + +[[package]] +name = "srsly" +version = "2.5.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "catalogue" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cf/77/5633c4ba65e3421b72b5b4bd93aa328360b351b3a1e5bf3c90eb224668e5/srsly-2.5.2.tar.gz", hash = "sha256:4092bc843c71b7595c6c90a0302a197858c5b9fe43067f62ae6a45bc3baa1c19", size = 492055, upload-time = "2025-11-17T14:11:02.543Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/58/ff9fd981b6e0fae261c48a3a941aeca5735eace4a137de883c8d69029bc7/srsly-2.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5491fe0683da900cd0c563538510c70a007380e1f6b29ebbb5225e7590981e2a", size = 655635, upload-time = "2025-11-17T14:09:41.167Z" }, + { url = "https://files.pythonhosted.org/packages/fd/a6/5b03c2a3b407caec3e7a5df61523154de3c5d36dc2f9328be91d3df368d5/srsly-2.5.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7375c2955935b73a6cad3851fe819c2f4ec506504afe7ca92b917555e6850fae", size = 653395, upload-time = "2025-11-17T14:09:42.827Z" }, + { url = "https://files.pythonhosted.org/packages/62/5d/1829a208d6d291c1ab3b81acd6e7a9f11984afc674ba2778e57984eee1a7/srsly-2.5.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0709a97ca463c1e85b03432c7d8028c82439f0248816707bafc553ffe66ec6f9", size = 1121898, upload-time = "2025-11-17T14:09:44.461Z" }, + { url = "https://files.pythonhosted.org/packages/c6/ce/71766be1488ce4058dc5eded6f5c0ce7cbb18ff7263f3cc718fe8b1033ad/srsly-2.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ea2ee0122312802ed531fee6de679d74ce99ce8addce49aff8d52ee670d810f8", size = 1122831, upload-time = "2025-11-17T14:09:46.011Z" }, + { url = "https://files.pythonhosted.org/packages/ab/5c/259e5b0e70c22c5bbd1327a79bb4b2d75efb38295475229e9310251c240e/srsly-2.5.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c2e9fc418585832c7ce01bfc7fe85b96afe11165eb9a31ff0ed52aa3e32ec08b", size = 1080719, upload-time = "2025-11-17T14:09:47.685Z" }, + { url = "https://files.pythonhosted.org/packages/32/c4/20face1113cfa436434c7c152b374edae1631177d0d44dd60103297ffe03/srsly-2.5.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3df0ef22d571e733b181ac488823b01f4dd13da23497f46956839c718e48f36b", size = 1092783, upload-time = "2025-11-17T14:09:49.295Z" }, + { url = "https://files.pythonhosted.org/packages/c1/aa/16c405cf830bf3d843a631d62681403eb44563e27a42648f417f40209045/srsly-2.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:a116b926dd24702f5474f6367d8083412f218ddf82d5c7b5831a7b2ba3d8bd55", size = 654041, upload-time = "2025-11-17T14:09:51.056Z" }, + { url = "https://files.pythonhosted.org/packages/59/6e/2e3d07b38c1c2e98487f0af92f93b392c6741062d85c65cdc18c7b77448a/srsly-2.5.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7e07babdcece2405b32c9eea25ef415749f214c889545e38965622bb66837ce", size = 655286, upload-time = "2025-11-17T14:09:52.468Z" }, + { url = "https://files.pythonhosted.org/packages/a1/e7/587bcade6b72f919133e587edf60e06039d88049aef9015cd0bdea8df189/srsly-2.5.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1718fe40b73e5cc73b14625233f57e15fb23643d146f53193e8fe653a49e9a0f", size = 653094, upload-time = "2025-11-17T14:09:53.837Z" }, + { url = "https://files.pythonhosted.org/packages/8d/24/5c3aabe292cb4eb906c828f2866624e3a65603ef0a73e964e486ff146b84/srsly-2.5.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d7b07e6103db7dd3199c0321935b0c8b9297fd6e018a66de97dc836068440111", size = 1141286, upload-time = "2025-11-17T14:09:55.535Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fe/2cbdcef2495e0c40dafb96da205d9ab3b9e59f64938277800bf65f923281/srsly-2.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f2dedf03b2ae143dd70039f097d128fb901deba2482c3a749ac0a985ac735aad", size = 1144667, upload-time = "2025-11-17T14:09:57.24Z" }, + { url = "https://files.pythonhosted.org/packages/91/7c/9a2c9d8141daf7b7a6f092c2be403421a0ab280e7c03cc62c223f37fdf47/srsly-2.5.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9d5be1d8b79a4c4180073461425cb49c8924a184ab49d976c9c81a7bf87731d9", size = 1103935, upload-time = "2025-11-17T14:09:58.576Z" }, + { url = "https://files.pythonhosted.org/packages/f1/ad/8ae727430368fedbb1a7fa41b62d7a86237558bc962c5c5a9aa8bfa82548/srsly-2.5.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c8e42d6bcddda2e6fc1a8438cc050c4a36d0e457a63bcc7117d23c5175dfedec", size = 1117985, upload-time = "2025-11-17T14:10:00.348Z" }, + { url = "https://files.pythonhosted.org/packages/60/69/d6afaef1a8d5192fd802752115c7c3cc104493a7d604b406112b8bc2b610/srsly-2.5.2-cp311-cp311-win_amd64.whl", hash = "sha256:e7362981e687eead00248525c3ef3b8ddd95904c93362c481988d91b26b6aeef", size = 654148, upload-time = "2025-11-17T14:10:01.772Z" }, + { url = "https://files.pythonhosted.org/packages/8f/1c/21f658d98d602a559491b7886c7ca30245c2cd8987ff1b7709437c0f74b1/srsly-2.5.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6f92b4f883e6be4ca77f15980b45d394d310f24903e25e1b2c46df783c7edcce", size = 656161, upload-time = "2025-11-17T14:10:03.181Z" }, + { url = "https://files.pythonhosted.org/packages/2f/a2/bc6fd484ed703857043ae9abd6c9aea9152f9480a6961186ee6c1e0c49e8/srsly-2.5.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ac4790a54b00203f1af5495b6b8ac214131139427f30fcf05cf971dde81930eb", size = 653237, upload-time = "2025-11-17T14:10:04.636Z" }, + { url = "https://files.pythonhosted.org/packages/ab/ea/e3895da29a15c8d325e050ad68a0d1238eece1d2648305796adf98dcba66/srsly-2.5.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ce5c6b016050857a7dd365c9dcdd00d96e7ac26317cfcb175db387e403de05bf", size = 1174418, upload-time = "2025-11-17T14:10:05.945Z" }, + { url = "https://files.pythonhosted.org/packages/a6/a5/21996231f53ee97191d0746c3a672ba33a4d86a19ffad85a1c0096c91c5f/srsly-2.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:539c6d0016e91277b5e9be31ebed03f03c32580d49c960e4a92c9003baecf69e", size = 1183089, upload-time = "2025-11-17T14:10:07.335Z" }, + { url = "https://files.pythonhosted.org/packages/7b/df/eb17aa8e4a828e8df7aa7dc471295529d9126e6b710f1833ebe0d8568a8e/srsly-2.5.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9f24b2c4f4c29da04083f09158543eb3f8893ba0ac39818693b3b259ee8044f0", size = 1122594, upload-time = "2025-11-17T14:10:08.899Z" }, + { url = "https://files.pythonhosted.org/packages/80/74/1654a80e6c8ec3ee32370ea08a78d3651e0ba1c4d6e6be31c9efdb9a2d10/srsly-2.5.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d34675047460a3f6999e43478f40d9b43917ea1e93a75c41d05bf7648f3e872d", size = 1139594, upload-time = "2025-11-17T14:10:10.286Z" }, + { url = "https://files.pythonhosted.org/packages/73/aa/8393344ca7f0e81965febba07afc5cad68335ed0426408d480b861ab915b/srsly-2.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:81fd133ba3c66c07f0e3a889d2b4c852984d71ea833a665238a9d47d8e051ba5", size = 654750, upload-time = "2025-11-17T14:10:11.637Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c5/dc29e65419692444253ea549106be156c5911041f16791f3b62fb90c14f2/srsly-2.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d976d6ae8e66006797b919e3d58533dce64cd48a5447a8ff7277f9b0505b0185", size = 654723, upload-time = "2025-11-17T14:10:13.305Z" }, + { url = "https://files.pythonhosted.org/packages/80/8c/8111e7e8c766b47b5a5f9864f27f532cf6bb92837a3e277eb297170bd6af/srsly-2.5.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:24f52ecd27409ea24ba116ee9f07a2bb1c4b9ba11284b32a0bf2ca364499d1c1", size = 651651, upload-time = "2025-11-17T14:10:14.907Z" }, + { url = "https://files.pythonhosted.org/packages/45/de/3f99d4e44af427ee09004df6586d0746640536b382c948f456be027c599b/srsly-2.5.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b0667ce1effb32a57522db10705db7c78d144547fcacc8a06df62c4bb7f96e", size = 1158012, upload-time = "2025-11-17T14:10:16.176Z" }, + { url = "https://files.pythonhosted.org/packages/c3/2f/66044ef5a10a487652913c1a7f32396cb0e9e32ecfc3fdc0a0bc0382e703/srsly-2.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:60782f6f79c340cdaf1ba7cbaa1d354a0f7c8f86b285f1e14e75edb51452895a", size = 1163258, upload-time = "2025-11-17T14:10:17.471Z" }, + { url = "https://files.pythonhosted.org/packages/74/6b/698834048672b52937e8cf09b554adb81b106c0492f9bc62e41e3b46a69b/srsly-2.5.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eec51abb1b58e1e6c689714104aeeba6290c40c0bfad0243b9b594df89f05881", size = 1112214, upload-time = "2025-11-17T14:10:18.679Z" }, + { url = "https://files.pythonhosted.org/packages/85/17/1efc70426be93d32a3c6c5c12d795eb266a9255d8b537fcb924a3de57fcb/srsly-2.5.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:76464e45f73afd20c2c34d2ef145bf788afc32e7d45f36f6393ed92a85189ed3", size = 1130687, upload-time = "2025-11-17T14:10:20.346Z" }, + { url = "https://files.pythonhosted.org/packages/e2/25/07f8c8a778bc0447ee15e37089b08af81b24fcc1d4a2c09eff4c3a79b241/srsly-2.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:009424a96d763951e4872b36ba38823f973bef094a1adbc11102e23e8d1ef429", size = 653128, upload-time = "2025-11-17T14:10:21.552Z" }, + { url = "https://files.pythonhosted.org/packages/39/03/3d248f538abc141d9c7ed1aa10e61506c0f95515a61066ee90e888f0cd8f/srsly-2.5.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a0911dcf1026f982bd8c5f73e1c43f1bc868416408fcbc1f3d99eb59475420c5", size = 659866, upload-time = "2025-11-17T14:10:22.811Z" }, + { url = "https://files.pythonhosted.org/packages/43/22/0fcff4c977ddfb32a6b10f33d904868b16ce655323756281f973c5a3449e/srsly-2.5.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:f0ff3ac2942aee44235ca3c7712fcbd6e0d1a092e10ee16e07cef459ed6d7f65", size = 655868, upload-time = "2025-11-17T14:10:24.036Z" }, + { url = "https://files.pythonhosted.org/packages/1b/c1/e158f26a5597ac31b0f306d2584411ec1f984058e8171d76c678bf439e96/srsly-2.5.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:78385fb75e1bf7b81ffde97555aee094d270a5e0ea66f8280f6e95f5bb508b3e", size = 1156753, upload-time = "2025-11-17T14:10:25.366Z" }, + { url = "https://files.pythonhosted.org/packages/d9/bc/2001cd27fd6ecdae79050cf6b655ca646dedc0b69a756e6a87993cc47314/srsly-2.5.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2e9943b70bd7655b9eefca77aab838c3b7acea00c9dd244fd218a43dc61c518b", size = 1157916, upload-time = "2025-11-17T14:10:26.705Z" }, + { url = "https://files.pythonhosted.org/packages/5c/dd/56f563c2d0cd76c8fd22fb9f1589f18af50b54d31dd3323ceb05fe7999b8/srsly-2.5.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7d235a2bb08f5240e47c6aba4d9688b228d830fbf4c858388d9c151a10039e6d", size = 1114582, upload-time = "2025-11-17T14:10:27.997Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e6/e155facc965a119e6f5d32b7e95082cadfb62cc5d97087d53db93f3a5a98/srsly-2.5.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ad94ee18b3042a6cdfdc022556e2ed9a7b52b876de86fe334c4d8ec58d59ecbc", size = 1129875, upload-time = "2025-11-17T14:10:29.295Z" }, + { url = "https://files.pythonhosted.org/packages/b6/3a/c12a4d556349c9f491b0a9d27968483f22934d2a02dfb14fb1d3a7d9b837/srsly-2.5.2-cp314-cp314-win_amd64.whl", hash = "sha256:6658467165d8fa4aec0f5f6e2da8fe977e087eaff13322b0ff20450f0d762cee", size = 658858, upload-time = "2025-11-17T14:10:30.612Z" }, + { url = "https://files.pythonhosted.org/packages/70/db/52510cbf478ab3ae8cb6c95aff3a499f2ded69df6d84df8a293630e9f10a/srsly-2.5.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:517e907792acf574979752ce33e7b15985c95d4ed7d8e38ee47f36063dc985ac", size = 666843, upload-time = "2025-11-17T14:10:32.082Z" }, + { url = "https://files.pythonhosted.org/packages/3d/da/4257b1d4c3eb005ecd135414398c033c13c4d3dffb715f63c3acd63d8d1a/srsly-2.5.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e5602797e6f87bf030b11ad356828142367c5c81e923303b5ff2a88dfb12d1e4", size = 663981, upload-time = "2025-11-17T14:10:33.542Z" }, + { url = "https://files.pythonhosted.org/packages/c6/f8/1ec5edd7299d8599def20fc3440372964f7c750022db8063e321747d1cf8/srsly-2.5.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3452306118f8604daaaac6d770ee8f910fca449e8f066dcc96a869b43ece5340", size = 1267808, upload-time = "2025-11-17T14:10:35.285Z" }, + { url = "https://files.pythonhosted.org/packages/3e/5c/4ef9782c9a3f331ef80e1ea8fc6fab50fc3d32ae61a494625d2c5f30cc4c/srsly-2.5.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e2d59f1ce00d73397a7f5b9fc33e76d17816ce051abe4eb920cec879d2a9d4f4", size = 1252838, upload-time = "2025-11-17T14:10:37.024Z" }, + { url = "https://files.pythonhosted.org/packages/39/da/d13cfc662d71eec3ccd4072433bf435bd2e11e1c5340150b4cc43fad46f4/srsly-2.5.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ebda3736651d33d92b17e26c525ba8d0b94d0ee379c9f92e8d937ba89dca8978", size = 1244558, upload-time = "2025-11-17T14:10:38.73Z" }, + { url = "https://files.pythonhosted.org/packages/26/50/92bf62dfb19532b823ef52251bb7003149e1d4a89f50a63332c8ff5f894b/srsly-2.5.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:74a9338fcc044f4bdc7113b2d9db2db8e0a263c69f1cba965acf12c845d8b365", size = 1244935, upload-time = "2025-11-17T14:10:42.324Z" }, + { url = "https://files.pythonhosted.org/packages/95/81/6ea10ef6228ce4438a240c803639f7ccf5eae3469fbc015f33bd84aa8df1/srsly-2.5.2-cp314-cp314t-win_amd64.whl", hash = "sha256:8e2b9058623c44b07441eb0d711dfdf6302f917f0634d0a294cae37578dcf899", size = 676105, upload-time = "2025-11-17T14:10:43.633Z" }, +] + [[package]] name = "tabulate" version = "0.9.0" @@ -1124,63 +2249,301 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f", size = 35252, upload-time = "2022-10-06T17:21:44.262Z" }, ] +[[package]] +name = "thinc" +version = "8.3.10" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "blis" }, + { name = "catalogue" }, + { name = "confection" }, + { name = "cymem" }, + { name = "murmurhash" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "packaging" }, + { name = "preshed" }, + { name = "pydantic" }, + { name = "setuptools" }, + { name = "srsly" }, + { name = "wasabi" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2f/3a/2d0f0be132b9faaa6d56f04565ae122684273e4bf4eab8dee5f48dc00f68/thinc-8.3.10.tar.gz", hash = "sha256:5a75109f4ee1c968fc055ce651a17cb44b23b000d9e95f04a4d047ab3cb3e34e", size = 194196, upload-time = "2025-11-17T17:21:46.435Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/bc/d3c364c0278e420e0e3d328cbae7cd7aac8d2cfe4d9b8022a12e99f03755/thinc-8.3.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fbe0313cb3c898f4e6a3f13b704af51f4bf8f927078deb0fe2d6eaf3c6c5b31b", size = 821615, upload-time = "2025-11-17T17:20:31.257Z" }, + { url = "https://files.pythonhosted.org/packages/0e/97/70fe96d86fe5d024882fd96f054be94f87828da67862749aa439de33d452/thinc-8.3.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:892ac91cf7cc8d3ac9a4527c68ead37a96e87132c9f589de56b057b50358e895", size = 772280, upload-time = "2025-11-17T17:20:34.408Z" }, + { url = "https://files.pythonhosted.org/packages/08/a8/a6906490a756a4ad09781bcd02490e5427d942a918abed8424f639d317c3/thinc-8.3.10-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0fbf142050feb5490f6366e251d48e0429315abe487faa7d371fac4d043efd1e", size = 3881222, upload-time = "2025-11-17T17:20:36.525Z" }, + { url = "https://files.pythonhosted.org/packages/e6/bf/bebeddbab816c4d909455499f7e1b0a88cec9497fd737412e1189971d193/thinc-8.3.10-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:470b05fd1af4024cf183f387f71270943f652dd711304d1fa8b672d268052af8", size = 3905534, upload-time = "2025-11-17T17:20:38.901Z" }, + { url = "https://files.pythonhosted.org/packages/fd/c4/c78f1e1091b73dbeee8623f856e2dd25888aab600ded5fa9944dfbe38efb/thinc-8.3.10-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06ebf4aa642991b8dc5c2a6db4c0aedf6d5589a361c93531ec3721d76eabe859", size = 4888188, upload-time = "2025-11-17T17:20:41.394Z" }, + { url = "https://files.pythonhosted.org/packages/ca/bc/36297efade38e0f3e56795f49094d19fbe560bda60a42ce134bbfc1796da/thinc-8.3.10-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:026999d749075c890fbb1df47d75389a81b712afccea519a5c7bb86783d0cd73", size = 5033361, upload-time = "2025-11-17T17:20:45.332Z" }, + { url = "https://files.pythonhosted.org/packages/a8/bf/70d97758b5b1c7ee06afca8240b6e02bdf5b18d18eb59b873e319b3e01b2/thinc-8.3.10-cp310-cp310-win_amd64.whl", hash = "sha256:8d5ae7d96ff3ea2e4f23bd4005c773f4765f41b11dfb79598a81e5feb1437b91", size = 1792397, upload-time = "2025-11-17T17:20:47.014Z" }, + { url = "https://files.pythonhosted.org/packages/38/43/01b662540888140b5e9f76c957c7118c203cb91f17867ce78fc4f2d3800f/thinc-8.3.10-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:72793e0bd3f0f391ca36ab0996b3c21db7045409bd3740840e7d6fcd9a044d81", size = 818632, upload-time = "2025-11-17T17:20:49.123Z" }, + { url = "https://files.pythonhosted.org/packages/f0/ba/e0edcc84014bdde1bc9a082408279616a061566a82b5e3b90b9e64f33c1b/thinc-8.3.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4b13311acb061e04e3a0c4bd677b85ec2971e3a3674558252443b5446e378256", size = 770622, upload-time = "2025-11-17T17:20:50.467Z" }, + { url = "https://files.pythonhosted.org/packages/f3/51/0558f8cb69c13e1114428726a3fb36fe1adc5821a62ccd3fa7b7c1a5bd9a/thinc-8.3.10-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9ffddcf311fb7c998eb8988d22c618dc0f33b26303853c0445edb8a69819ac60", size = 4094652, upload-time = "2025-11-17T17:20:52.104Z" }, + { url = "https://files.pythonhosted.org/packages/a0/c9/bb78601f74f9bcadb2d3d4d5b057c4dc3f2e52d9771bad3d93a4e38a9dc1/thinc-8.3.10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9b1e0511e8421f20abe4f22d8c8073a0d7ce4a31597cc7a404fdbad72bf38058", size = 4124379, upload-time = "2025-11-17T17:20:53.781Z" }, + { url = "https://files.pythonhosted.org/packages/f6/3e/961e1b9794111c89f2ceadfef5692aba5097bec4aaaf89f1b8a04c5bc961/thinc-8.3.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e31e49441dfad8fd64b8ca5f5c9b8c33ee87a553bf79c830a15b4cd02efcc444", size = 5094221, upload-time = "2025-11-17T17:20:55.466Z" }, + { url = "https://files.pythonhosted.org/packages/e5/de/da163a1533faaef5b17dd11dfb9ffd9fd5627dbef56e1160da6edbe1b224/thinc-8.3.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9de5dd73ce7135dcf41d68625d35cd9f5cf8e5f55a3932001a188b45057c3379", size = 5262834, upload-time = "2025-11-17T17:20:57.459Z" }, + { url = "https://files.pythonhosted.org/packages/4c/4e/449d29e33f7ddda6ba1b9e06de3ea5155c2dc33c21f438f8faafebde4e13/thinc-8.3.10-cp311-cp311-win_amd64.whl", hash = "sha256:b6d64e390a1996d489872b9d99a584142542aba59ebdc60f941f473732582f6f", size = 1791864, upload-time = "2025-11-17T17:20:59.817Z" }, + { url = "https://files.pythonhosted.org/packages/4a/b3/68038d88d45d83a501c3f19bd654d275b7ac730c807f52bbb46f35f591bc/thinc-8.3.10-cp311-cp311-win_arm64.whl", hash = "sha256:3991b6ad72e611dfbfb58235de5b67bcc9f61426127cc023607f97e8c5f43e0e", size = 1717563, upload-time = "2025-11-17T17:21:01.634Z" }, + { url = "https://files.pythonhosted.org/packages/d3/34/ba3b386d92edf50784b60ee34318d47c7f49c198268746ef7851c5bbe8cf/thinc-8.3.10-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:51bc6ef735bdbcab75ab2916731b8f61f94c66add6f9db213d900d3c6a244f95", size = 794509, upload-time = "2025-11-17T17:21:03.21Z" }, + { url = "https://files.pythonhosted.org/packages/07/f3/9f52d18115cd9d8d7b2590d226cb2752d2a5ffec61576b19462b48410184/thinc-8.3.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4f48b4d346915f98e9722c0c50ef911cc16c6790a2b7afebc6e1a2c96a6ce6c6", size = 741084, upload-time = "2025-11-17T17:21:04.568Z" }, + { url = "https://files.pythonhosted.org/packages/ad/9c/129c2b740c4e3d3624b6fb3dec1577ef27cb804bc1647f9bc3e1801ea20c/thinc-8.3.10-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5003f4db2db22cc8d686db8db83509acc3c50f4c55ebdcb2bbfcc1095096f7d2", size = 3846337, upload-time = "2025-11-17T17:21:06.079Z" }, + { url = "https://files.pythonhosted.org/packages/22/d2/738cf188dea8240c2be081c83ea47270fea585eba446171757d2cdb9b675/thinc-8.3.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b12484c3ed0632331fada2c334680dd6bc35972d0717343432dfc701f04a9b4c", size = 3901216, upload-time = "2025-11-17T17:21:07.842Z" }, + { url = "https://files.pythonhosted.org/packages/22/92/32f66eb9b1a29b797bf378a0874615d810d79eefca1d6c736c5ca3f8b918/thinc-8.3.10-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8677c446d3f9b97a465472c58683b785b25dfcf26c683e3f4e8f8c7c188e4362", size = 4827286, upload-time = "2025-11-17T17:21:09.62Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5f/7ceae1e1f2029efd67ed88e23cd6dc13a5ee647cdc2b35113101b2a62c10/thinc-8.3.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:759c385ac08dcf950238b60b96a28f9c04618861141766928dff4a51b1679b25", size = 5024421, upload-time = "2025-11-17T17:21:11.199Z" }, + { url = "https://files.pythonhosted.org/packages/0b/66/30f9d8d41049b78bc614213d492792fbcfeb1b28642adf661c42110a7ebd/thinc-8.3.10-cp312-cp312-win_amd64.whl", hash = "sha256:bf3f188c3fa1fdcefd547d1f90a1245c29025d6d0e3f71d7fdf21dad210b990c", size = 1718631, upload-time = "2025-11-17T17:21:12.965Z" }, + { url = "https://files.pythonhosted.org/packages/f8/44/32e2a5018a1165a304d25eb9b1c74e5310da19a533a35331e8d824dc6a88/thinc-8.3.10-cp312-cp312-win_arm64.whl", hash = "sha256:234b7e57a6ef4e0260d99f4e8fdc328ed12d0ba9bbd98fdaa567294a17700d1c", size = 1642224, upload-time = "2025-11-17T17:21:14.371Z" }, + { url = "https://files.pythonhosted.org/packages/53/fc/17a2818d1f460b8c4f33b8bd3f21b19d263a647bfd23b572768d175e6b64/thinc-8.3.10-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c7c3a50ddd423d1c49419899acef4ac80d800af3b423593acb9e40578384b543", size = 789771, upload-time = "2025-11-17T17:21:15.784Z" }, + { url = "https://files.pythonhosted.org/packages/8d/24/649f54774b1fbe791a1c2efd7d7f0a95cfd9244902553ca7dcf19daab1dd/thinc-8.3.10-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1a1cb110398f51fc2b9a07a2a4daec6f91e166533a9c9f1c565225330f46569a", size = 737051, upload-time = "2025-11-17T17:21:17.933Z" }, + { url = "https://files.pythonhosted.org/packages/b2/8c/5840c6c504c1fa9718e1c74d6e04d77a474f594888867dbba53f9317285f/thinc-8.3.10-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:42318746a67403d04be57d862fe0c0015b58b6fb9bbbf7b6db01f3f103b73a99", size = 3839221, upload-time = "2025-11-17T17:21:20.003Z" }, + { url = "https://files.pythonhosted.org/packages/45/ef/e7fca88074cb0aa1c1a23195470b4549492c2797fe7dc9ff79a85500153a/thinc-8.3.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6b0e41e79973f8828adead770f885db8d0f199bfbaa9591d1d896c385842e993", size = 3885024, upload-time = "2025-11-17T17:21:21.735Z" }, + { url = "https://files.pythonhosted.org/packages/9a/eb/805e277aa019896009028d727460f071c6cf83843d70f6a69e58994d2203/thinc-8.3.10-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9ed982daa1eddbad813bfd079546483b849a68b98c01ad4a7e4efd125ddc5d7b", size = 4815939, upload-time = "2025-11-17T17:21:23.942Z" }, + { url = "https://files.pythonhosted.org/packages/4f/f5/6425f12a60e3782091c9ec16394b9239f0c18c52c70218f3c8c047ff985c/thinc-8.3.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d22bd381410749dec5f629b3162b7d1f1e2d9b7364fd49a7ea555b61c93772b9", size = 5020260, upload-time = "2025-11-17T17:21:25.507Z" }, + { url = "https://files.pythonhosted.org/packages/85/a2/ae98feffe0b161400e87b7bfc8859e6fa1e6023fa7bcfa0a8cacd83b39a1/thinc-8.3.10-cp313-cp313-win_amd64.whl", hash = "sha256:9c32830446a57da13b6856cacb0225bc2f2104f279d9928d40500081c13aa9ec", size = 1717562, upload-time = "2025-11-17T17:21:27.468Z" }, + { url = "https://files.pythonhosted.org/packages/b8/e0/faa1d04a6890ea33b9541727d2a3ca88bad794a89f73b9111af6f9aefe10/thinc-8.3.10-cp313-cp313-win_arm64.whl", hash = "sha256:aa43f9af76781d32f5f9fe29299204c8841d71e64cbb56e0e4f3d1e0387c2783", size = 1641536, upload-time = "2025-11-17T17:21:30.129Z" }, + { url = "https://files.pythonhosted.org/packages/b8/32/7a96e1f2cac159d778c6b0ab4ddd8a139bb57c602cef793b7606cd32428d/thinc-8.3.10-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:44d7038a5d28572105332b44ec9c4c3b6f7953b41d224588ad0473c9b79ccf9e", size = 793037, upload-time = "2025-11-17T17:21:32.538Z" }, + { url = "https://files.pythonhosted.org/packages/12/d8/81e8495e8ef412767c09d1f9d0d86dc60cd22e6ed75e61b49fbf1dcfcd65/thinc-8.3.10-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:639f20952af722cb0ab4c3d8a00e661686b60c04f82ef48d12064ceda3b8cd0c", size = 740768, upload-time = "2025-11-17T17:21:34.852Z" }, + { url = "https://files.pythonhosted.org/packages/c2/6d/716488a301d65c5463e92cb0eddae3672ca84f1d70937808cea9760f759c/thinc-8.3.10-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9306e62c7e7066c63b0c0ba1d164ae0c23bf38edf5a7df2e09cce69a2c290500", size = 3834983, upload-time = "2025-11-17T17:21:36.81Z" }, + { url = "https://files.pythonhosted.org/packages/9c/a1/d28b21cab9b79e9c803671bebd14489e14c5226136fad6a1c44f96f8e4ef/thinc-8.3.10-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2982604c21096de1a87b04a781a645863eece71ec6ee9f139ac01b998fb5622d", size = 3845215, upload-time = "2025-11-17T17:21:38.362Z" }, + { url = "https://files.pythonhosted.org/packages/93/9d/ff64ead5f1c2298d9e6a9ccc1c676b2347ac06162ad3c5e5d895c32a719e/thinc-8.3.10-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c6b82698e27846004d4eafc38317ace482eced888d4445f7fb9c548fd36777af", size = 4826596, upload-time = "2025-11-17T17:21:40.027Z" }, + { url = "https://files.pythonhosted.org/packages/4a/44/b80c863608d0fd31641a2d50658560c22d4841f1e445529201e22b3e1d0f/thinc-8.3.10-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2950acab8ae77427a86d11655ed0a161bc83a1edf9d31ba5c43deca6cd27ed4f", size = 4988146, upload-time = "2025-11-17T17:21:41.73Z" }, + { url = "https://files.pythonhosted.org/packages/93/6d/1bdd9344b2e7299faa55129dda624d50c334eed16a3761eb8b1dacd8bfcd/thinc-8.3.10-cp314-cp314-win_amd64.whl", hash = "sha256:c253139a5c873edf75a3b17ec9d8b6caebee072fdb489594bc64e35115df7625", size = 1738054, upload-time = "2025-11-17T17:21:43.328Z" }, + { url = "https://files.pythonhosted.org/packages/45/c4/44e3163d48e398efb3748481656963ac6265c14288012871c921dc81d004/thinc-8.3.10-cp314-cp314-win_arm64.whl", hash = "sha256:ad6da67f534995d6ec257f16665377d7ad95bef5c1b1c89618fd4528657a6f24", size = 1665001, upload-time = "2025-11-17T17:21:45.019Z" }, +] + [[package]] name = "tomli" -version = "2.2.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", size = 17175, upload-time = "2024-11-27T22:38:36.873Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249", size = 131077, upload-time = "2024-11-27T22:37:54.956Z" }, - { url = "https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6", size = 123429, upload-time = "2024-11-27T22:37:56.698Z" }, - { url = "https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a", size = 226067, upload-time = "2024-11-27T22:37:57.63Z" }, - { url = "https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee", size = 236030, upload-time = "2024-11-27T22:37:59.344Z" }, - { url = "https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e", size = 240898, upload-time = "2024-11-27T22:38:00.429Z" }, - { url = "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4", size = 229894, upload-time = "2024-11-27T22:38:02.094Z" }, - { url = "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106", size = 245319, upload-time = "2024-11-27T22:38:03.206Z" }, - { url = "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8", size = 238273, upload-time = "2024-11-27T22:38:04.217Z" }, - { url = "https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff", size = 98310, upload-time = "2024-11-27T22:38:05.908Z" }, - { url = "https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b", size = 108309, upload-time = "2024-11-27T22:38:06.812Z" }, - { url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", size = 132762, upload-time = "2024-11-27T22:38:07.731Z" }, - { url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", size = 123453, upload-time = "2024-11-27T22:38:09.384Z" }, - { url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", size = 233486, upload-time = "2024-11-27T22:38:10.329Z" }, - { url = "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", size = 242349, upload-time = "2024-11-27T22:38:11.443Z" }, - { url = "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", size = 252159, upload-time = "2024-11-27T22:38:13.099Z" }, - { url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", size = 237243, upload-time = "2024-11-27T22:38:14.766Z" }, - { url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", size = 259645, upload-time = "2024-11-27T22:38:15.843Z" }, - { url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", size = 244584, upload-time = "2024-11-27T22:38:17.645Z" }, - { url = "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", size = 98875, upload-time = "2024-11-27T22:38:19.159Z" }, - { url = "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", size = 109418, upload-time = "2024-11-27T22:38:20.064Z" }, - { url = "https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7", size = 132708, upload-time = "2024-11-27T22:38:21.659Z" }, - { url = "https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c", size = 123582, upload-time = "2024-11-27T22:38:22.693Z" }, - { url = "https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13", size = 232543, upload-time = "2024-11-27T22:38:24.367Z" }, - { url = "https://files.pythonhosted.org/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281", size = 241691, upload-time = "2024-11-27T22:38:26.081Z" }, - { url = "https://files.pythonhosted.org/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272", size = 251170, upload-time = "2024-11-27T22:38:27.921Z" }, - { url = "https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140", size = 236530, upload-time = "2024-11-27T22:38:29.591Z" }, - { url = "https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2", size = 258666, upload-time = "2024-11-27T22:38:30.639Z" }, - { url = "https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744", size = 243954, upload-time = "2024-11-27T22:38:31.702Z" }, - { url = "https://files.pythonhosted.org/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec", size = 98724, upload-time = "2024-11-27T22:38:32.837Z" }, - { url = "https://files.pythonhosted.org/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69", size = 109383, upload-time = "2024-11-27T22:38:34.455Z" }, - { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257, upload-time = "2024-11-27T22:38:35.385Z" }, +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/30/31573e9457673ab10aa432461bee537ce6cef177667deca369efb79df071/tomli-2.4.0.tar.gz", hash = "sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c", size = 17477, upload-time = "2026-01-11T11:22:38.165Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/d9/3dc2289e1f3b32eb19b9785b6a006b28ee99acb37d1d47f78d4c10e28bf8/tomli-2.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867", size = 153663, upload-time = "2026-01-11T11:21:45.27Z" }, + { url = "https://files.pythonhosted.org/packages/51/32/ef9f6845e6b9ca392cd3f64f9ec185cc6f09f0a2df3db08cbe8809d1d435/tomli-2.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9", size = 148469, upload-time = "2026-01-11T11:21:46.873Z" }, + { url = "https://files.pythonhosted.org/packages/d6/c2/506e44cce89a8b1b1e047d64bd495c22c9f71f21e05f380f1a950dd9c217/tomli-2.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95", size = 236039, upload-time = "2026-01-11T11:21:48.503Z" }, + { url = "https://files.pythonhosted.org/packages/b3/40/e1b65986dbc861b7e986e8ec394598187fa8aee85b1650b01dd925ca0be8/tomli-2.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76", size = 243007, upload-time = "2026-01-11T11:21:49.456Z" }, + { url = "https://files.pythonhosted.org/packages/9c/6f/6e39ce66b58a5b7ae572a0f4352ff40c71e8573633deda43f6a379d56b3e/tomli-2.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d", size = 240875, upload-time = "2026-01-11T11:21:50.755Z" }, + { url = "https://files.pythonhosted.org/packages/aa/ad/cb089cb190487caa80204d503c7fd0f4d443f90b95cf4ef5cf5aa0f439b0/tomli-2.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576", size = 246271, upload-time = "2026-01-11T11:21:51.81Z" }, + { url = "https://files.pythonhosted.org/packages/0b/63/69125220e47fd7a3a27fd0de0c6398c89432fec41bc739823bcc66506af6/tomli-2.4.0-cp311-cp311-win32.whl", hash = "sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a", size = 96770, upload-time = "2026-01-11T11:21:52.647Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0d/a22bb6c83f83386b0008425a6cd1fa1c14b5f3dd4bad05e98cf3dbbf4a64/tomli-2.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa", size = 107626, upload-time = "2026-01-11T11:21:53.459Z" }, + { url = "https://files.pythonhosted.org/packages/2f/6d/77be674a3485e75cacbf2ddba2b146911477bd887dda9d8c9dfb2f15e871/tomli-2.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614", size = 94842, upload-time = "2026-01-11T11:21:54.831Z" }, + { url = "https://files.pythonhosted.org/packages/3c/43/7389a1869f2f26dba52404e1ef13b4784b6b37dac93bac53457e3ff24ca3/tomli-2.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1", size = 154894, upload-time = "2026-01-11T11:21:56.07Z" }, + { url = "https://files.pythonhosted.org/packages/e9/05/2f9bf110b5294132b2edf13fe6ca6ae456204f3d749f623307cbb7a946f2/tomli-2.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8", size = 149053, upload-time = "2026-01-11T11:21:57.467Z" }, + { url = "https://files.pythonhosted.org/packages/e8/41/1eda3ca1abc6f6154a8db4d714a4d35c4ad90adc0bcf700657291593fbf3/tomli-2.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a", size = 243481, upload-time = "2026-01-11T11:21:58.661Z" }, + { url = "https://files.pythonhosted.org/packages/d2/6d/02ff5ab6c8868b41e7d4b987ce2b5f6a51d3335a70aa144edd999e055a01/tomli-2.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1", size = 251720, upload-time = "2026-01-11T11:22:00.178Z" }, + { url = "https://files.pythonhosted.org/packages/7b/57/0405c59a909c45d5b6f146107c6d997825aa87568b042042f7a9c0afed34/tomli-2.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b", size = 247014, upload-time = "2026-01-11T11:22:01.238Z" }, + { url = "https://files.pythonhosted.org/packages/2c/0e/2e37568edd944b4165735687cbaf2fe3648129e440c26d02223672ee0630/tomli-2.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51", size = 251820, upload-time = "2026-01-11T11:22:02.727Z" }, + { url = "https://files.pythonhosted.org/packages/5a/1c/ee3b707fdac82aeeb92d1a113f803cf6d0f37bdca0849cb489553e1f417a/tomli-2.4.0-cp312-cp312-win32.whl", hash = "sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729", size = 97712, upload-time = "2026-01-11T11:22:03.777Z" }, + { url = "https://files.pythonhosted.org/packages/69/13/c07a9177d0b3bab7913299b9278845fc6eaaca14a02667c6be0b0a2270c8/tomli-2.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da", size = 108296, upload-time = "2026-01-11T11:22:04.86Z" }, + { url = "https://files.pythonhosted.org/packages/18/27/e267a60bbeeee343bcc279bb9e8fbed0cbe224bc7b2a3dc2975f22809a09/tomli-2.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3", size = 94553, upload-time = "2026-01-11T11:22:05.854Z" }, + { url = "https://files.pythonhosted.org/packages/34/91/7f65f9809f2936e1f4ce6268ae1903074563603b2a2bd969ebbda802744f/tomli-2.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0", size = 154915, upload-time = "2026-01-11T11:22:06.703Z" }, + { url = "https://files.pythonhosted.org/packages/20/aa/64dd73a5a849c2e8f216b755599c511badde80e91e9bc2271baa7b2cdbb1/tomli-2.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e", size = 149038, upload-time = "2026-01-11T11:22:07.56Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8a/6d38870bd3d52c8d1505ce054469a73f73a0fe62c0eaf5dddf61447e32fa/tomli-2.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4", size = 242245, upload-time = "2026-01-11T11:22:08.344Z" }, + { url = "https://files.pythonhosted.org/packages/59/bb/8002fadefb64ab2669e5b977df3f5e444febea60e717e755b38bb7c41029/tomli-2.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e", size = 250335, upload-time = "2026-01-11T11:22:09.951Z" }, + { url = "https://files.pythonhosted.org/packages/a5/3d/4cdb6f791682b2ea916af2de96121b3cb1284d7c203d97d92d6003e91c8d/tomli-2.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c", size = 245962, upload-time = "2026-01-11T11:22:11.27Z" }, + { url = "https://files.pythonhosted.org/packages/f2/4a/5f25789f9a460bd858ba9756ff52d0830d825b458e13f754952dd15fb7bb/tomli-2.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f", size = 250396, upload-time = "2026-01-11T11:22:12.325Z" }, + { url = "https://files.pythonhosted.org/packages/aa/2f/b73a36fea58dfa08e8b3a268750e6853a6aac2a349241a905ebd86f3047a/tomli-2.4.0-cp313-cp313-win32.whl", hash = "sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86", size = 97530, upload-time = "2026-01-11T11:22:13.865Z" }, + { url = "https://files.pythonhosted.org/packages/3b/af/ca18c134b5d75de7e8dc551c5234eaba2e8e951f6b30139599b53de9c187/tomli-2.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87", size = 108227, upload-time = "2026-01-11T11:22:15.224Z" }, + { url = "https://files.pythonhosted.org/packages/22/c3/b386b832f209fee8073c8138ec50f27b4460db2fdae9ffe022df89a57f9b/tomli-2.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132", size = 94748, upload-time = "2026-01-11T11:22:16.009Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c4/84047a97eb1004418bc10bdbcfebda209fca6338002eba2dc27cc6d13563/tomli-2.4.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6", size = 154725, upload-time = "2026-01-11T11:22:17.269Z" }, + { url = "https://files.pythonhosted.org/packages/a8/5d/d39038e646060b9d76274078cddf146ced86dc2b9e8bbf737ad5983609a0/tomli-2.4.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc", size = 148901, upload-time = "2026-01-11T11:22:18.287Z" }, + { url = "https://files.pythonhosted.org/packages/73/e5/383be1724cb30f4ce44983d249645684a48c435e1cd4f8b5cded8a816d3c/tomli-2.4.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66", size = 243375, upload-time = "2026-01-11T11:22:19.154Z" }, + { url = "https://files.pythonhosted.org/packages/31/f0/bea80c17971c8d16d3cc109dc3585b0f2ce1036b5f4a8a183789023574f2/tomli-2.4.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d", size = 250639, upload-time = "2026-01-11T11:22:20.168Z" }, + { url = "https://files.pythonhosted.org/packages/2c/8f/2853c36abbb7608e3f945d8a74e32ed3a74ee3a1f468f1ffc7d1cb3abba6/tomli-2.4.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702", size = 246897, upload-time = "2026-01-11T11:22:21.544Z" }, + { url = "https://files.pythonhosted.org/packages/49/f0/6c05e3196ed5337b9fe7ea003e95fd3819a840b7a0f2bf5a408ef1dad8ed/tomli-2.4.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8", size = 254697, upload-time = "2026-01-11T11:22:23.058Z" }, + { url = "https://files.pythonhosted.org/packages/f3/f5/2922ef29c9f2951883525def7429967fc4d8208494e5ab524234f06b688b/tomli-2.4.0-cp314-cp314-win32.whl", hash = "sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776", size = 98567, upload-time = "2026-01-11T11:22:24.033Z" }, + { url = "https://files.pythonhosted.org/packages/7b/31/22b52e2e06dd2a5fdbc3ee73226d763b184ff21fc24e20316a44ccc4d96b/tomli-2.4.0-cp314-cp314-win_amd64.whl", hash = "sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475", size = 108556, upload-time = "2026-01-11T11:22:25.378Z" }, + { url = "https://files.pythonhosted.org/packages/48/3d/5058dff3255a3d01b705413f64f4306a141a8fd7a251e5a495e3f192a998/tomli-2.4.0-cp314-cp314-win_arm64.whl", hash = "sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2", size = 96014, upload-time = "2026-01-11T11:22:26.138Z" }, + { url = "https://files.pythonhosted.org/packages/b8/4e/75dab8586e268424202d3a1997ef6014919c941b50642a1682df43204c22/tomli-2.4.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9", size = 163339, upload-time = "2026-01-11T11:22:27.143Z" }, + { url = "https://files.pythonhosted.org/packages/06/e3/b904d9ab1016829a776d97f163f183a48be6a4deb87304d1e0116a349519/tomli-2.4.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0", size = 159490, upload-time = "2026-01-11T11:22:28.399Z" }, + { url = "https://files.pythonhosted.org/packages/e3/5a/fc3622c8b1ad823e8ea98a35e3c632ee316d48f66f80f9708ceb4f2a0322/tomli-2.4.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df", size = 269398, upload-time = "2026-01-11T11:22:29.345Z" }, + { url = "https://files.pythonhosted.org/packages/fd/33/62bd6152c8bdd4c305ad9faca48f51d3acb2df1f8791b1477d46ff86e7f8/tomli-2.4.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d", size = 276515, upload-time = "2026-01-11T11:22:30.327Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ff/ae53619499f5235ee4211e62a8d7982ba9e439a0fb4f2f351a93d67c1dd2/tomli-2.4.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f", size = 273806, upload-time = "2026-01-11T11:22:32.56Z" }, + { url = "https://files.pythonhosted.org/packages/47/71/cbca7787fa68d4d0a9f7072821980b39fbb1b6faeb5f5cf02f4a5559fa28/tomli-2.4.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b", size = 281340, upload-time = "2026-01-11T11:22:33.505Z" }, + { url = "https://files.pythonhosted.org/packages/f5/00/d595c120963ad42474cf6ee7771ad0d0e8a49d0f01e29576ee9195d9ecdf/tomli-2.4.0-cp314-cp314t-win32.whl", hash = "sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087", size = 108106, upload-time = "2026-01-11T11:22:34.451Z" }, + { url = "https://files.pythonhosted.org/packages/de/69/9aa0c6a505c2f80e519b43764f8b4ba93b5a0bbd2d9a9de6e2b24271b9a5/tomli-2.4.0-cp314-cp314t-win_amd64.whl", hash = "sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd", size = 120504, upload-time = "2026-01-11T11:22:35.764Z" }, + { url = "https://files.pythonhosted.org/packages/b3/9f/f1668c281c58cfae01482f7114a4b88d345e4c140386241a1a24dcc9e7bc/tomli-2.4.0-cp314-cp314t-win_arm64.whl", hash = "sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4", size = 99561, upload-time = "2026-01-11T11:22:36.624Z" }, + { url = "https://files.pythonhosted.org/packages/23/d1/136eb2cb77520a31e1f64cbae9d33ec6df0d78bdf4160398e86eec8a8754/tomli-2.4.0-py3-none-any.whl", hash = "sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a", size = 14477, upload-time = "2026-01-11T11:22:37.446Z" }, +] + +[[package]] +name = "tomlkit" +version = "0.14.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/af/14b24e41977adb296d6bd1fb59402cf7d60ce364f90c890bd2ec65c43b5a/tomlkit-0.14.0.tar.gz", hash = "sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064", size = 187167, upload-time = "2026-01-13T01:14:53.304Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl", hash = "sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680", size = 39310, upload-time = "2026-01-13T01:14:51.965Z" }, +] + +[[package]] +name = "tqdm" +version = "4.67.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/09/a9/6ba95a270c6f1fbcd8dac228323f2777d886cb206987444e4bce66338dd4/tqdm-4.67.3.tar.gz", hash = "sha256:7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb", size = 169598, upload-time = "2026-02-03T17:35:53.048Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl", hash = "sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf", size = 78374, upload-time = "2026-02-03T17:35:50.982Z" }, +] + +[[package]] +name = "typer-slim" +version = "0.21.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/17/d4/064570dec6358aa9049d4708e4a10407d74c99258f8b2136bb8702303f1a/typer_slim-0.21.1.tar.gz", hash = "sha256:73495dd08c2d0940d611c5a8c04e91c2a0a98600cbd4ee19192255a233b6dbfd", size = 110478, upload-time = "2026-01-06T11:21:11.176Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c8/0a/4aca634faf693e33004796b6cee0ae2e1dba375a800c16ab8d3eff4bb800/typer_slim-0.21.1-py3-none-any.whl", hash = "sha256:6e6c31047f171ac93cc5a973c9e617dbc5ab2bddc4d0a3135dc161b4e2020e0d", size = 47444, upload-time = "2026-01-06T11:21:12.441Z" }, ] [[package]] name = "typing-extensions" -version = "4.13.2" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f6/37/23083fcd6e35492953e8d2aaaa68b860eb422b34627b13f2ce3eb6106061/typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef", size = 106967, upload-time = "2025-04-10T14:19:05.416Z" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8b/54/b1ae86c0973cc6f0210b53d508ca3641fb6d0c56823f288d108bc7ab3cc8/typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c", size = 45806, upload-time = "2025-04-10T14:19:03.967Z" }, + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "urllib3" +version = "2.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, +] + +[[package]] +name = "wasabi" +version = "1.1.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/f9/054e6e2f1071e963b5e746b48d1e3727470b2a490834d18ad92364929db3/wasabi-1.1.3.tar.gz", hash = "sha256:4bb3008f003809db0c3e28b4daf20906ea871a2bb43f9914197d540f4f2e0878", size = 30391, upload-time = "2024-05-31T16:56:18.99Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/7c/34330a89da55610daa5f245ddce5aab81244321101614751e7537f125133/wasabi-1.1.3-py3-none-any.whl", hash = "sha256:f76e16e8f7e79f8c4c8be49b4024ac725713ab10cd7f19350ad18a8e3f71728c", size = 27880, upload-time = "2024-05-31T16:56:16.699Z" }, +] + +[[package]] +name = "weasel" +version = "0.4.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cloudpathlib" }, + { name = "confection" }, + { name = "packaging" }, + { name = "pydantic" }, + { name = "requests" }, + { name = "smart-open" }, + { name = "srsly" }, + { name = "typer-slim" }, + { name = "wasabi" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/09/d7/edd9c24e60cf8e5de130aa2e8af3b01521f4d0216c371d01212f580d0d8e/weasel-0.4.3.tar.gz", hash = "sha256:f293d6174398e8f478c78481e00c503ee4b82ea7a3e6d0d6a01e46a6b1396845", size = 38733, upload-time = "2025-11-13T23:52:28.193Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/74/a148b41572656904a39dfcfed3f84dd1066014eed94e209223ae8e9d088d/weasel-0.4.3-py3-none-any.whl", hash = "sha256:08f65b5d0dbded4879e08a64882de9b9514753d9eaa4c4e2a576e33666ac12cf", size = 50757, upload-time = "2025-11-13T23:52:26.982Z" }, +] + +[[package]] +name = "wrapt" +version = "2.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f7/37/ae31f40bec90de2f88d9597d0b5281e23ffe85b893a47ca5d9c05c63a4f6/wrapt-2.1.1.tar.gz", hash = "sha256:5fdcb09bf6db023d88f312bd0767594b414655d58090fc1c46b3414415f67fac", size = 81329, upload-time = "2026-02-03T02:12:13.786Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/21/293b657a27accfbbbb6007ebd78af0efa2083dac83e8f523272ea09b4638/wrapt-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7e927375e43fd5a985b27a8992327c22541b6dede1362fc79df337d26e23604f", size = 60554, upload-time = "2026-02-03T02:11:17.362Z" }, + { url = "https://files.pythonhosted.org/packages/25/e9/96dd77728b54a899d4ce2798d7b1296989ce687ed3c0cb917d6b3154bf5d/wrapt-2.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c99544b6a7d40ca22195563b6d8bc3986ee8bb82f272f31f0670fe9440c869", size = 61496, upload-time = "2026-02-03T02:12:54.732Z" }, + { url = "https://files.pythonhosted.org/packages/44/79/4c755b45df6ef30c0dd628ecfaa0c808854be147ca438429da70a162833c/wrapt-2.1.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b2be3fa5f4efaf16ee7c77d0556abca35f5a18ad4ac06f0ef3904c3399010ce9", size = 113528, upload-time = "2026-02-03T02:12:26.405Z" }, + { url = "https://files.pythonhosted.org/packages/9f/63/23ce28f7b841217d9a6337a340fbb8d4a7fbd67a89d47f377c8550fa34aa/wrapt-2.1.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:67c90c1ae6489a6cb1a82058902caa8006706f7b4e8ff766f943e9d2c8e608d0", size = 115536, upload-time = "2026-02-03T02:11:54.397Z" }, + { url = "https://files.pythonhosted.org/packages/23/7b/5ca8d3b12768670d16c8329e29960eedd56212770365a02a8de8bf73dc01/wrapt-2.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:05c0db35ccffd7480143e62df1e829d101c7b86944ae3be7e4869a7efa621f53", size = 114716, upload-time = "2026-02-03T02:12:20.771Z" }, + { url = "https://files.pythonhosted.org/packages/c7/3a/9789ccb14a096d30bb847bf3ee137bf682cc9750c2ce155f4c5ae1962abf/wrapt-2.1.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0c2ec9f616755b2e1e0bf4d0961f59bb5c2e7a77407e7e2c38ef4f7d2fdde12c", size = 113200, upload-time = "2026-02-03T02:12:07.688Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e5/4ec3526ce6ce920b267c8d35d2c2f0874d3fad2744c8b7259353f1132baa/wrapt-2.1.1-cp310-cp310-win32.whl", hash = "sha256:203ba6b3f89e410e27dbd30ff7dccaf54dcf30fda0b22aa1b82d560c7f9fe9a1", size = 57876, upload-time = "2026-02-03T02:11:42.61Z" }, + { url = "https://files.pythonhosted.org/packages/d1/4e/661c7c76ecd85375b2bc03488941a3a1078642af481db24949e2b9de01f4/wrapt-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:6f9426d9cfc2f8732922fc96198052e55c09bb9db3ddaa4323a18e055807410e", size = 60224, upload-time = "2026-02-03T02:11:19.096Z" }, + { url = "https://files.pythonhosted.org/packages/5f/b7/53c7252d371efada4cb119e72e774fa2c6b3011fc33e3e552cdf48fb9488/wrapt-2.1.1-cp310-cp310-win_arm64.whl", hash = "sha256:69c26f51b67076b40714cff81bdd5826c0b10c077fb6b0678393a6a2f952a5fc", size = 58645, upload-time = "2026-02-03T02:12:10.396Z" }, + { url = "https://files.pythonhosted.org/packages/b8/a8/9254e4da74b30a105935197015b18b31b7a298bf046e67d8952ef74967bd/wrapt-2.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6c366434a7fb914c7a5de508ed735ef9c133367114e1a7cb91dfb5cd806a1549", size = 60554, upload-time = "2026-02-03T02:11:13.038Z" }, + { url = "https://files.pythonhosted.org/packages/9e/a1/378579880cc7af226354054a2c255f69615b379d8adad482bfe2f22a0dc2/wrapt-2.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5d6a2068bd2e1e19e5a317c8c0b288267eec4e7347c36bc68a6e378a39f19ee7", size = 61491, upload-time = "2026-02-03T02:12:56.077Z" }, + { url = "https://files.pythonhosted.org/packages/dc/72/957b51c56acca35701665878ad31626182199fc4afecfe67dea072210f95/wrapt-2.1.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:891ab4713419217b2aed7dd106c9200f64e6a82226775a0d2ebd6bef2ebd1747", size = 113949, upload-time = "2026-02-03T02:11:04.516Z" }, + { url = "https://files.pythonhosted.org/packages/cd/74/36bbebb4a3d2ae9c3e6929639721f8606cd0710a82a777c371aa69e36504/wrapt-2.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c8ef36a0df38d2dc9d907f6617f89e113c5892e0a35f58f45f75901af0ce7d81", size = 115989, upload-time = "2026-02-03T02:12:19.398Z" }, + { url = "https://files.pythonhosted.org/packages/ae/0d/f1177245a083c7be284bc90bddfe5aece32cdd5b858049cb69ce001a0e8d/wrapt-2.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:76e9af3ebd86f19973143d4d592cbf3e970cf3f66ddee30b16278c26ae34b8ab", size = 115242, upload-time = "2026-02-03T02:11:08.111Z" }, + { url = "https://files.pythonhosted.org/packages/62/3e/3b7cf5da27e59df61b1eae2d07dd03ff5d6f75b5408d694873cca7a8e33c/wrapt-2.1.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ff562067485ebdeaef2fa3fe9b1876bc4e7b73762e0a01406ad81e2076edcebf", size = 113676, upload-time = "2026-02-03T02:12:41.026Z" }, + { url = "https://files.pythonhosted.org/packages/f7/65/8248d3912c705f2c66f81cb97c77436f37abcbedb16d633b5ab0d795d8cd/wrapt-2.1.1-cp311-cp311-win32.whl", hash = "sha256:9e60a30aa0909435ec4ea2a3c53e8e1b50ac9f640c0e9fe3f21fd248a22f06c5", size = 57863, upload-time = "2026-02-03T02:12:18.112Z" }, + { url = "https://files.pythonhosted.org/packages/6b/31/d29310ab335f71f00c50466153b3dc985aaf4a9fc03263e543e136859541/wrapt-2.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:7d79954f51fcf84e5ec4878ab4aea32610d70145c5bbc84b3370eabfb1e096c2", size = 60224, upload-time = "2026-02-03T02:12:29.289Z" }, + { url = "https://files.pythonhosted.org/packages/0c/90/a6ec319affa6e2894962a0cb9d73c67f88af1a726d15314bfb5c88b8a08d/wrapt-2.1.1-cp311-cp311-win_arm64.whl", hash = "sha256:d3ffc6b0efe79e08fd947605fd598515aebefe45e50432dc3b5cd437df8b1ada", size = 58643, upload-time = "2026-02-03T02:12:43.022Z" }, + { url = "https://files.pythonhosted.org/packages/df/cb/4d5255d19bbd12be7f8ee2c1fb4269dddec9cef777ef17174d357468efaa/wrapt-2.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ab8e3793b239db021a18782a5823fcdea63b9fe75d0e340957f5828ef55fcc02", size = 61143, upload-time = "2026-02-03T02:11:46.313Z" }, + { url = "https://files.pythonhosted.org/packages/6f/07/7ed02daa35542023464e3c8b7cb937fa61f6c61c0361ecf8f5fecf8ad8da/wrapt-2.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7c0300007836373d1c2df105b40777986accb738053a92fe09b615a7a4547e9f", size = 61740, upload-time = "2026-02-03T02:12:51.966Z" }, + { url = "https://files.pythonhosted.org/packages/c4/60/a237a4e4a36f6d966061ccc9b017627d448161b19e0a3ab80a7c7c97f859/wrapt-2.1.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2b27c070fd1132ab23957bcd4ee3ba707a91e653a9268dc1afbd39b77b2799f7", size = 121327, upload-time = "2026-02-03T02:11:06.796Z" }, + { url = "https://files.pythonhosted.org/packages/ae/fe/9139058a3daa8818fc67e6460a2340e8bbcf3aef8b15d0301338bbe181ca/wrapt-2.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b0e36d845e8b6f50949b6b65fc6cd279f47a1944582ed4ec8258cd136d89a64", size = 122903, upload-time = "2026-02-03T02:12:48.657Z" }, + { url = "https://files.pythonhosted.org/packages/91/10/b8479202b4164649675846a531763531f0a6608339558b5a0a718fc49a8d/wrapt-2.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4aeea04a9889370fcfb1ef828c4cc583f36a875061505cd6cd9ba24d8b43cc36", size = 121333, upload-time = "2026-02-03T02:11:32.148Z" }, + { url = "https://files.pythonhosted.org/packages/5f/75/75fc793b791d79444aca2c03ccde64e8b99eda321b003f267d570b7b0985/wrapt-2.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d88b46bb0dce9f74b6817bc1758ff2125e1ca9e1377d62ea35b6896142ab6825", size = 120458, upload-time = "2026-02-03T02:11:16.039Z" }, + { url = "https://files.pythonhosted.org/packages/d7/8f/c3f30d511082ca6d947c405f9d8f6c8eaf83cfde527c439ec2c9a30eb5ea/wrapt-2.1.1-cp312-cp312-win32.whl", hash = "sha256:63decff76ca685b5c557082dfbea865f3f5f6d45766a89bff8dc61d336348833", size = 58086, upload-time = "2026-02-03T02:12:35.041Z" }, + { url = "https://files.pythonhosted.org/packages/0a/c8/37625b643eea2849f10c3b90f69c7462faa4134448d4443234adaf122ae5/wrapt-2.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:b828235d26c1e35aca4107039802ae4b1411be0fe0367dd5b7e4d90e562fcbcd", size = 60328, upload-time = "2026-02-03T02:12:45.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/79/56242f07572d5682ba8065a9d4d9c2218313f576e3c3471873c2a5355ffd/wrapt-2.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:75128507413a9f1bcbe2db88fd18fbdbf80f264b82fa33a6996cdeaf01c52352", size = 58722, upload-time = "2026-02-03T02:12:27.949Z" }, + { url = "https://files.pythonhosted.org/packages/f7/ca/3cf290212855b19af9fcc41b725b5620b32f470d6aad970c2593500817eb/wrapt-2.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ce9646e17fa7c3e2e7a87e696c7de66512c2b4f789a8db95c613588985a2e139", size = 61150, upload-time = "2026-02-03T02:12:50.575Z" }, + { url = "https://files.pythonhosted.org/packages/9d/33/5b8f89a82a9859ce82da4870c799ad11ce15648b6e1c820fec3e23f4a19f/wrapt-2.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:428cfc801925454395aa468ba7ddb3ed63dc0d881df7b81626cdd433b4e2b11b", size = 61743, upload-time = "2026-02-03T02:11:55.733Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2f/60c51304fbdf47ce992d9eefa61fbd2c0e64feee60aaa439baf42ea6f40b/wrapt-2.1.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5797f65e4d58065a49088c3b32af5410751cd485e83ba89e5a45e2aa8905af98", size = 121341, upload-time = "2026-02-03T02:11:20.461Z" }, + { url = "https://files.pythonhosted.org/packages/ad/03/ce5256e66dd94e521ad5e753c78185c01b6eddbed3147be541f4d38c0cb7/wrapt-2.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5a2db44a71202c5ae4bb5f27c6d3afbc5b23053f2e7e78aa29704541b5dad789", size = 122947, upload-time = "2026-02-03T02:11:33.596Z" }, + { url = "https://files.pythonhosted.org/packages/eb/ae/50ca8854b81b946a11a36fcd6ead32336e6db2c14b6e4a8b092b80741178/wrapt-2.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8d5350c3590af09c1703dd60ec78a7370c0186e11eaafb9dda025a30eee6492d", size = 121370, upload-time = "2026-02-03T02:11:09.886Z" }, + { url = "https://files.pythonhosted.org/packages/fb/d9/d6a7c654e0043319b4cc137a4caaf7aa16b46b51ee8df98d1060254705b7/wrapt-2.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2d9b076411bed964e752c01b49fd224cc385f3a96f520c797d38412d70d08359", size = 120465, upload-time = "2026-02-03T02:11:37.592Z" }, + { url = "https://files.pythonhosted.org/packages/55/90/65be41e40845d951f714b5a77e84f377a3787b1e8eee6555a680da6d0db5/wrapt-2.1.1-cp313-cp313-win32.whl", hash = "sha256:0bb7207130ce6486727baa85373503bf3334cc28016f6928a0fa7e19d7ecdc06", size = 58090, upload-time = "2026-02-03T02:12:53.342Z" }, + { url = "https://files.pythonhosted.org/packages/5f/66/6a09e0294c4fc8c26028a03a15191721c9271672467cc33e6617ee0d91d2/wrapt-2.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:cbfee35c711046b15147b0ae7db9b976f01c9520e6636d992cd9e69e5e2b03b1", size = 60341, upload-time = "2026-02-03T02:12:36.384Z" }, + { url = "https://files.pythonhosted.org/packages/7a/f0/20ceb8b701e9a71555c87a5ddecbed76ec16742cf1e4b87bbaf26735f998/wrapt-2.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:7d2756061022aebbf57ba14af9c16e8044e055c22d38de7bf40d92b565ecd2b0", size = 58731, upload-time = "2026-02-03T02:12:01.328Z" }, + { url = "https://files.pythonhosted.org/packages/80/b4/fe95beb8946700b3db371f6ce25115217e7075ca063663b8cca2888ba55c/wrapt-2.1.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4814a3e58bc6971e46baa910ecee69699110a2bf06c201e24277c65115a20c20", size = 62969, upload-time = "2026-02-03T02:11:51.245Z" }, + { url = "https://files.pythonhosted.org/packages/b8/89/477b0bdc784e3299edf69c279697372b8bd4c31d9c6966eae405442899df/wrapt-2.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:106c5123232ab9b9f4903692e1fa0bdc231510098f04c13c3081f8ad71c3d612", size = 63606, upload-time = "2026-02-03T02:12:02.64Z" }, + { url = "https://files.pythonhosted.org/packages/ed/55/9d0c1269ab76de87715b3b905df54dd25d55bbffd0b98696893eb613469f/wrapt-2.1.1-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:1a40b83ff2535e6e56f190aff123821eea89a24c589f7af33413b9c19eb2c738", size = 152536, upload-time = "2026-02-03T02:11:24.492Z" }, + { url = "https://files.pythonhosted.org/packages/44/18/2004766030462f79ad86efaa62000b5e39b1ff001dcce86650e1625f40ae/wrapt-2.1.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:789cea26e740d71cf1882e3a42bb29052bc4ada15770c90072cb47bf73fb3dbf", size = 158697, upload-time = "2026-02-03T02:12:32.214Z" }, + { url = "https://files.pythonhosted.org/packages/e1/bb/0a880fa0f35e94ee843df4ee4dd52a699c9263f36881311cfb412c09c3e5/wrapt-2.1.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ba49c14222d5e5c0ee394495a8655e991dc06cbca5398153aefa5ac08cd6ccd7", size = 155563, upload-time = "2026-02-03T02:11:49.737Z" }, + { url = "https://files.pythonhosted.org/packages/42/ff/cd1b7c4846c8678fac359a6eb975dc7ab5bd606030adb22acc8b4a9f53f1/wrapt-2.1.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ac8cda531fe55be838a17c62c806824472bb962b3afa47ecbd59b27b78496f4e", size = 150161, upload-time = "2026-02-03T02:12:33.613Z" }, + { url = "https://files.pythonhosted.org/packages/38/ec/67c90a7082f452964b4621e4890e9a490f1add23cdeb7483cc1706743291/wrapt-2.1.1-cp313-cp313t-win32.whl", hash = "sha256:b8af75fe20d381dd5bcc9db2e86a86d7fcfbf615383a7147b85da97c1182225b", size = 59783, upload-time = "2026-02-03T02:11:39.863Z" }, + { url = "https://files.pythonhosted.org/packages/ec/08/466afe4855847d8febdfa2c57c87e991fc5820afbdef01a273683dfd15a0/wrapt-2.1.1-cp313-cp313t-win_amd64.whl", hash = "sha256:45c5631c9b6c792b78be2d7352129f776dd72c605be2c3a4e9be346be8376d83", size = 63082, upload-time = "2026-02-03T02:12:09.075Z" }, + { url = "https://files.pythonhosted.org/packages/9a/62/60b629463c28b15b1eeadb3a0691e17568622b12aa5bfa7ebe9b514bfbeb/wrapt-2.1.1-cp313-cp313t-win_arm64.whl", hash = "sha256:da815b9263947ac98d088b6414ac83507809a1d385e4632d9489867228d6d81c", size = 60251, upload-time = "2026-02-03T02:11:21.794Z" }, + { url = "https://files.pythonhosted.org/packages/95/a0/1c2396e272f91efe6b16a6a8bce7ad53856c8f9ae4f34ceaa711d63ec9e1/wrapt-2.1.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:9aa1765054245bb01a37f615503290d4e207e3fd59226e78341afb587e9c1236", size = 61311, upload-time = "2026-02-03T02:12:44.41Z" }, + { url = "https://files.pythonhosted.org/packages/b0/9a/d2faba7e61072a7507b5722db63562fdb22f5a24e237d460d18755627f15/wrapt-2.1.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:feff14b63a6d86c1eee33a57f77573649f2550935981625be7ff3cb7342efe05", size = 61805, upload-time = "2026-02-03T02:11:59.905Z" }, + { url = "https://files.pythonhosted.org/packages/db/56/073989deb4b5d7d6e7ea424476a4ae4bda02140f2dbeaafb14ba4864dd60/wrapt-2.1.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:81fc5f22d5fcfdbabde96bb3f5379b9f4476d05c6d524d7259dc5dfb501d3281", size = 120308, upload-time = "2026-02-03T02:12:04.46Z" }, + { url = "https://files.pythonhosted.org/packages/d1/b6/84f37261295e38167a29eb82affaf1dc15948dc416925fe2091beee8e4ac/wrapt-2.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:951b228ecf66def855d22e006ab9a1fc12535111ae7db2ec576c728f8ddb39e8", size = 122688, upload-time = "2026-02-03T02:11:23.148Z" }, + { url = "https://files.pythonhosted.org/packages/ea/80/32db2eec6671f80c65b7ff175be61bc73d7f5223f6910b0c921bbc4bd11c/wrapt-2.1.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ddf582a95641b9a8c8bd643e83f34ecbbfe1b68bc3850093605e469ab680ae3", size = 121115, upload-time = "2026-02-03T02:12:39.068Z" }, + { url = "https://files.pythonhosted.org/packages/49/ef/dcd00383df0cd696614127902153bf067971a5aabcd3c9dcb2d8ef354b2a/wrapt-2.1.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:fc5c500966bf48913f795f1984704e6d452ba2414207b15e1f8c339a059d5b16", size = 119484, upload-time = "2026-02-03T02:11:48.419Z" }, + { url = "https://files.pythonhosted.org/packages/76/29/0630280cdd2bd8f86f35cb6854abee1c9d6d1a28a0c6b6417cd15d378325/wrapt-2.1.1-cp314-cp314-win32.whl", hash = "sha256:4aa4baadb1f94b71151b8e44a0c044f6af37396c3b8bcd474b78b49e2130a23b", size = 58514, upload-time = "2026-02-03T02:11:58.616Z" }, + { url = "https://files.pythonhosted.org/packages/db/19/5bed84f9089ed2065f6aeda5dfc4f043743f642bc871454b261c3d7d322b/wrapt-2.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:860e9d3fd81816a9f4e40812f28be4439ab01f260603c749d14be3c0a1170d19", size = 60763, upload-time = "2026-02-03T02:12:24.553Z" }, + { url = "https://files.pythonhosted.org/packages/e4/cb/b967f2f9669e4249b4fe82e630d2a01bc6b9e362b9b12ed91bbe23ae8df4/wrapt-2.1.1-cp314-cp314-win_arm64.whl", hash = "sha256:3c59e103017a2c1ea0ddf589cbefd63f91081d7ce9d491d69ff2512bb1157e23", size = 59051, upload-time = "2026-02-03T02:11:29.602Z" }, + { url = "https://files.pythonhosted.org/packages/eb/19/6fed62be29f97eb8a56aff236c3f960a4b4a86e8379dc7046a8005901a97/wrapt-2.1.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:9fa7c7e1bee9278fc4f5dd8275bc8d25493281a8ec6c61959e37cc46acf02007", size = 63059, upload-time = "2026-02-03T02:12:06.368Z" }, + { url = "https://files.pythonhosted.org/packages/0a/1c/b757fd0adb53d91547ed8fad76ba14a5932d83dde4c994846a2804596378/wrapt-2.1.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:39c35e12e8215628984248bd9c8897ce0a474be2a773db207eb93414219d8469", size = 63618, upload-time = "2026-02-03T02:12:23.197Z" }, + { url = "https://files.pythonhosted.org/packages/10/fe/e5ae17b1480957c7988d991b93df9f2425fc51f128cf88144d6a18d0eb12/wrapt-2.1.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:94ded4540cac9125eaa8ddf5f651a7ec0da6f5b9f248fe0347b597098f8ec14c", size = 152544, upload-time = "2026-02-03T02:11:43.915Z" }, + { url = "https://files.pythonhosted.org/packages/3e/cc/99aed210c6b547b8a6e4cb9d1425e4466727158a6aeb833aa7997e9e08dd/wrapt-2.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:da0af328373f97ed9bdfea24549ac1b944096a5a71b30e41c9b8b53ab3eec04a", size = 158700, upload-time = "2026-02-03T02:12:30.684Z" }, + { url = "https://files.pythonhosted.org/packages/81/0e/d442f745f4957944d5f8ad38bc3a96620bfff3562533b87e486e979f3d99/wrapt-2.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:4ad839b55f0bf235f8e337ce060572d7a06592592f600f3a3029168e838469d3", size = 155561, upload-time = "2026-02-03T02:11:28.164Z" }, + { url = "https://files.pythonhosted.org/packages/51/ac/9891816280e0018c48f8dfd61b136af7b0dcb4a088895db2531acde5631b/wrapt-2.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0d89c49356e5e2a50fa86b40e0510082abcd0530f926cbd71cf25bee6b9d82d7", size = 150188, upload-time = "2026-02-03T02:11:57.053Z" }, + { url = "https://files.pythonhosted.org/packages/24/98/e2f273b6d70d41f98d0739aa9a269d0b633684a5fb17b9229709375748d4/wrapt-2.1.1-cp314-cp314t-win32.whl", hash = "sha256:f4c7dd22cf7f36aafe772f3d88656559205c3af1b7900adfccb70edeb0d2abc4", size = 60425, upload-time = "2026-02-03T02:11:35.007Z" }, + { url = "https://files.pythonhosted.org/packages/1e/06/b500bfc38a4f82d89f34a13069e748c82c5430d365d9e6b75afb3ab74457/wrapt-2.1.1-cp314-cp314t-win_amd64.whl", hash = "sha256:f76bc12c583ab01e73ba0ea585465a41e48d968f6d1311b4daec4f8654e356e3", size = 63855, upload-time = "2026-02-03T02:12:15.47Z" }, + { url = "https://files.pythonhosted.org/packages/d9/cc/5f6193c32166faee1d2a613f278608e6f3b95b96589d020f0088459c46c9/wrapt-2.1.1-cp314-cp314t-win_arm64.whl", hash = "sha256:7ea74fc0bec172f1ae5f3505b6655c541786a5cabe4bbc0d9723a56ac32eb9b9", size = 60443, upload-time = "2026-02-03T02:11:30.869Z" }, + { url = "https://files.pythonhosted.org/packages/c4/da/5a086bf4c22a41995312db104ec2ffeee2cf6accca9faaee5315c790377d/wrapt-2.1.1-py3-none-any.whl", hash = "sha256:3b0f4629eb954394a3d7c7a1c8cca25f0b07cefe6aa8545e862e9778152de5b7", size = 43886, upload-time = "2026-02-03T02:11:45.048Z" }, ] [[package]] name = "yake" -version = "0.6.0" +version = "0.7.1" source = { editable = "." } dependencies = [ { name = "click" }, { name = "jellyfish" }, - { name = "networkx" }, - { name = "numpy" }, + { name = "networkx", version = "3.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "networkx", version = "3.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "segtok" }, { name = "tabulate" }, ] @@ -1194,10 +2557,15 @@ benchmark = [ dev = [ { name = "black" }, { name = "flake8" }, + { name = "pylint" }, { name = "pytest" }, { name = "pytest-cov" }, { name = "ruff" }, ] +lemmatization = [ + { name = "nltk" }, + { name = "spacy" }, +] [package.metadata] requires-dist = [ @@ -1208,12 +2576,15 @@ requires-dist = [ { name = "matplotlib", marker = "extra == 'benchmark'", specifier = ">=3.5.0" }, { name = "memory-profiler", marker = "extra == 'benchmark'", specifier = ">=0.60.0" }, { name = "networkx" }, - { name = "numpy", specifier = ">=1.23.5" }, + { name = "nltk", marker = "extra == 'lemmatization'", specifier = ">=3.8.0" }, + { name = "numpy", specifier = ">=1.26.4" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3.0" }, { name = "pytest", marker = "extra == 'dev'", specifier = ">=7.0.0" }, { name = "pytest-benchmark", marker = "extra == 'benchmark'", specifier = ">=4.0.0" }, { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=4.0.0" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.1.0" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.15.0" }, { name = "segtok" }, + { name = "spacy", marker = "extra == 'lemmatization'", specifier = ">=3.8.0" }, { name = "tabulate" }, ] -provides-extras = ["dev", "benchmark"] +provides-extras = ["dev", "benchmark", "lemmatization"] diff --git a/yake/__init__.py b/yake/__init__.py index e3b90834..e85824d5 100644 --- a/yake/__init__.py +++ b/yake/__init__.py @@ -8,22 +8,15 @@ """ # pylint: skip-file -# Import the main KeywordExtractor class from .core.yake import KeywordExtractor - -# Import data structures (following reference implementation pattern) -from .data.core import DataCore -from .data.single_word import SingleWord from .data.composed_word import ComposedWord - -# Import feature calculation functions (modular approach from reference) +from .data.core import DataCore from .data.features import ( - calculate_term_features, calculate_composed_features, - get_feature_aggregation + calculate_term_features, + get_feature_aggregation, ) - -# Import utilities +from .data.single_word import SingleWord from .data.utils import pre_filter # Version information @@ -35,13 +28,13 @@ # Public API (following reference implementation) __all__ = [ - 'KeywordExtractor', - 'DataCore', - 'SingleWord', - 'ComposedWord', - 'calculate_term_features', - 'calculate_composed_features', - 'get_feature_aggregation', - 'pre_filter', - 'MAX_NGRAM_SIZE', + "KeywordExtractor", + "DataCore", + "SingleWord", + "ComposedWord", + "calculate_term_features", + "calculate_composed_features", + "get_feature_aggregation", + "pre_filter", + "MAX_NGRAM_SIZE", ] diff --git a/yake/cli.py b/yake/cli.py index 6b3126e9..28577d76 100644 --- a/yake/cli.py +++ b/yake/cli.py @@ -1,8 +1,10 @@ """CLI para extração de palavras-chave utilizando YAKE!""" import sys + import click from tabulate import tabulate + import yake diff --git a/yake/core/Levenshtein.py b/yake/core/Levenshtein.py index 9ba0dab7..3b55a562 100644 --- a/yake/core/Levenshtein.py +++ b/yake/core/Levenshtein.py @@ -1,9 +1,9 @@ """ Module providing optimized Levenshtein distance and ratio calculations. -This module implements an optimized version of the Levenshtein (edit distance) -algorithm for measuring the difference between two strings. It provides both -a raw distance calculation and a normalized similarity ratio, which are useful +This module implements an optimized version of the Levenshtein (edit distance) +algorithm for measuring the difference between two strings. It provides both +a raw distance calculation and a normalized similarity ratio, which are useful for comparing text strings and identifying potential matches with slight variations. Optimizations include: @@ -117,11 +117,11 @@ def distance(seq1: str, seq2: str) -> int: for i in range(1, len1 + 1): current_row[0] = i for j in range(1, len2 + 1): - cost = 0 if seq1[i-1] == seq2[j-1] else 1 + cost = 0 if seq1[i - 1] == seq2[j - 1] else 1 current_row[j] = min( - current_row[j-1] + 1, # insertion - previous_row[j] + 1, # deletion - previous_row[j-1] + cost # substitution + current_row[j - 1] + 1, # insertion + previous_row[j] + 1, # deletion + previous_row[j - 1] + cost, # substitution ) previous_row, current_row = current_row, previous_row @@ -142,8 +142,11 @@ def _simple_distance(seq1: str, seq2: str) -> int: if seq1[0] == seq2[0]: return Levenshtein._simple_distance(seq1[1:], seq2[1:]) - return 1 + min( - Levenshtein._simple_distance(seq1[1:], seq2), # deletion - Levenshtein._simple_distance(seq1, seq2[1:]), # insertion - Levenshtein._simple_distance(seq1[1:], seq2[1:]) # substitution + return ( + 1 + + min( + Levenshtein._simple_distance(seq1[1:], seq2), # deletion + Levenshtein._simple_distance(seq1, seq2[1:]), # insertion + Levenshtein._simple_distance(seq1[1:], seq2[1:]), # substitution + ) ) diff --git a/yake/core/highlight.py b/yake/core/highlight.py index 1bcb82fc..29f01342 100644 --- a/yake/core/highlight.py +++ b/yake/core/highlight.py @@ -6,14 +6,13 @@ allowing for flexible text markup based on keyword extraction results. """ -import re import logging +import re DEFAULT_HIGHLIGHT_PRE = "" DEFAULT_HIGHLIGHT_POST = "" - class TextHighlighter: """ Class for highlighting keywords in text. @@ -61,7 +60,7 @@ def highlight(self, text, keywords): The text with highlighted keywords. """ n_text = "" - + if keywords: kw_list = keywords if isinstance(keywords[0], tuple): @@ -94,7 +93,8 @@ def format_one_gram_text(self, text, relevant_words_array): kw = re.sub(r'[!",:.;?()]$|^[!",:.;?()]|\W[!",:.;?()]', "", token) if kw.lower() in relevant_words_array: text_tokens[tk] = token.replace( - kw, f"{self.highlight_pre}{kw}{self.highlight_post}" + kw, + f"{self.highlight_pre}{kw}{self.highlight_post}", ) except re.error as e: logging.error("Regex error: %s", e) @@ -122,7 +122,9 @@ def format_n_gram_text(self, text, relevant_words_array): while y < len(text_tokens): n_gram_data = self.find_relevant_ngrams( - y, text_tokens, relevant_words_array + y, + text_tokens, + relevant_words_array, ) n_gram_word_list, splited_n_gram_kw_list = n_gram_data @@ -134,7 +136,10 @@ def format_n_gram_text(self, text, relevant_words_array): "final_splited_text": final_splited_text, } y, new_expression = self.process_ngrams( - text_tokens, y, n_gram_word_list, context + text_tokens, + y, + n_gram_word_list, + context, ) final_splited_text.append(new_expression) else: @@ -158,13 +163,12 @@ def find_relevant_ngrams(self, position, text_tokens, relevant_words_array): Returns: Tuple containing n-gram word list and split n-gram keyword list """ - - ngram_data = self._find_more_relevant_helper( - position, text_tokens, relevant_words_array + return self._find_more_relevant_helper( + position, + text_tokens, + relevant_words_array, ) - return ngram_data - def _find_more_relevant_helper(self, position, text_tokens, relevant_words_array): """ Helper method for finding relevant n-gram words. @@ -198,7 +202,8 @@ def _find_more_relevant_helper(self, position, text_tokens, relevant_words_array if temporary_list_two: sorted_temp = sorted( - temporary_list_two, key=lambda x: relevant_words_array.index(x.lower()) + temporary_list_two, + key=lambda x: relevant_words_array.index(x.lower()), ) kw_list.append(sorted_temp[0]) splited_n_gram_word_list.append(kw_list[0].split()) @@ -224,7 +229,9 @@ def process_ngrams(self, text_tokens, position, n_gram_word_list, context): """ if len(n_gram_word_list[0].split(" ")) == 1: position, new_expression = self.replace_token( - text_tokens, position, n_gram_word_list + text_tokens, + position, + n_gram_word_list, ) else: ctx = self._create_ngram_context( @@ -234,7 +241,9 @@ def process_ngrams(self, text_tokens, position, n_gram_word_list, context): context["final_splited_text"], ) position, new_expression = self._process_multi_word_ngrams_helper( - text_tokens, position, ctx + text_tokens, + position, + ctx, ) return position, new_expression @@ -291,7 +300,6 @@ def _process_multi_word_ngrams_helper(self, text_tokens, position, ctx): splited_one = n_gram_word_list[0].split() - for idx in range(len(splited_one)): if position + idx < len(text_tokens): self._update_kw_list( @@ -308,13 +316,16 @@ def _process_multi_word_ngrams_helper(self, text_tokens, position, ctx): return position + 1, text_tokens[position] min_score_word = min( - kw_list, key=lambda x: relevant_words_array.index(x.lower()) + kw_list, + key=lambda x: relevant_words_array.index(x.lower()), ) if kw_list.index(min_score_word) == 0: term_list = [min_score_word] position, new_expression = self.replace_token( - text_tokens, position, term_list + text_tokens, + position, + term_list, ) else: terms_ctx = { @@ -324,7 +335,9 @@ def _process_multi_word_ngrams_helper(self, text_tokens, position, ctx): "final_splited_text": final_splited_text, } position, new_expression = self._process_relevant_terms_helper( - text_tokens, position, terms_ctx + text_tokens, + position, + terms_ctx, ) return position, new_expression @@ -343,7 +356,9 @@ def _update_kw_list(self, position, text_tokens, relevant_words_array, kw_dict): kw_dict: Dictionary containing 'kw_list' and 'splited_n_gram_kw_list' """ ngram_result = self._find_more_relevant_helper( - position, text_tokens, relevant_words_array + position, + text_tokens, + relevant_words_array, ) new_kw_list, new_split_list = ngram_result kw_dict["kw_list"].extend(new_kw_list) @@ -374,7 +389,7 @@ def _process_relevant_terms_helper(self, text_tokens, position, ctx): return position + 1, text_tokens[position] index_of_more_relevant = splited_n_gram_kw_list[0].index( - min_score_word.split()[0] + min_score_word.split()[0], ) temporal_kw = " ".join(splited_n_gram_kw_list[0][:index_of_more_relevant]) @@ -390,7 +405,9 @@ def _process_relevant_terms_helper(self, text_tokens, position, ctx): print(f"Error: {e}") term_list = [temporal_kw] position, new_expression = self.replace_token( - text_tokens, position, term_list + text_tokens, + position, + term_list, ) else: nonrelevant_ctx = { @@ -399,7 +416,9 @@ def _process_relevant_terms_helper(self, text_tokens, position, ctx): "relevant_words_array": relevant_words_array, } position, new_expression = self._handle_nonrelevant_temporal_keyword( - text_tokens, position, nonrelevant_ctx + text_tokens, + position, + nonrelevant_ctx, ) return position, new_expression @@ -440,12 +459,16 @@ def _handle_temporal_keyword(self, text_tokens, position, ctx): del final_splited_text[-1] position -= 1 position, new_expression = self.replace_token( - text_tokens, position, term_list + text_tokens, + position, + term_list, ) else: term_list = [temporal_kw] position, new_expression = self.replace_token( - text_tokens, position, term_list + text_tokens, + position, + term_list, ) return position, new_expression diff --git a/yake/core/yake.py b/yake/core/yake.py index 681274f3..ad20ef88 100644 --- a/yake/core/yake.py +++ b/yake/core/yake.py @@ -7,12 +7,15 @@ to ranked keywords. """ -import os -import logging import functools -from typing import List, Tuple, Optional, Set, Callable +import logging +import os +from collections.abc import Callable + import jellyfish # pylint: disable=import-error + from yake.data import DataCore + from .Levenshtein import Levenshtein # Configure module logger @@ -41,12 +44,12 @@ def __init__( dedup_func: str = "seqm", window_size: int = 1, top: int = 20, - features: Optional[List[str]] = None, - stopwords: Optional[Set[str]] = None, + features: list[str] | None = None, + stopwords: set[str] | None = None, lemmatize: bool = False, lemma_aggregation: str = "min", lemmatizer: str = "spacy", - **kwargs + **kwargs, ): """ Initialize the KeywordExtractor with configuration parameters. @@ -85,7 +88,15 @@ def __init__( } # Override with any kwargs for backwards compatibility - for key in ["lan", "n", "dedup_lim", "dedup_func", "window_size", "top", "features"]: + for key in [ + "lan", + "n", + "dedup_lim", + "dedup_func", + "window_size", + "top", + "features", + ]: if key in kwargs: self.config[key] = kwargs[key] @@ -94,7 +105,9 @@ def __init__( self.lemma_aggregation = lemma_aggregation self.lemmatizer = lemmatizer self._lemmatizer_instance = None # Lazy loaded when needed - self._lemmatizer_load_failed = False # Track if loading failed to avoid repeated warnings + self._lemmatizer_load_failed = ( + False # Track if loading failed to avoid repeated warnings + ) # Load appropriate stopwords and deduplication function self.stopword_set = self._load_stopwords(stopwords or kwargs.get("stopwords")) @@ -105,13 +118,13 @@ def __init__( # Cache management stats (combined to reduce instance attributes) self._cache_stats = { - 'hits': 0, - 'misses': 0, - 'docs_processed': 0, - 'last_text_size': 0 + "hits": 0, + "misses": 0, + "docs_processed": 0, + "last_text_size": 0, } - def _load_stopwords(self, stopwords: Optional[Set[str]]) -> Set[str]: + def _load_stopwords(self, stopwords: set[str] | None) -> set[str]: """ Load stopwords from file or use provided set. @@ -132,7 +145,8 @@ def _load_stopwords(self, stopwords: Optional[Set[str]]) -> Set[str]: # Determine the path to the appropriate stopword list dir_path = os.path.dirname(os.path.realpath(__file__)) local_path = os.path.join( - "StopwordsList", f"stopwords_{self.config['lan'][:2].lower()}.txt" + "StopwordsList", + f"stopwords_{self.config['lan'][:2].lower()}.txt", ) # Fall back to language-agnostic list if specific language not available @@ -262,8 +276,7 @@ def _ultra_fast_similarity(s1: str, s2: str) -> float: if not chars_union: return 0.0 - char_overlap = (len(set(s1_lower) & set(s2_lower)) / - len(chars_union)) + char_overlap = len(set(s1_lower) & set(s2_lower)) / len(chars_union) if char_overlap < 0.2: # Few common characters return 0.0 @@ -277,22 +290,21 @@ def _ultra_fast_similarity(s1: str, s2: str) -> float: if len(words1) > 1 or len(words2) > 1: word_union = set(words1) | set(words2) if word_union: - word_overlap = (len(set(words1) & set(words2)) / - len(word_union)) + word_overlap = len(set(words1) & set(words2)) / len(word_union) if word_overlap > 0.4: return word_overlap # Trigram similarity - trigrams1 = set(s1_lower[i:i+3] for i in range(len(s1_lower)-2)) - trigrams2 = set(s2_lower[i:i+3] for i in range(len(s2_lower)-2)) + trigrams1 = set(s1_lower[i : i + 3] for i in range(len(s1_lower) - 2)) + trigrams2 = set(s2_lower[i : i + 3] for i in range(len(s2_lower) - 2)) trigram_union = trigrams1 | trigrams2 - trigram_overlap = (len(trigrams1 & trigrams2) / len(trigram_union) - if trigram_union else 0) + trigram_overlap = ( + len(trigrams1 & trigrams2) / len(trigram_union) if trigram_union else 0 + ) # Combine metrics with optimal weights - return min(0.3 * len_ratio + 0.2 * char_overlap + - 0.5 * trigram_overlap, 1.0) + return min(0.3 * len_ratio + 0.2 * char_overlap + 0.5 * trigram_overlap, 1.0) def _aggressive_pre_filter(self, cand1: str, cand2: str) -> bool: """ @@ -315,13 +327,13 @@ def _aggressive_pre_filter(self, cand1: str, cand2: str) -> bool: # First/last character and prefix filters for longer strings if max_len > 3: - if (cand1[0] != cand2[0] or cand1[-1] != cand2[-1]): + if cand1[0] != cand2[0] or cand1[-1] != cand2[-1]: return False if min(len1, len2) >= 3 and cand1[:2].lower() != cand2[:2].lower(): return False # Word count filter - if abs(cand1.count(' ') - cand2.count(' ')) > 1: + if abs(cand1.count(" ") - cand2.count(" ")) > 1: return False return True @@ -332,10 +344,10 @@ def _optimized_similarity(self, cand1: str, cand2: str) -> float: cache_key = (cand1, cand2) if cand1 <= cand2 else (cand2, cand1) if cache_key in self._similarity_cache: - self._cache_stats['hits'] += 1 + self._cache_stats["hits"] += 1 return self._similarity_cache[cache_key] - self._cache_stats['misses'] += 1 + self._cache_stats["misses"] += 1 # Pre-filter for quick rejection (after cache miss) if not self._aggressive_pre_filter(cand1, cand2): @@ -417,16 +429,16 @@ def _get_lemmatizer_instance(self): # pylint: disable=too-many-return-statement if self.lemmatizer == "nltk": try: - from nltk.stem import WordNetLemmatizer # pylint: disable=import-outside-toplevel import nltk # pylint: disable=import-outside-toplevel + from nltk.stem import WordNetLemmatizer # pylint: disable=import-outside-toplevel # Download wordnet data if needed try: - nltk.data.find('corpora/wordnet') + nltk.data.find("corpora/wordnet") except LookupError: logger.info("Downloading NLTK wordnet data...") - nltk.download('wordnet', quiet=True) - nltk.download('omw-1.4', quiet=True) + nltk.download("wordnet", quiet=True) + nltk.download("omw-1.4", quiet=True) self._lemmatizer_instance = WordNetLemmatizer() logger.info("Loaded NLTK WordNetLemmatizer") @@ -434,15 +446,13 @@ def _get_lemmatizer_instance(self): # pylint: disable=too-many-return-statement except ImportError: logger.warning( - "NLTK not installed. Lemmatization disabled. " - "Install with: uv pip install yake[lemmatization]" + "NLTK not installed. Lemmatization disabled. Install with: uv pip install yake[lemmatization]" ) self._lemmatizer_load_failed = True return None logger.warning( - "Unknown lemmatizer: %s. Lemmatization disabled.", - self.lemmatizer + "Unknown lemmatizer: %s. Lemmatization disabled.", self.lemmatizer ) self._lemmatizer_load_failed = True return None @@ -474,8 +484,8 @@ def _lemmatize_text(self, text: str) -> str: def _lemmatize_keywords( # pylint: disable=too-many-locals self, - keywords: List[Tuple[str, float]] - ) -> List[Tuple[str, float]]: + keywords: list[tuple[str, float]], + ) -> list[tuple[str, float]]: """ Aggregate keywords by lemma. @@ -498,8 +508,8 @@ def _lemmatize_keywords( # pylint: disable=too-many-locals # (warning was already shown on first load attempt) return keywords - from collections import defaultdict # pylint: disable=import-outside-toplevel import statistics # pylint: disable=import-outside-toplevel + from collections import defaultdict # pylint: disable=import-outside-toplevel lemma_groups = defaultdict(list) @@ -539,7 +549,7 @@ def _lemmatize_keywords( # pylint: disable=too-many-locals else: logger.warning( "Unknown aggregation method: %s. Using 'min'", - self.lemma_aggregation + self.lemma_aggregation, ) best_kw, best_score = min(group, key=lambda x: x[1]) result.append((best_kw, best_score)) @@ -555,7 +565,7 @@ def _get_strategy(self, num_candidates: int) -> str: return "medium" return "large" - def extract_keywords(self, text: Optional[str]) -> List[Tuple[str, float]]: + def extract_keywords(self, text: str | None) -> list[tuple[str, float]]: """ Extract keywords from the given text using adaptive optimizations. @@ -611,7 +621,7 @@ def extract_keywords(self, text: Optional[str]) -> List[Tuple[str, float]]: # Get valid candidates candidates_sorted = sorted( [cc for cc in dc.candidates.values() if cc.is_valid()], - key=lambda c: c.h + key=lambda c: c.h, ) # No deduplication case @@ -648,8 +658,8 @@ def extract_keywords(self, text: Optional[str]) -> List[Tuple[str, float]]: # Apply lemmatization if enabled if self.lemmatize: logger.debug( - "Applying lemmatization with aggregation method: %s", - self.lemma_aggregation + "Applying lemmatization with aggregation method: %s", + self.lemma_aggregation, ) results = self._lemmatize_keywords(results) @@ -660,16 +670,14 @@ def extract_keywords(self, text: Optional[str]) -> List[Tuple[str, float]]: except Exception as e: # pylint: disable=broad-exception-caught # Python 3.11+ enhanced error messages with exception notes - error_msg = ( - f"Exception during keyword extraction: {str(e)} " - f"(text preview: '{text[:100] if text else ''}...')" - ) + error_msg = f"Exception during keyword extraction: {str(e)} (text preview: '{text[:100] if text else ''}...')" logger.warning(error_msg) - + # Add contextual note for better debugging (Python 3.11+) - if hasattr(e, 'add_note'): - e.add_note(f"YAKE config: lan={self.config['lan']}, n={self.config['n']}, " - f"dedup_lim={self.config['dedup_lim']}") + if hasattr(e, "add_note"): + e.add_note( + f"YAKE config: lan={self.config['lan']}, n={self.config['n']}, dedup_lim={self.config['dedup_lim']}" + ) e.add_note(f"Text length: {len(text) if text else 0} characters") return [] @@ -691,7 +699,10 @@ def _optimized_small_dedup(self, candidates_sorted): # Check against existing results (pre-filter first) for _, prev_cand in result_set: if self._aggressive_pre_filter(cand_kw, prev_cand.unique_kw): - similarity = self._optimized_similarity(cand_kw, prev_cand.unique_kw) + similarity = self._optimized_similarity( + cand_kw, + prev_cand.unique_kw, + ) if similarity > self.config["dedup_lim"]: should_add = False break @@ -727,7 +738,10 @@ def _optimized_medium_dedup(self, candidates_sorted): continue if self._aggressive_pre_filter(cand_kw, prev_cand.unique_kw): - similarity = self._optimized_similarity(cand_kw, prev_cand.unique_kw) + similarity = self._optimized_similarity( + cand_kw, + prev_cand.unique_kw, + ) if similarity > self.config["dedup_lim"]: should_add = False break @@ -748,7 +762,10 @@ def _optimized_large_dedup(self, candidates_sorted): seen_exact = set() processed = 0 - max_processing = min(len(candidates_sorted), self.config["top"] * 10) # Limit processing + max_processing = min( + len(candidates_sorted), + self.config["top"] * 10, + ) # Limit processing for cand in candidates_sorted: if processed >= max_processing: @@ -789,14 +806,14 @@ def _optimized_large_dedup(self, candidates_sorted): def get_cache_stats(self): """Return cache performance statistics.""" - total = self._cache_stats['hits'] + self._cache_stats['misses'] - hit_rate = self._cache_stats['hits'] / total * 100 if total > 0 else 0 + total = self._cache_stats["hits"] + self._cache_stats["misses"] + hit_rate = self._cache_stats["hits"] / total * 100 if total > 0 else 0 return { - 'hits': self._cache_stats['hits'], - 'misses': self._cache_stats['misses'], - 'hit_rate': hit_rate, - 'docs_processed': self._cache_stats['docs_processed'], - 'cache_size': self._get_cache_usage() + "hits": self._cache_stats["hits"], + "misses": self._cache_stats["misses"], + "hit_rate": hit_rate, + "docs_processed": self._cache_stats["docs_processed"], + "cache_size": self._get_cache_usage(), } def _manage_cache_lifecycle(self, text): @@ -811,18 +828,18 @@ def _manage_cache_lifecycle(self, text): Args: text: The text that was just processed """ - self._cache_stats['docs_processed'] += 1 + self._cache_stats["docs_processed"] += 1 text_size = len(text.split()) - self._cache_stats['last_text_size'] = text_size + self._cache_stats["last_text_size"] = text_size # Get current cache usage cache_usage = self._get_cache_usage() # HEURISTIC: Clear cache if any condition is met should_clear = ( - text_size > 2000 or # Large document (>2000 words) - cache_usage > 0.8 or # Cache >80% full - self._cache_stats['docs_processed'] % 50 == 0 # Failsafe: every 50 docs + text_size > 2000 # Large document (>2000 words) + or cache_usage > 0.8 # Cache >80% full + or self._cache_stats["docs_processed"] % 50 == 0 # Failsafe: every 50 docs ) if should_clear: @@ -852,18 +869,18 @@ def clear_caches(self): - LRU cache for text tagging (10,000 entries max) - LRU cache for Levenshtein distance (40,000 entries max) - Instance-level similarity cache - + When to call manually: - Processing batches of documents in a loop - Running in memory-constrained environments (e.g., AWS Lambda) - After processing large documents (>5000 words) - Before critical operations that need maximum available memory - + Performance impact: - Next 5-10 extractions will be ~10-20% slower while caches warm up - After warm-up, performance returns to optimized levels - Trade-off is worthwhile for preventing memory leaks in production - + Example usage: >>> extractor = KeywordExtractor(lan="en") >>> for doc in large_document_batch: @@ -871,7 +888,7 @@ def clear_caches(self): ... process_keywords(keywords) ... if doc.size > 10000: # Manual clear for huge docs ... extractor.clear_caches() - + Note: This is called automatically by the intelligent cache manager based on heuristics (text size, cache saturation, document count). @@ -887,6 +904,7 @@ def clear_caches(self): try: # pylint: disable=import-outside-toplevel from yake.data.utils import get_tag + get_tag.cache_clear() except (ImportError, AttributeError): pass @@ -894,16 +912,17 @@ def clear_caches(self): try: # pylint: disable=import-outside-toplevel from yake.core.Levenshtein import Levenshtein as LevenshteinModule + LevenshteinModule.ratio.cache_clear() LevenshteinModule.distance.cache_clear() except (ImportError, AttributeError): pass # Clear instance cache - if hasattr(self, '_similarity_cache'): + if hasattr(self, "_similarity_cache"): self._similarity_cache.clear() # Reset tracking - self._cache_stats['docs_processed'] = 0 - self._cache_stats['hits'] = 0 - self._cache_stats['misses'] = 0 + self._cache_stats["docs_processed"] = 0 + self._cache_stats["hits"] = 0 + self._cache_stats["misses"] = 0 diff --git a/yake/data/__init__.py b/yake/data/__init__.py index 4cd1eff8..ad2b5b53 100644 --- a/yake/data/__init__.py +++ b/yake/data/__init__.py @@ -1,7 +1,7 @@ """Data representation module for keyword extraction!""" +from .composed_word import ComposedWord from .core import DataCore from .single_word import SingleWord -from .composed_word import ComposedWord __all__ = ["DataCore", "SingleWord", "ComposedWord"] diff --git a/yake/data/composed_word.py b/yake/data/composed_word.py index a7309cda..c1360364 100644 --- a/yake/data/composed_word.py +++ b/yake/data/composed_word.py @@ -8,9 +8,11 @@ """ import logging -from typing import List, Tuple, Optional, Any -import numpy as np # pylint: disable=import-error +from typing import Any + import jellyfish # pylint: disable=import-error +import numpy as np # pylint: disable=import-error + from .utils import STOPWORD_WEIGHT # Configure module logger @@ -34,10 +36,19 @@ class ComposedWord: # Use __slots__ to reduce memory overhead per instance # (optimized to use direct attributes) - __slots__ = ('_tags', '_kw', '_unique_kw', '_size', '_terms', '_tf', - '_integrity', '_h', '_start_or_end_stopwords') - - def __init__(self, terms: Optional[List[Tuple[str, str, Any]]]): + __slots__ = ( + "_tags", + "_kw", + "_unique_kw", + "_size", + "_terms", + "_tf", + "_integrity", + "_h", + "_start_or_end_stopwords", + ) + + def __init__(self, terms: list[tuple[str, str, Any]] | None): """ Initialize a ComposedWord object representing a multi-word term. @@ -227,7 +238,8 @@ def build_features(self, params): """ # Get feature configuration from parameters features = params.get( - "features", ["wfreq", "wrel", "tf", "wcase", "wpos", "wspread"] + "features", + ["wfreq", "wrel", "tf", "wcase", "wpos", "wspread"], ) _stopword = params.get("_stopword", [True, False]) @@ -288,7 +300,8 @@ def build_features(self, params): for discart_stopword in _stopword: # Calculate aggregate feature metrics (f_sum, f_prod, f_sum_prod) = self.get_composed_feature( - feature_name, discart_stopword=discart_stopword + feature_name, + discart_stopword=discart_stopword, ) # Add sum feature @@ -347,37 +360,40 @@ def update_h(self, features=None, is_virtual=False): prod_h *= term_base.h # Handle stopwords according to configured weight method - else: - if STOPWORD_WEIGHT == "bi": - # BiWeight: use probabilities of adjacent term connections - - prob_t1 = 0.0 - if t > 0 and term_base.g.has_edge(self.terms[t - 1].id, term_base.id): - prob_t1 = ( - term_base.g[self.terms[t - 1].id][term_base.id]["tf"] - / self.terms[t - 1].tf - ) - - prob_t2 = 0.0 - if t < len(self.terms) - 1 and term_base.g.has_edge( - term_base.id, self.terms[t + 1].id - ): - prob_t2 = ( - term_base.g[term_base.id][self.terms[t + 1].id]["tf"] - / self.terms[t + 1].tf - ) - - prob = prob_t1 * prob_t2 - prod_h *= 1 + (1 - prob) - sum_h -= 1 - prob - - elif STOPWORD_WEIGHT == "h": - # HWeight: treat stopwords like normal words - sum_h += term_base.h - prod_h *= term_base.h - elif STOPWORD_WEIGHT == "none": - # None: ignore stopwords entirely - pass + elif STOPWORD_WEIGHT == "bi": + # BiWeight: use probabilities of adjacent term connections + + prob_t1 = 0.0 + if t > 0 and term_base.g.has_edge( + self.terms[t - 1].id, + term_base.id, + ): + prob_t1 = ( + term_base.g[self.terms[t - 1].id][term_base.id]["tf"] + / self.terms[t - 1].tf + ) + + prob_t2 = 0.0 + if t < len(self.terms) - 1 and term_base.g.has_edge( + term_base.id, + self.terms[t + 1].id, + ): + prob_t2 = ( + term_base.g[term_base.id][self.terms[t + 1].id]["tf"] + / self.terms[t + 1].tf + ) + + prob = prob_t1 * prob_t2 + prod_h *= 1 + (1 - prob) + sum_h -= 1 - prob + + elif STOPWORD_WEIGHT == "h": + # HWeight: treat stopwords like normal words + sum_h += term_base.h + prod_h *= term_base.h + elif STOPWORD_WEIGHT == "none": + # None: ignore stopwords entirely + pass # Move to next term t += 1 diff --git a/yake/data/core.py b/yake/data/core.py index a5c851bf..617f9c42 100644 --- a/yake/data/core.py +++ b/yake/data/core.py @@ -9,18 +9,20 @@ import logging import string -from typing import Dict, List, Set, Optional, Any +from typing import Any + import networkx as nx # pylint: disable=import-error import numpy as np # pylint: disable=import-error +from segtok.tokenizer import split_contractions, web_tokenizer # pylint: disable=import-error -from segtok.tokenizer import web_tokenizer, split_contractions # pylint: disable=import-error -from .utils import pre_filter, tokenize_sentences, get_tag -from .single_word import SingleWord from .composed_word import ComposedWord +from .single_word import SingleWord +from .utils import get_tag, pre_filter, tokenize_sentences # Configure module logger logger = logging.getLogger(__name__) + class DataCore: """ Core data representation for document analysis and keyword extraction. @@ -37,8 +39,8 @@ class DataCore: def __init__( self, text: str, - stopword_set: Set[str], - config: Optional[Dict[str, Any]] = None + stopword_set: set[str], + config: dict[str, Any] | None = None, ): """ Initialize the data core for keyword extraction. @@ -214,10 +216,10 @@ def _build(self, text: str, windows_size: int, n: int) -> None: def _process_sentence( self, - sentence: List[str], + sentence: list[str], sentence_id: int, pos_text: int, - context: Dict[str, Any] + context: dict[str, Any], ) -> int: """ Process a single sentence from the document. @@ -236,9 +238,7 @@ def _process_sentence( """ # Initialize lists to store processed sentence components sentence_obj_aux = [] # Blocks of words within the sentence - block_of_word_obj = ( - [] - ) # Current block of continuous words (separated by punctuation) + block_of_word_obj = [] # Current block of continuous words (separated by punctuation) # Extend the context with sentence information for word processing processing_context = context.copy() @@ -260,7 +260,10 @@ def _process_sentence( } # Process this word and update position counter pos_text = self._process_word( - word, pos_text, processing_context, word_context + word, + pos_text, + processing_context, + word_context, ) # Save any remaining word block @@ -334,7 +337,9 @@ def _update_cooccurrence(self, block_of_word_obj, term_obj, windows_size): """ # Calculate the window of previous words to consider for co-occurrence word_windows = list( - range(max(0, len(block_of_word_obj) - windows_size), len(block_of_word_obj)) + range( + max(0, len(block_of_word_obj) - windows_size), len(block_of_word_obj) + ), ) # For each word in the window, update co-occurrence if it's a valid term @@ -364,9 +369,7 @@ def _generate_candidates(self, term, term_obj, block_of_word_obj, n): # Calculate window of previous words to consider for multi-term candidates word_windows = list( range(max(0, len(block_of_word_obj) - (n - 1)), len(block_of_word_obj)) - )[ - ::-1 - ] # Reverse to build phrases from right to left + )[::-1] # Reverse to build phrases from right to left # Generate multi-term candidates with increasing length for w in word_windows: @@ -447,7 +450,7 @@ def build_candidate(self, candidate_string: str) -> ComposedWord: # Create and return the composed word return ComposedWord(candidate_terms) - def build_single_terms_features(self, features: Optional[List[str]] = None) -> None: + def build_single_terms_features(self, features: list[str] | None = None) -> None: """ Calculates and updates statistical features for all single terms in the text. This includes term frequency statistics and other features specified in the @@ -482,7 +485,7 @@ def build_single_terms_features(self, features: Optional[List[str]] = None) -> N for term in self.terms.values(): term.update_h(stats, features=features) - def build_mult_terms_features(self, features: Optional[List[str]] = None) -> None: + def build_mult_terms_features(self, features: list[str] | None = None) -> None: """ Build features for multi-word terms. diff --git a/yake/data/features.py b/yake/data/features.py index 5cf7ffda..c21f1a48 100644 --- a/yake/data/features.py +++ b/yake/data/features.py @@ -10,7 +10,8 @@ import logging import math -from typing import Dict, Any, Tuple +from typing import Any + import numpy as np # pylint: disable=import-error # Configure module logger @@ -23,8 +24,8 @@ def calculate_term_features( max_tf: float, avg_tf: float, std_tf: float, - number_of_sentences: int -) -> Dict[str, float]: + number_of_sentences: int, +) -> dict[str, float]: """ Calculate all statistical features for a single term. @@ -49,10 +50,10 @@ def calculate_term_features( metrics = term.graph_metrics # Calculate WRel (term relevance based on graph connectivity) - pwl = metrics['pwl'] - pwr = metrics['pwr'] - pl = metrics['wdl'] / max_tf if max_tf > 0 else 0 - pr = metrics['wdr'] / max_tf if max_tf > 0 else 0 + pwl = metrics["pwl"] + pwr = metrics["pwr"] + pl = metrics["wdl"] / max_tf if max_tf > 0 else 0 + pr = metrics["wdr"] / max_tf if max_tf > 0 else 0 w_rel = (0.5 + (pwl * (term.tf / max_tf))) + (0.5 + (pwr * (term.tf / max_tf))) @@ -70,26 +71,24 @@ def calculate_term_features( w_pos = math.log(math.log(3.0 + np.median(positions))) # Calculate H (overall importance score) - h_score = (w_pos * w_rel) / ( - w_case + (w_freq / w_rel) + (w_spread / w_rel) - ) + h_score = (w_pos * w_rel) / (w_case + (w_freq / w_rel) + (w_spread / w_rel)) return { - 'w_rel': w_rel, - 'w_freq': w_freq, - 'w_spread': w_spread, - 'w_case': w_case, - 'w_pos': w_pos, - 'pl': pl, - 'pr': pr, - 'h': h_score + "w_rel": w_rel, + "w_freq": w_freq, + "w_spread": w_spread, + "w_case": w_case, + "w_pos": w_pos, + "pl": pl, + "pr": pr, + "h": h_score, } def calculate_composed_features( composed_word: Any, - stopword_weight: str = 'bi' -) -> Dict[str, float]: + stopword_weight: str = "bi", +) -> dict[str, float]: """ Calculate features for multi-word expressions (n-grams). @@ -112,32 +111,32 @@ def calculate_composed_features( # Non-stopwords: directly contribute their H scores sum_h += term.h prod_h *= term.h - else: - # Stopwords: weight by connection probability - if stopword_weight == 'bi': - prob_t1 = prob_t2 = 0.0 - - # Probability from previous term to current stopword - if t > 0 and term.g.has_edge(composed_word.terms[t-1].id, term.id): - edge_data = term.g[composed_word.terms[t-1].id][term.id] - prob_t1 = edge_data['tf'] / composed_word.terms[t-1].tf - - # Probability from current stopword to next term - if t < len(composed_word.terms) - 1 and term.g.has_edge( - term.id, composed_word.terms[t+1].id - ): - edge_data = term.g[term.id][composed_word.terms[t+1].id] - prob_t2 = edge_data['tf'] / composed_word.terms[t+1].tf - - # Combined probability affects the score - prob = prob_t1 * prob_t2 - prod_h *= 1 + (1 - prob) - sum_h -= 1 - prob - - elif stopword_weight == 'h': - # Alternative: include stopword's H value - sum_h += term.h - prod_h *= term.h + # Stopwords: weight by connection probability + elif stopword_weight == "bi": + prob_t1 = prob_t2 = 0.0 + + # Probability from previous term to current stopword + if t > 0 and term.g.has_edge(composed_word.terms[t - 1].id, term.id): + edge_data = term.g[composed_word.terms[t - 1].id][term.id] + prob_t1 = edge_data["tf"] / composed_word.terms[t - 1].tf + + # Probability from current stopword to next term + if t < len(composed_word.terms) - 1 and term.g.has_edge( + term.id, + composed_word.terms[t + 1].id, + ): + edge_data = term.g[term.id][composed_word.terms[t + 1].id] + prob_t2 = edge_data["tf"] / composed_word.terms[t + 1].tf + + # Combined probability affects the score + prob = prob_t1 * prob_t2 + prod_h *= 1 + (1 - prob) + sum_h -= 1 - prob + + elif stopword_weight == "h": + # Alternative: include stopword's H value + sum_h += term.h + prod_h *= term.h # If 'none', stopwords are ignored (no contribution) # Use term frequency @@ -146,19 +145,14 @@ def calculate_composed_features( # Calculate final H score h_score = prod_h / ((sum_h + 1) * tf_used) if tf_used > 0 else 0 - return { - 'prod_h': prod_h, - 'sum_h': sum_h, - 'tf_used': tf_used, - 'h': h_score - } + return {"prod_h": prod_h, "sum_h": sum_h, "tf_used": tf_used, "h": h_score} def get_feature_aggregation( composed_word: Any, feature_name: str, - exclude_stopwords: bool = True -) -> Tuple[float, float, float]: + exclude_stopwords: bool = True, +) -> tuple[float, float, float]: """ Aggregate a specific feature across all terms in a composed word. diff --git a/yake/data/single_word.py b/yake/data/single_word.py index fe63369c..680afc4e 100644 --- a/yake/data/single_word.py +++ b/yake/data/single_word.py @@ -10,8 +10,9 @@ import logging import math from typing import Any -import numpy as np # pylint: disable=import-error + import networkx as nx # pylint: disable=import-error +import numpy as np # pylint: disable=import-error # Configure module logger logger = logging.getLogger(__name__) @@ -31,7 +32,7 @@ class SingleWord: """ # Use __slots__ to reduce memory overhead per instance - __slots__ = ('id', 'g', 'data', '_graph_metrics_cache', '_graph_version') + __slots__ = ("id", "g", "data", "_graph_metrics_cache", "_graph_version") def __init__(self, unique: str, idx: int, graph: nx.DiGraph): """ @@ -189,7 +190,7 @@ def set_metric(self, name, value): def invalidate_graph_cache(self): """ Invalidate the cached graph metrics. - + Call this method when the graph structure changes to force recalculation of metrics on next access. """ @@ -230,8 +231,12 @@ def get_graph_metrics(self): # Cache the results self._graph_metrics_cache = { - "wdr": wdr, "wir": wir, "pwr": pwr, - "wdl": wdl, "wil": wil, "pwl": pwl + "wdr": wdr, + "wir": wir, + "pwr": pwr, + "wdl": wdl, + "wil": wil, + "pwl": pwl, } return self._graph_metrics_cache diff --git a/yake/data/utils.py b/yake/data/utils.py index d1705e33..eda2d41f 100644 --- a/yake/data/utils.py +++ b/yake/data/utils.py @@ -9,8 +9,9 @@ import re from functools import lru_cache + from segtok.segmenter import split_multi # pylint: disable=import-error -from segtok.tokenizer import web_tokenizer, split_contractions # pylint: disable=import-error +from segtok.tokenizer import split_contractions, web_tokenizer # pylint: disable=import-error # Pre-compiled regex patterns for better performance _CAPITAL_LETTER_PATTERN = re.compile(r"^(\s*([A-Z]))")