diff --git a/docs/docusaurus/PDF/.env.sample b/docs/docusaurus/PDF/.env.sample
new file mode 100644
index 0000000000000..4ab82367826b9
--- /dev/null
+++ b/docs/docusaurus/PDF/.env.sample
@@ -0,0 +1,3 @@
+COVER_IMAGE=./StarRocks.png
+COVER_TITLE="StarRocks 3.3"
+COPYRIGHT="Copyright (c) 2024 The Linux Foundation"
diff --git a/docs/docusaurus/PDF/.gitignore b/docs/docusaurus/PDF/.gitignore
index 8a8198003d1d5..1167846aee1e7 100644
--- a/docs/docusaurus/PDF/.gitignore
+++ b/docs/docusaurus/PDF/.gitignore
@@ -1,4 +1,6 @@
.venv
+tmp/**
+.env
*.pdf
URLs.txt
pdf/**
diff --git a/docs/docusaurus/PDF/README.md b/docs/docusaurus/PDF/README.md
index 5b777b19a57b8..e88563c36c801 100644
--- a/docs/docusaurus/PDF/README.md
+++ b/docs/docusaurus/PDF/README.md
@@ -1,162 +1,170 @@
+# Generate a PDF version of the docs
-# Generate PDFs from the StarRocks Docusaurus documentation site
+This was developed to run on a Mac system with an M2 chip. Please open an issue if you try this on another architecture and have problems.
Node.js code to:
-1. Generate the ordered list of URLs from the documentation. This is done using code from `docusaurus-prince-pdf`.
-2. Convert each page to a PDF file with Gotenberg.
-3. Combine the individual PDF files using Ghostscript and `pdfcombine`.
+1. Generate the ordered list of URLs from documentation built with Docusaurus. This is done using code from [`docusaurus-prince-pdf`](https://github.com/signcl/docusaurus-prince-pdf)
+2. Open each page with [`puppeteer`](https://pptr.dev/) and save the content (without nav or the footer) as a PDF file
+3. Combine the individual PDF files using [pdftk-java](https://gitlab.com/pdftk-java/pdftk/-/blob/master/README.md?ref_type=heads)
-## Clone this repo
+## Onetime setup
-Clone this repo to your machine.
+### Clone this repo
-## Choose the branch that you want a PDF for
+Clone this repo to your machine.
-When you launch the PDF conversion environment, it will use the active branch. So, if you want a PDF for version 3.3:
+### Node.js
-```bash
-git switch branch-3.3
-```
+This is tested with Node.js version 21.
-## Launch the conversion environment
+Use Node.js version 21. You can install Node.js using the instructions at [nodejs.org](https://nodejs.org/en/download).
-The conversion process uses Docker Compose. Launch the environment by running the following command from the `starrocks/docs/docusaurus/PDF/` directory.
+### Puppeteer
-The `--wait-timeout 400` will give the services 400 seconds to get to a healthy state. This is to allow both Docusaurus and Gotenberg to become ready to handle requests. On my machine it takes about 200 seconds for Docusaurus to build the docs and start serving them.
+Add `puppeteer` and other dependencies by running this command in the repo directory `starrocks/docs/docusaurus/PDF/`.
```bash
-cd starrocks/docs/docusaurus/PDF
-docker compose up --detach --wait --wait-timeout 400 --build
+yarn install
```
-> Tip
->
-> All of the `docker compose` commands must be run from the `starrocks/docs/docusaurus/PDF/` directory.
+### pdftk-java
-## Check the status
-
-> Tip
->
-> If you do not have `jq` installed just run `docker compose ps`. The ouput using `jq` is easier to read, but you can get by with the more basic command.
+`pdftk-java` should be installed using Homebrew on a macOS system
```bash
-docker compose ps --format json | jq '{Service: .Service, State: .State, Status: .Status}'
+brew install pdftk-java
```
-Expected output:
+## Use
+
+### Configuration
+
+There is a sample `.env` file, `.env.sample`, that you can copy to `.env`. This file specifies an image, title to place on the cover, and a Copyright notice. Here is the sample:
```bash
-{
- "Service": "docusaurus",
- "State": "running",
- "Status": "Up 14 minutes"
-}
-{
- "Service": "gotenberg",
- "State": "running",
- "Status": "Up 2 hours (healthy)"
-}
+COVER_IMAGE=./StarRocks.png
+COVER_TITLE="StarRocks 3.3"
+COPYRIGHT="Copyright (c) 2024 The Linux Foundation"
```
-## Get the URL of the "home" page
+- Copy `.env.sample` to `.env`
+- Edit the file as needed
-### Check to see if Docusaurus is serving the pages
+> Note:
+>
+> For the `COVER_IMAGE` Use a PNG or JPEG.
-From the `PDF` directory check the logs of the `docusaurus` service:
+### Build your Docusaurus site and serve it
-```bash
-docker compose logs -f docusaurus
-```
+It seems to be necessary to run `yarn serve` rather than ~`yarn start`~ to have `docusaurus-prince-pdf` crawl the pages. I expect that there is a CSS class difference between development and production modes of Docusaurus.
-When Docusaurus is ready you will see this line at the end of the log output:
+If you are using the Docker scripts from [StarRocks](https://github.com/StarRocks/starrocks/tree/main/docs/docusaurus/scripts) then open another shell and:
```bash
-docusaurus-1 | [SUCCESS] Serving "build" directory at: http://0.0.0.0:3000/
+cd starrocks/docs/docusaurus
+./scripts/docker-image.sh && ./scripts/docker-build.sh
```
-Stop watching the logs with CTRL-c
+### Get the URL of the "home" page
-### Find the initial URL
+Find the URL of the first page to crawl. It needs to be the landing, or home page of the site as the next step will generate a set of PDF files, one for each page of your site by extracting the landing page and looking for the "Next" button at the bottom right corner of each Docusaurus page. If you start from any page other than the first one, then you will only get a portion of the pages. For Chinese language StarRocks documentation served using the `./scripts/docker-build.sh` script this will be:
-First open the docs by launching a browser to the URL at the end of the log output, which should be [http://0.0.0.0:3000/](http://0.0.0.0:3000/).
-
-Next, change to the Chinese documentation if you are generating a PDF document of the Chinese documentation.
-
-Copy the URL of the starting page of the documentation that you would like to generate a PDF for.
+```bash
+http://localhost:3000/zh/docs/introduction/StarRocks_intro/
+```
-Save the URL.
+### Generate a list of pages (URLs)
-## Open a shell in the PDF build environment
+This command will crawl the docs and list the URLs in order:
-Launch a shell from the `starrocks/docs/docusaurus/PDF` directory:
+> Tip
+>
+> The rest of the commands should be run from this directory:
+>
+> ```bash
+> starrocks/docs/docusaurus/PDF/
+> ```
+>
+> Substitute the URL you just copied for the URL below:
```bash
-docker compose exec -ti docusaurus bash
+npx docusaurus-prince-pdf --list-only \
+ --file URLs.txt \
+ -u http://localhost:3000/zh/docs/introduction/StarRocks_intro/
```
-and `cd` into the `PDF` directory:
+
+ Expand to see URLs.txt sample
+This is the file format, using the StarRocks developer docs as an example:
```bash
-cd /app/docusaurus/PDF
+http://localhost:3000/zh/docs/developers/build-starrocks/Build_in_docker/
+http://localhost:3000/zh/docs/developers/build-starrocks/build_starrocks_on_ubuntu/
+http://localhost:3000/zh/docs/developers/build-starrocks/handbook/
+http://localhost:3000/zh/docs/developers/code-style-guides/protobuf-guides/
+http://localhost:3000/zh/docs/developers/code-style-guides/restful-api-standard/
+http://localhost:3000/zh/docs/developers/code-style-guides/thrift-guides/
+http://localhost:3000/zh/docs/developers/debuginfo/
+http://localhost:3000/zh/docs/developers/development-environment/IDEA/
+http://localhost:3000/zh/docs/developers/development-environment/ide-setup/
+http://localhost:3000/zh/docs/developers/trace-tools/Trace/%
```
-## Crawl the docs and generate the PDFs
+
-Run the command:
-> Tip
->
-> The URL in the code sample is for the Chinese documentation, remove the `/zh/` if you want English.
+### Generate PDF files for each Docusaurus page
+
+This reads the `URLs.txt` generated above and:
+1. Creates a cover page
+2. creates PDF files for each URL in the file
```bash
-node generatePdf.js http://0.0.0.0:3000/zh/docs/introduction/StarRocks_intro/
+node docusaurus-puppeteer-pdf.js
```
-## Join the individual PDF files
+### Combine the individual PDFs
-> Note:
->
-> Change the name of the PDF output file as needed, in the example this is `StarRocks_33`
+The previous step generated a PDF file for each Docusaurus page, combine the individual pages with `pdftk-java`:
```bash
-cd ../../PDFoutput/
-pdftk 00*pdf output StarRocks_33.pdf
+pdftk 0*pdf output docs.pdf
```
-## Finished file
+### Cleanup
-The individual PDF files and the combined file will be on your local machine in `starrocks/docs/PDFoutput/`
+There are now 900+ temporary PDF files in the directory, remove them with:
-## Customizing the docs site for PDF
+```bash
+./clean
+```
-Gotenberg generates the PDF files without the side navigation, header, and footer as these components are not displayed when the `media` is set to `print`. In our docs it does not make sense to have the breadcrumbs, edit URLs, or Feedback widget show. These are filtered out using CSS by adding `display: none` to the classes of these objects when `@media print`.
+## Customizing the docs site for PDF
-Removing the Feedback form from the PDF can be done with CSS. This snippet is added to the Docusaurus CSS file `src/css/custom.css`:
+Some things do not make sense to have in the PDF, like the Feedback form at the bottom of the page. Removing the Feedback form from the PDF can be done with CSS. This snippet is added to the Docusaurus CSS file `docs/docusaurus/src/css/custom.css`:
```css
-/* When we generate PDF files we do not need to show the:
- - edit URL
- - Feedback widget
- - breadcrumbs
-*/
+/* When we generate PDF files:
+
+ - avoid breaks in the middle of:
+ - code blocks
+ - admonitions (notes, tips, etc.)
+
+ - we do not need to show the:
+ - feedback widget.
+ - edit this page
+ - breadcrumbs
+
+ */
@media print {
- .feedback_Ak7m {
- display: none;
- }
-
- .theme-doc-footer-edit-meta-row {
- display: none;
- };
+ .theme-code-block , .theme-admonition {
+ break-inside: avoid;
+ }
+}
- .breadcrumbs {
+@media print {
+ .theme-edit-this-page , .feedback_Ak7m , .theme-doc-breadcrumbs {
display: none;
- };
+ }
}
```
-
-## Links
-
-- [`docusaurus-prince-pdf`](https://github.com/signcl/docusaurus-prince-pdf)
-- [`Gotenberg`](https://pptr.dev/)
-- [`pdftk`](https://gitlab.com/pdftk-java/pdftk)
-- [Ghostscript](https://www.ghostscript.com/)
diff --git a/docs/docusaurus/PDF/StarRocks.png b/docs/docusaurus/PDF/StarRocks.png
new file mode 100644
index 0000000000000..7600edce2b22d
Binary files /dev/null and b/docs/docusaurus/PDF/StarRocks.png differ
diff --git a/docs/docusaurus/PDF/URLS.txt.example b/docs/docusaurus/PDF/URLS.txt.example
deleted file mode 100644
index fe63f617cd654..0000000000000
--- a/docs/docusaurus/PDF/URLS.txt.example
+++ /dev/null
@@ -1,656 +0,0 @@
-http://localhost:3000/docs/en/quick-start
-http://localhost:3000/docs/en/getting-started/example-datasets/
-http://localhost:3000/docs/en/tutorial
-http://localhost:3000/docs/en/getting-started/example-datasets/uk-price-paid
-http://localhost:3000/docs/en/getting-started/example-datasets/nyc-taxi
-http://localhost:3000/docs/en/getting-started/example-datasets/cell-towers
-http://localhost:3000/docs/en/getting-started/example-datasets/amplab-benchmark
-http://localhost:3000/docs/en/getting-started/example-datasets/brown-benchmark
-http://localhost:3000/docs/en/getting-started/example-datasets/criteo
-http://localhost:3000/docs/en/getting-started/example-datasets/github-events
-http://localhost:3000/docs/en/getting-started/example-datasets/menus
-http://localhost:3000/docs/en/getting-started/example-datasets/metrica
-http://localhost:3000/docs/en/getting-started/example-datasets/nypd_complaint_data
-http://localhost:3000/docs/en/getting-started/example-datasets/ontime
-http://localhost:3000/docs/en/getting-started/example-datasets/opensky
-http://localhost:3000/docs/en/getting-started/example-datasets/recipes
-http://localhost:3000/docs/en/getting-started/example-datasets/star-schema
-http://localhost:3000/docs/en/getting-started/example-datasets/wikistat
-http://localhost:3000/docs/en/getting-started/playground
-http://localhost:3000/docs/en/integrations/
-http://localhost:3000/docs/en/supported-regions
-http://localhost:3000/docs/en/install
-http://localhost:3000/docs/en/integrations/connect-a-client
-http://localhost:3000/docs/en/integrations/sql-clients/clickhouse-client-local
-http://localhost:3000/docs/en/integrations/sql-clients
-http://localhost:3000/docs/en/integrations/sql-clients/arctype
-http://localhost:3000/docs/en/integrations/sql-clients/cli
-http://localhost:3000/docs/en/integrations/sql-clients/datagrip
-http://localhost:3000/docs/en/integrations/sql-clients/dbeaver
-http://localhost:3000/docs/en/integrations/language-clients
-http://localhost:3000/docs/en/integrations/language-clients/nodejs
-http://localhost:3000/docs/en/integrations/language-clients/java/
-http://localhost:3000/docs/en/integrations/go
-http://localhost:3000/docs/en/integrations/go/intro
-http://localhost:3000/docs/en/integrations/go/choosing-a-client
-http://localhost:3000/docs/en/integrations/go/clickhouse-go
-http://localhost:3000/docs/en/integrations/go/clickhouse-go/introduction
-http://localhost:3000/docs/en/integrations/go/clickhouse-go/installation
-http://localhost:3000/docs/en/integrations/go/clickhouse-go/clickhouse-api
-http://localhost:3000/docs/en/integrations/go/clickhouse-go/database-sql-api
-http://localhost:3000/docs/en/integrations/go/clickhouse-go/performance-tips
-http://localhost:3000/docs/en/integrations/python
-http://localhost:3000/docs/en/integrations/language-clients/python/intro
-http://localhost:3000/docs/en/integrations/language-clients/python/driver-api
-http://localhost:3000/docs/en/interfaces
-http://localhost:3000/docs/en/interfaces/overview
-http://localhost:3000/docs/en/interfaces/cli
-http://localhost:3000/docs/en/interfaces/tcp
-http://localhost:3000/docs/en/interfaces/grpc
-http://localhost:3000/docs/en/interfaces/http
-http://localhost:3000/docs/en/interfaces/mysql
-http://localhost:3000/docs/en/interfaces/postgresql
-http://localhost:3000/docs/en/interfaces/formats
-http://localhost:3000/docs/en/interfaces/jdbc
-http://localhost:3000/docs/en/interfaces/odbc
-http://localhost:3000/docs/en/interfaces/cpp
-http://localhost:3000/docs/en/interfaces/third-party/
-http://localhost:3000/docs/en/interfaces/third-party/client-libraries
-http://localhost:3000/docs/en/interfaces/third-party/integrations
-http://localhost:3000/docs/en/interfaces/third-party/gui
-http://localhost:3000/docs/en/interfaces/third-party/proxy
-http://localhost:3000/docs/en/integrations/data-ingestion
-http://localhost:3000/docs/en/integrations/data-ingestion/upload-file-to-clickhouse-cloud
-http://localhost:3000/docs/en/integrations/data-ingestion/insert-local-files
-http://localhost:3000/docs/en/integrations/s3
-http://localhost:3000/docs/en/integrations/s3/s3-intro
-http://localhost:3000/docs/en/integrations/s3/s3-table-functions
-http://localhost:3000/docs/en/integrations/s3/s3-table-engine
-http://localhost:3000/docs/en/integrations/s3/s3-merge-tree
-http://localhost:3000/docs/en/integrations/s3/s3-optimizing-performance
-http://localhost:3000/docs/en/integrations/s3/s3-minio
-http://localhost:3000/docs/en/guides/sre/configuring-s3-for-clickhouse-use
-http://localhost:3000/docs/en/guides/sre/s3-multi-region
-http://localhost:3000/docs/en/integrations/data-ingestion/etl-tools
-http://localhost:3000/docs/en/integrations/airbyte-and-clickhouse
-http://localhost:3000/docs/en/integrations/dbt
-http://localhost:3000/docs/en/integrations/dbt/dbt-intro
-http://localhost:3000/docs/en/integrations/dbt/dbt-setup
-http://localhost:3000/docs/en/integrations/dbt/dbt-connecting
-http://localhost:3000/docs/en/integrations/dbt/dbt-view-model
-http://localhost:3000/docs/en/integrations/dbt/dbt-table-model
-http://localhost:3000/docs/en/integrations/dbt/dbt-incremental-model
-http://localhost:3000/docs/en/integrations/dbt/dbt-snapshot
-http://localhost:3000/docs/en/integrations/dbt/dbt-seeds
-http://localhost:3000/docs/en/integrations/dbt/dbt-limitations
-http://localhost:3000/docs/en/integrations/redshift
-http://localhost:3000/docs/en/integrations/redshift/migrate-redshift-to-clickhouse
-http://localhost:3000/docs/en/integrations/redshift/redshift-push-to-clickhouse
-http://localhost:3000/docs/en/integrations/redshift/redshift-pull-to-clickhouse
-http://localhost:3000/docs/en/integrations/redshift/redshift-pivot-to-clickhouse
-http://localhost:3000/docs/en/integrations/vector-to-clickhouse
-http://localhost:3000/docs/en/integrations/data-ingestion/dbms
-http://localhost:3000/docs/en/integrations/data-ingestion/dbms/odbc-with-clickhouse
-http://localhost:3000/docs/en/integrations/jdbc/jdbc-with-clickhouse
-http://localhost:3000/docs/en/integrations/mysql
-http://localhost:3000/docs/en/integrations/mysql/mysql-with-clickhouse
-http://localhost:3000/docs/en/integrations/mysql/mysql-with-clickhouse-database-engine
-http://localhost:3000/docs/en/integrations/postgresql
-http://localhost:3000/docs/en/integrations/postgresql/postgres-with-clickhouse
-http://localhost:3000/docs/en/integrations/postgresql/postgres-with-clickhouse-database-engine
-http://localhost:3000/docs/en/integrations/kafka
-http://localhost:3000/docs/en/integrations/kafka/kakfa-intro
-http://localhost:3000/docs/en/integrations/kafka/kafka-choosing-an-approach
-http://localhost:3000/docs/en/integrations/kafka/kafka-table-engine
-http://localhost:3000/docs/en/integrations/kafka/kafka-connect-intro
-http://localhost:3000/docs/en/integrations/kafka/kafka-connect-options
-http://localhost:3000/docs/en/integrations/kafka/kafka-connect-jdbc
-http://localhost:3000/docs/en/integrations/kafka/kafka-connect-http
-http://localhost:3000/docs/en/integrations/kafka/kafka-vector
-http://localhost:3000/docs/en/integrations/data-ingestion/kafka/code/
-http://localhost:3000/docs/en/integrations/data-ingestion/kafka/code/connectors/
-http://localhost:3000/docs/en/integrations/data-ingestion/kafka/code/producer/
-http://localhost:3000/docs/en/integrations/data-visualization
-http://localhost:3000/docs/en/integrations/deepnote
-http://localhost:3000/docs/en/connect-a-ui/grafana-and-clickhouse
-http://localhost:3000/docs/en/connect-a-ui/metabase-and-clickhouse
-http://localhost:3000/docs/en/connect-a-ui/superset-and-clickhouse
-http://localhost:3000/docs/en/connect-a-ui/tableau-and-clickhouse
-http://localhost:3000/docs/en/integrations/migration/
-http://localhost:3000/docs/en/integrations/migration/clickhouse-to-cloud
-http://localhost:3000/docs/en/integrations/migration/clickhouse-local
-http://localhost:3000/docs/en/integrations/migration/etl-tool-to-clickhouse
-http://localhost:3000/docs/en/integrations/migration/object-storage-to-clickhouse
-http://localhost:3000/docs/en/optimize
-http://localhost:3000/docs/en/guides/improving-query-performance/sparse-primary-indexes
-http://localhost:3000/docs/en/guides/improving-query-performance/sparse-primary-indexes/sparse-primary-indexes-intro
-http://localhost:3000/docs/en/guides/improving-query-performance/sparse-primary-indexes/sparse-primary-indexes-design
-http://localhost:3000/docs/en/guides/improving-query-performance/sparse-primary-indexes/sparse-primary-indexes-multiple
-http://localhost:3000/docs/en/guides/improving-query-performance/sparse-primary-indexes/sparse-primary-indexes-cardinality
-http://localhost:3000/docs/en/guides/improving-query-performance/sparse-primary-indexes/sparse-primary-indexes-uuids
-http://localhost:3000/docs/en/guides/improving-query-performance/skipping-indexes
-http://localhost:3000/docs/en/operations/optimizing-performance/sampling-query-profiler
-http://localhost:3000/docs/en/operations/performance-test
-http://localhost:3000/docs/en/operations/caches
-http://localhost:3000/docs/en/operations/tips
-http://localhost:3000/docs/en/operations/opentelemetry
-http://localhost:3000/docs/en/manage
-http://localhost:3000/docs/en/manage/billing
-http://localhost:3000/docs/en/manage/scaling
-http://localhost:3000/docs/en/manage/updates
-http://localhost:3000/docs/en/manage/backups
-http://localhost:3000/docs/en/operations/monitoring
-http://localhost:3000/docs/en/manage/tuning-for-cloud-cost-efficiency
-http://localhost:3000/docs/en/manage/replication-and-sharding
-http://localhost:3000/docs/en/operations/clickhouse-keeper
-http://localhost:3000/docs/en/guides/sre/keeper/clickhouse-keeper
-http://localhost:3000/docs/en/guides/sre/keeper/clickhouse-keeper-uuid
-http://localhost:3000/docs/en/operations/ssl-zookeeper
-http://localhost:3000/docs/en/guides/sre/scaling-clusters
-http://localhost:3000/docs/en/manage/users
-http://localhost:3000/docs/en/guides/sre/configuring-ldap
-http://localhost:3000/docs/en/guides/sre/ssl-user-auth
-http://localhost:3000/docs/en/guides/sre/users-and-roles
-http://localhost:3000/docs/en/guides/sre/user-management/alter-permissions
-http://localhost:3000/docs/en/operations/access-rights
-http://localhost:3000/docs/en/operations/quotas
-http://localhost:3000/docs/en/operations/external-authenticators/
-http://localhost:3000/docs/en/operations/external-authenticators/kerberos
-http://localhost:3000/docs/en/operations/external-authenticators/ldap
-http://localhost:3000/docs/en/operations/external-authenticators/ssl-x509
-http://localhost:3000/docs/en/manage/security
-http://localhost:3000/docs/en/manage/security/ip-access-list
-http://localhost:3000/docs/en/manage/security/aws-privatelink
-http://localhost:3000/docs/en/manage/security/organization-activity
-http://localhost:3000/docs/en/operations/named-collections
-http://localhost:3000/docs/en/guides/sre/configuring-ssl
-http://localhost:3000/docs/en/guides/sre/network-ports
-http://localhost:3000/docs/en/operations/storing-data
-http://localhost:3000/docs/en/manage/configuration
-http://localhost:3000/docs/en/operations/configuration-files
-http://localhost:3000/docs/en/operations/settings/
-http://localhost:3000/docs/en/operations/settings/settings
-http://localhost:3000/docs/en/operations/settings/permissions-for-queries
-http://localhost:3000/docs/en/operations/settings/query-complexity
-http://localhost:3000/docs/en/operations/settings/settings-profiles
-http://localhost:3000/docs/en/operations/settings/constraints-on-settings
-http://localhost:3000/docs/en/operations/settings/settings-users
-http://localhost:3000/docs/en/operations/settings/memory-overcommit
-http://localhost:3000/docs/en/operations/settings/merge-tree-settings
-http://localhost:3000/docs/en/operations/system-tables/
-http://localhost:3000/docs/en/operations/system-tables/asynchronous_metric_log
-http://localhost:3000/docs/en/operations/system-tables/asynchronous_metrics
-http://localhost:3000/docs/en/operations/system-tables/clusters
-http://localhost:3000/docs/en/operations/system-tables/columns
-http://localhost:3000/docs/en/operations/system-tables/contributors
-http://localhost:3000/docs/en/operations/system-tables/crash-log
-http://localhost:3000/docs/en/operations/system-tables/current-roles
-http://localhost:3000/docs/en/operations/system-tables/data_skipping_indices
-http://localhost:3000/docs/en/operations/system-tables/data_type_families
-http://localhost:3000/docs/en/operations/system-tables/databases
-http://localhost:3000/docs/en/operations/system-tables/detached_parts
-http://localhost:3000/docs/en/operations/system-tables/dictionaries
-http://localhost:3000/docs/en/operations/system-tables/disks
-http://localhost:3000/docs/en/operations/system-tables/distributed_ddl_queue
-http://localhost:3000/docs/en/operations/system-tables/distribution_queue
-http://localhost:3000/docs/en/operations/system-tables/enabled-roles
-http://localhost:3000/docs/en/operations/system-tables/errors
-http://localhost:3000/docs/en/operations/system-tables/events
-http://localhost:3000/docs/en/operations/system-tables/functions
-http://localhost:3000/docs/en/operations/system-tables/grants
-http://localhost:3000/docs/en/operations/system-tables/graphite_retentions
-http://localhost:3000/docs/en/operations/system-tables/information_schema
-http://localhost:3000/docs/en/operations/system-tables/licenses
-http://localhost:3000/docs/en/operations/system-tables/merge_tree_settings
-http://localhost:3000/docs/en/operations/system-tables/merges
-http://localhost:3000/docs/en/operations/system-tables/metric_log
-http://localhost:3000/docs/en/operations/system-tables/metrics
-http://localhost:3000/docs/en/operations/system-tables/mutations
-http://localhost:3000/docs/en/operations/system-tables/numbers
-http://localhost:3000/docs/en/operations/system-tables/numbers_mt
-http://localhost:3000/docs/en/operations/system-tables/one
-http://localhost:3000/docs/en/operations/system-tables/opentelemetry_span_log
-http://localhost:3000/docs/en/operations/system-tables/part_log
-http://localhost:3000/docs/en/operations/system-tables/parts
-http://localhost:3000/docs/en/operations/system-tables/parts_columns
-http://localhost:3000/docs/en/operations/system-tables/processes
-http://localhost:3000/docs/en/operations/system-tables/query_log
-http://localhost:3000/docs/en/operations/system-tables/query_thread_log
-http://localhost:3000/docs/en/operations/system-tables/query_views_log
-http://localhost:3000/docs/en/operations/system-tables/quota_limits
-http://localhost:3000/docs/en/operations/system-tables/quota_usage
-http://localhost:3000/docs/en/operations/system-tables/quotas
-http://localhost:3000/docs/en/operations/system-tables/quotas_usage
-http://localhost:3000/docs/en/operations/system-tables/replicas
-http://localhost:3000/docs/en/operations/system-tables/replicated_fetches
-http://localhost:3000/docs/en/operations/system-tables/replication_queue
-http://localhost:3000/docs/en/operations/system-tables/role-grants
-http://localhost:3000/docs/en/operations/system-tables/roles
-http://localhost:3000/docs/en/operations/system-tables/row_policies
-http://localhost:3000/docs/en/operations/system-tables/session_log
-http://localhost:3000/docs/en/operations/system-tables/settings
-http://localhost:3000/docs/en/operations/system-tables/settings_profile_elements
-http://localhost:3000/docs/en/operations/system-tables/settings_profiles
-http://localhost:3000/docs/en/operations/system-tables/stack_trace
-http://localhost:3000/docs/en/operations/system-tables/storage_policies
-http://localhost:3000/docs/en/operations/system-tables/table_engines
-http://localhost:3000/docs/en/operations/system-tables/tables
-http://localhost:3000/docs/en/operations/system-tables/text_log
-http://localhost:3000/docs/en/operations/system-tables/time_zones
-http://localhost:3000/docs/en/operations/system-tables/trace_log
-http://localhost:3000/docs/en/operations/system-tables/users
-http://localhost:3000/docs/en/operations/system-tables/zookeeper
-http://localhost:3000/docs/en/operations/system-tables/zookeeper_log
-http://localhost:3000/docs/en/operations/server-configuration-parameters/
-http://localhost:3000/docs/en/operations/server-configuration-parameters/settings
-http://localhost:3000/docs/en/operations/utilities/
-http://localhost:3000/docs/en/operations/utilities/clickhouse-copier
-http://localhost:3000/docs/en/operations/utilities/clickhouse-local
-http://localhost:3000/docs/en/operations/utilities/clickhouse-benchmark
-http://localhost:3000/docs/en/operations/utilities/clickhouse-compressor
-http://localhost:3000/docs/en/operations/utilities/clickhouse-format
-http://localhost:3000/docs/en/operations/utilities/clickhouse-obfuscator
-http://localhost:3000/docs/en/operations/utilities/odbc-bridge
-http://localhost:3000/docs/en/analyze
-http://localhost:3000/docs/en/sql-reference
-http://localhost:3000/docs/en/sql-reference/statements/
-http://localhost:3000/docs/en/sql-reference/statements/select/
-http://localhost:3000/docs/en/sql-reference/statements/select/all
-http://localhost:3000/docs/en/sql-reference/statements/select/array-join
-http://localhost:3000/docs/en/sql-reference/statements/select/distinct
-http://localhost:3000/docs/en/sql-reference/statements/select/except
-http://localhost:3000/docs/en/sql-reference/statements/select/format
-http://localhost:3000/docs/en/sql-reference/statements/select/from
-http://localhost:3000/docs/en/sql-reference/statements/select/group-by
-http://localhost:3000/docs/en/sql-reference/statements/select/having
-http://localhost:3000/docs/en/sql-reference/statements/select/intersect
-http://localhost:3000/docs/en/sql-reference/statements/select/into-outfile
-http://localhost:3000/docs/en/sql-reference/statements/select/join
-http://localhost:3000/docs/en/sql-reference/statements/select/limit-by
-http://localhost:3000/docs/en/sql-reference/statements/select/limit
-http://localhost:3000/docs/en/sql-reference/statements/select/offset
-http://localhost:3000/docs/en/sql-reference/statements/select/order-by
-http://localhost:3000/docs/en/sql-reference/statements/select/prewhere
-http://localhost:3000/docs/en/sql-reference/statements/select/sample
-http://localhost:3000/docs/en/sql-reference/statements/select/union
-http://localhost:3000/docs/en/sql-reference/statements/select/where
-http://localhost:3000/docs/en/sql-reference/statements/select/with
-http://localhost:3000/docs/en/sql-reference/statements/insert-into
-http://localhost:3000/docs/en/sql-reference/statements/create/
-http://localhost:3000/docs/en/sql-reference/statements/create/database
-http://localhost:3000/docs/en/sql-reference/statements/create/table
-http://localhost:3000/docs/en/sql-reference/statements/create/view
-http://localhost:3000/docs/en/sql-reference/statements/create/dictionary
-http://localhost:3000/docs/en/sql-reference/statements/create/function
-http://localhost:3000/docs/en/sql-reference/statements/create/user
-http://localhost:3000/docs/en/sql-reference/statements/create/role
-http://localhost:3000/docs/en/sql-reference/statements/create/row-policy
-http://localhost:3000/docs/en/sql-reference/statements/create/quota
-http://localhost:3000/docs/en/sql-reference/statements/create/settings-profile
-http://localhost:3000/docs/en/sql-reference/statements/alter/
-http://localhost:3000/docs/en/sql-reference/statements/alter/column
-http://localhost:3000/docs/en/sql-reference/statements/alter/partition
-http://localhost:3000/docs/en/sql-reference/statements/alter/setting
-http://localhost:3000/docs/en/sql-reference/statements/alter/delete
-http://localhost:3000/docs/en/sql-reference/statements/alter/update
-http://localhost:3000/docs/en/sql-reference/statements/alter/order-by
-http://localhost:3000/docs/en/sql-reference/statements/alter/sample-by
-http://localhost:3000/docs/en/sql-reference/statements/alter/skipping-index
-http://localhost:3000/docs/en/sql-reference/statements/alter/constraint
-http://localhost:3000/docs/en/sql-reference/statements/alter/ttl
-http://localhost:3000/docs/en/sql-reference/statements/alter/user
-http://localhost:3000/docs/en/sql-reference/statements/alter/quota
-http://localhost:3000/docs/en/sql-reference/statements/alter/role
-http://localhost:3000/docs/en/sql-reference/statements/alter/row-policy
-http://localhost:3000/docs/en/sql-reference/statements/alter/settings-profile
-http://localhost:3000/docs/en/sql-reference/statements/alter/projection
-http://localhost:3000/docs/en/sql-reference/statements/alter/view
-http://localhost:3000/docs/en/sql-reference/statements/alter/comment
-http://localhost:3000/docs/en/sql-reference/statements/delete
-http://localhost:3000/docs/en/sql-reference/statements/system
-http://localhost:3000/docs/en/sql-reference/statements/show
-http://localhost:3000/docs/en/sql-reference/statements/grant
-http://localhost:3000/docs/en/sql-reference/statements/explain
-http://localhost:3000/docs/en/sql-reference/statements/revoke
-http://localhost:3000/docs/en/sql-reference/statements/attach
-http://localhost:3000/docs/en/sql-reference/statements/check-table
-http://localhost:3000/docs/en/sql-reference/statements/describe-table
-http://localhost:3000/docs/en/sql-reference/statements/detach
-http://localhost:3000/docs/en/sql-reference/statements/drop
-http://localhost:3000/docs/en/sql-reference/statements/exists
-http://localhost:3000/docs/en/sql-reference/statements/kill
-http://localhost:3000/docs/en/sql-reference/statements/optimize
-http://localhost:3000/docs/en/sql-reference/statements/rename
-http://localhost:3000/docs/en/sql-reference/statements/exchange
-http://localhost:3000/docs/en/sql-reference/statements/set
-http://localhost:3000/docs/en/sql-reference/statements/set-role
-http://localhost:3000/docs/en/sql-reference/statements/truncate
-http://localhost:3000/docs/en/sql-reference/statements/use
-http://localhost:3000/docs/en/sql-reference/statements/watch
-http://localhost:3000/docs/en/sql-reference/syntax
-http://localhost:3000/docs/en/sql-reference/distributed-ddl
-http://localhost:3000/docs/en/sql-reference/functions/
-http://localhost:3000/docs/en/sql-reference/functions/arithmetic-functions
-http://localhost:3000/docs/en/sql-reference/functions/array-functions
-http://localhost:3000/docs/en/sql-reference/functions/comparison-functions
-http://localhost:3000/docs/en/sql-reference/functions/logical-functions
-http://localhost:3000/docs/en/sql-reference/functions/type-conversion-functions
-http://localhost:3000/docs/en/sql-reference/functions/date-time-functions
-http://localhost:3000/docs/en/sql-reference/functions/string-functions
-http://localhost:3000/docs/en/sql-reference/functions/string-search-functions
-http://localhost:3000/docs/en/sql-reference/functions/string-replace-functions
-http://localhost:3000/docs/en/sql-reference/functions/conditional-functions
-http://localhost:3000/docs/en/sql-reference/functions/files
-http://localhost:3000/docs/en/sql-reference/functions/math-functions
-http://localhost:3000/docs/en/sql-reference/functions/rounding-functions
-http://localhost:3000/docs/en/sql-reference/functions/tuple-map-functions
-http://localhost:3000/docs/en/sql-reference/functions/splitting-merging-functions
-http://localhost:3000/docs/en/sql-reference/functions/bit-functions
-http://localhost:3000/docs/en/sql-reference/functions/bitmap-functions
-http://localhost:3000/docs/en/sql-reference/functions/hash-functions
-http://localhost:3000/docs/en/sql-reference/functions/random-functions
-http://localhost:3000/docs/en/sql-reference/functions/encoding-functions
-http://localhost:3000/docs/en/sql-reference/functions/uuid-functions
-http://localhost:3000/docs/en/sql-reference/functions/url-functions
-http://localhost:3000/docs/en/sql-reference/functions/ip-address-functions
-http://localhost:3000/docs/en/sql-reference/functions/json-functions
-http://localhost:3000/docs/en/sql-reference/functions/ext-dict-functions
-http://localhost:3000/docs/en/sql-reference/functions/ym-dict-functions
-http://localhost:3000/docs/en/sql-reference/functions/in-functions
-http://localhost:3000/docs/en/sql-reference/functions/array-join
-http://localhost:3000/docs/en/sql-reference/functions/geo/
-http://localhost:3000/docs/en/sql-reference/functions/geo/coordinates
-http://localhost:3000/docs/en/sql-reference/functions/geo/geohash
-http://localhost:3000/docs/en/sql-reference/functions/geo/h3
-http://localhost:3000/docs/en/sql-reference/functions/geo/s2
-http://localhost:3000/docs/en/sql-reference/functions/functions-for-nulls
-http://localhost:3000/docs/en/sql-reference/functions/machine-learning-functions
-http://localhost:3000/docs/en/sql-reference/functions/introspection
-http://localhost:3000/docs/en/sql-reference/functions/tuple-functions
-http://localhost:3000/docs/en/sql-reference/functions/encryption-functions
-http://localhost:3000/docs/en/sql-reference/functions/nlp-functions
-http://localhost:3000/docs/en/sql-reference/functions/other-functions
-http://localhost:3000/docs/en/sql-reference/functions/time-window-functions
-http://localhost:3000/docs/en/sql-reference/functions/distance-functions
-http://localhost:3000/docs/en/sql-reference/functions/uniqtheta-functions
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/count
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/min
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/max
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/sum
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/avg
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/any
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/stddevpop
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/stddevsamp
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/varpop
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/varsamp
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/covarpop
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/covarsamp
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/anyheavy
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/anylast
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/argmin
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/argmax
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/avgweighted
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/corr
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/exponentialmovingaverage
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/topk
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/topkweighted
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/grouparray
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/groupuniqarray
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/grouparrayinsertat
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/grouparraymovingsum
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/grouparraymovingavg
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/grouparraysample
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/groupbitand
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/groupbitor
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/groupbitxor
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/groupbitmap
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/groupbitmapand
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/groupbitmapor
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/groupbitmapxor
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/sumwithoverflow
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/deltasum
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/deltasumtimestamp
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/summap
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/minmap
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/maxmap
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/sumcount
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/rankCorr
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/sumkahan
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/intervalLengthSum
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/skewpop
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/skewsamp
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/kurtpop
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/kurtsamp
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/uniq
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/uniqexact
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/uniqcombined
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/uniqcombined64
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/uniqhll12
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/uniqthetasketch
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/quantile
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/quantiles
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/quantileexact
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/quantileexactweighted
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/quantiletiming
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/quantiletimingweighted
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/quantiledeterministic
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/quantiletdigest
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/quantiletdigestweighted
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/quantilebfloat16
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/median
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/simplelinearregression
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/stochasticlinearregression
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/stochasticlogisticregression
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/categoricalinformationvalue
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/studentttest
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/welchttest
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/entropy
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/meanztest
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/mannwhitneyutest
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/reference/sparkbar
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/combinators
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/parametric-functions
-http://localhost:3000/docs/en/sql-reference/aggregate-functions/grouping_function
-http://localhost:3000/docs/en/sql-reference/table-functions/
-http://localhost:3000/docs/en/sql-reference/table-functions/file
-http://localhost:3000/docs/en/sql-reference/table-functions/merge
-http://localhost:3000/docs/en/sql-reference/table-functions/numbers
-http://localhost:3000/docs/en/sql-reference/table-functions/remote
-http://localhost:3000/docs/en/sql-reference/table-functions/url
-http://localhost:3000/docs/en/sql-reference/table-functions/mysql
-http://localhost:3000/docs/en/sql-reference/table-functions/postgresql
-http://localhost:3000/docs/en/sql-reference/table-functions/jdbc
-http://localhost:3000/docs/en/sql-reference/table-functions/odbc
-http://localhost:3000/docs/en/sql-reference/table-functions/hdfs
-http://localhost:3000/docs/en/sql-reference/table-functions/s3
-http://localhost:3000/docs/en/sql-reference/table-functions/input
-http://localhost:3000/docs/en/sql-reference/table-functions/generate
-http://localhost:3000/docs/en/sql-reference/table-functions/cluster
-http://localhost:3000/docs/en/sql-reference/table-functions/view
-http://localhost:3000/docs/en/sql-reference/table-functions/null
-http://localhost:3000/docs/en/sql-reference/table-functions/dictionary
-http://localhost:3000/docs/en/sql-reference/table-functions/hdfsCluster
-http://localhost:3000/docs/en/sql-reference/table-functions/s3Cluster
-http://localhost:3000/docs/en/sql-reference/table-functions/sqlite
-http://localhost:3000/docs/en/sql-reference/dictionaries/
-http://localhost:3000/docs/en/sql-reference/dictionaries/external-dictionaries
-http://localhost:3000/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts
-http://localhost:3000/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict
-http://localhost:3000/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-layout
-http://localhost:3000/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-lifetime
-http://localhost:3000/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-sources
-http://localhost:3000/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-structure
-http://localhost:3000/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-hierarchical
-http://localhost:3000/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-polygon
-http://localhost:3000/docs/en/sql-reference/dictionaries/internal-dicts
-http://localhost:3000/docs/en/sql-reference/data-types/
-http://localhost:3000/docs/en/sql-reference/data-types/int-uint
-http://localhost:3000/docs/en/sql-reference/data-types/float
-http://localhost:3000/docs/en/sql-reference/data-types/decimal
-http://localhost:3000/docs/en/sql-reference/data-types/boolean
-http://localhost:3000/docs/en/sql-reference/data-types/string
-http://localhost:3000/docs/en/sql-reference/data-types/fixedstring
-http://localhost:3000/docs/en/sql-reference/data-types/uuid
-http://localhost:3000/docs/en/sql-reference/data-types/date
-http://localhost:3000/docs/en/sql-reference/data-types/date32
-http://localhost:3000/docs/en/sql-reference/data-types/datetime
-http://localhost:3000/docs/en/sql-reference/data-types/datetime64
-http://localhost:3000/docs/en/sql-reference/data-types/enum
-http://localhost:3000/docs/en/sql-reference/data-types/lowcardinality
-http://localhost:3000/docs/en/sql-reference/data-types/array
-http://localhost:3000/docs/en/sql-reference/data-types/aggregatefunction
-http://localhost:3000/docs/en/sql-reference/data-types/json
-http://localhost:3000/docs/en/sql-reference/data-types/nested-data-structures/
-http://localhost:3000/docs/en/sql-reference/data-types/nested-data-structures/nested
-http://localhost:3000/docs/en/sql-reference/data-types/tuple
-http://localhost:3000/docs/en/sql-reference/data-types/nullable
-http://localhost:3000/docs/en/sql-reference/data-types/special-data-types/
-http://localhost:3000/docs/en/sql-reference/data-types/special-data-types/expression
-http://localhost:3000/docs/en/sql-reference/data-types/special-data-types/set
-http://localhost:3000/docs/en/sql-reference/data-types/special-data-types/nothing
-http://localhost:3000/docs/en/sql-reference/data-types/special-data-types/interval
-http://localhost:3000/docs/en/sql-reference/data-types/domains/
-http://localhost:3000/docs/en/sql-reference/data-types/domains/ipv4
-http://localhost:3000/docs/en/sql-reference/data-types/domains/ipv6
-http://localhost:3000/docs/en/sql-reference/data-types/multiword-types
-http://localhost:3000/docs/en/sql-reference/data-types/geo
-http://localhost:3000/docs/en/sql-reference/data-types/map
-http://localhost:3000/docs/en/sql-reference/data-types/simpleaggregatefunction
-http://localhost:3000/docs/en/sql-reference/operators/
-http://localhost:3000/docs/en/sql-reference/operators/exists
-http://localhost:3000/docs/en/sql-reference/operators/in
-http://localhost:3000/docs/en/sql-reference/ansi
-http://localhost:3000/docs/en/sql-reference/formats
-http://localhost:3000/docs/en/sql-reference/window-functions/
-http://localhost:3000/docs/en/engines
-http://localhost:3000/docs/en/engines/database-engines/
-http://localhost:3000/docs/en/engines/database-engines/atomic
-http://localhost:3000/docs/en/engines/database-engines/lazy
-http://localhost:3000/docs/en/engines/database-engines/replicated
-http://localhost:3000/docs/en/engines/database-engines/postgresql
-http://localhost:3000/docs/en/engines/database-engines/mysql
-http://localhost:3000/docs/en/engines/database-engines/sqlite
-http://localhost:3000/docs/en/engines/database-engines/materialized-postgresql
-http://localhost:3000/docs/en/engines/database-engines/materialized-mysql
-http://localhost:3000/docs/en/engines/table-engines/
-http://localhost:3000/docs/en/engines/table-engines/mergetree-family/
-http://localhost:3000/docs/en/engines/table-engines/mergetree-family/mergetree
-http://localhost:3000/docs/en/engines/table-engines/mergetree-family/replication
-http://localhost:3000/docs/en/engines/table-engines/mergetree-family/custom-partitioning-key
-http://localhost:3000/docs/en/engines/table-engines/mergetree-family/replacingmergetree
-http://localhost:3000/docs/en/engines/table-engines/mergetree-family/summingmergetree
-http://localhost:3000/docs/en/engines/table-engines/mergetree-family/aggregatingmergetree
-http://localhost:3000/docs/en/engines/table-engines/mergetree-family/collapsingmergetree
-http://localhost:3000/docs/en/engines/table-engines/mergetree-family/versionedcollapsingmergetree
-http://localhost:3000/docs/en/engines/table-engines/mergetree-family/graphitemergetree
-http://localhost:3000/docs/en/engines/table-engines/mergetree-family/annindexes
-http://localhost:3000/docs/en/engines/table-engines/log-family/
-http://localhost:3000/docs/en/engines/table-engines/log-family/log
-http://localhost:3000/docs/en/engines/table-engines/log-family/stripelog
-http://localhost:3000/docs/en/engines/table-engines/log-family/tinylog
-http://localhost:3000/docs/en/engines/table-engines/integrations/
-http://localhost:3000/docs/en/engines/table-engines/integrations/odbc
-http://localhost:3000/docs/en/engines/table-engines/integrations/jdbc
-http://localhost:3000/docs/en/engines/table-engines/integrations/hive
-http://localhost:3000/docs/en/engines/table-engines/integrations/mysql
-http://localhost:3000/docs/en/engines/table-engines/integrations/mongodb
-http://localhost:3000/docs/en/engines/table-engines/integrations/hdfs
-http://localhost:3000/docs/en/engines/table-engines/integrations/s3
-http://localhost:3000/docs/en/engines/table-engines/integrations/sqlite
-http://localhost:3000/docs/en/engines/table-engines/integrations/kafka
-http://localhost:3000/docs/en/engines/table-engines/integrations/embedded-rocksdb
-http://localhost:3000/docs/en/engines/table-engines/integrations/rabbitmq
-http://localhost:3000/docs/en/engines/table-engines/integrations/postgresql
-http://localhost:3000/docs/en/engines/table-engines/integrations/ExternalDistributed
-http://localhost:3000/docs/en/engines/table-engines/integrations/materialized-postgresql
-http://localhost:3000/docs/en/engines/table-engines/integrations/nats
-http://localhost:3000/docs/en/engines/table-engines/special/
-http://localhost:3000/docs/en/engines/table-engines/special/distributed
-http://localhost:3000/docs/en/engines/table-engines/special/dictionary
-http://localhost:3000/docs/en/engines/table-engines/special/merge
-http://localhost:3000/docs/en/engines/table-engines/special/file
-http://localhost:3000/docs/en/engines/table-engines/special/null
-http://localhost:3000/docs/en/engines/table-engines/special/set
-http://localhost:3000/docs/en/engines/table-engines/special/join
-http://localhost:3000/docs/en/engines/table-engines/special/url
-http://localhost:3000/docs/en/engines/table-engines/special/view
-http://localhost:3000/docs/en/engines/table-engines/special/materializedview
-http://localhost:3000/docs/en/engines/table-engines/special/memory
-http://localhost:3000/docs/en/engines/table-engines/special/buffer
-http://localhost:3000/docs/en/engines/table-engines/special/external-data
-http://localhost:3000/docs/en/engines/table-engines/special/generate
-http://localhost:3000/docs/en/guides
-http://localhost:3000/docs/en/guides/developer/full-text-search
-http://localhost:3000/docs/en/guides/developer/mutations
-http://localhost:3000/docs/en/guides/developer/working-with-json
-http://localhost:3000/docs/en/guides/developer/working-with-json/json-intro
-http://localhost:3000/docs/en/guides/developer/working-with-json/json-structured
-http://localhost:3000/docs/en/guides/developer/working-with-json/json-semi-structured
-http://localhost:3000/docs/en/guides/developer/working-with-json/json-other-approaches
-http://localhost:3000/docs/en/guides/developer/transactional
-http://localhost:3000/docs/en/development
-http://localhost:3000/docs/en/development/developer-instruction
-http://localhost:3000/docs/en/development/architecture
-http://localhost:3000/docs/en/development/continuous-integration
-http://localhost:3000/docs/en/development/adding_test_queries
-http://localhost:3000/docs/en/development/build
-http://localhost:3000/docs/en/development/build-osx
-http://localhost:3000/docs/en/development/build-cross-osx
-http://localhost:3000/docs/en/development/build-cross-arm
-http://localhost:3000/docs/en/development/build-cross-riscv
-http://localhost:3000/docs/en/development/style
-http://localhost:3000/docs/en/development/tests
-http://localhost:3000/docs/en/development/contrib
-http://localhost:3000/docs/en/development/integrating_rust_libraries
-http://localhost:3000/docs/en/native-protocol
-http://localhost:3000/docs/en/native-protocol/basics
-http://localhost:3000/docs/en/native-protocol/client
-http://localhost:3000/docs/en/native-protocol/server
-http://localhost:3000/docs/en/native-protocol/columns
-http://localhost:3000/docs/en/native-protocol/hash
-http://localhost:3000/docs/en/native-protocol/compression
-http://localhost:3000/docs/en/faq
-http://localhost:3000/docs/en/faq/billing
-http://localhost:3000/docs/en/faq/troubleshooting
-http://localhost:3000/docs/en/faq/general/
-http://localhost:3000/docs/en/faq/general/columnar-database
-http://localhost:3000/docs/en/faq/general/dbms-naming
-http://localhost:3000/docs/en/faq/general/how-do-i-contribute-code-to-clickhouse
-http://localhost:3000/docs/en/faq/general/mapreduce
-http://localhost:3000/docs/en/faq/general/ne-tormozit
-http://localhost:3000/docs/en/faq/general/olap
-http://localhost:3000/docs/en/faq/general/who-is-using-clickhouse
-http://localhost:3000/docs/en/faq/general/why-clickhouse-is-so-fast
-http://localhost:3000/docs/en/faq/integration/
-http://localhost:3000/docs/en/faq/integration/file-export
-http://localhost:3000/docs/en/faq/integration/json-import
-http://localhost:3000/docs/en/faq/integration/oracle-odbc
-http://localhost:3000/docs/en/faq/operations/
-http://localhost:3000/docs/en/faq/operations/delete-old-data
-http://localhost:3000/docs/en/faq/operations/multi-region-replication
-http://localhost:3000/docs/en/faq/operations/production
-http://localhost:3000/docs/en/faq/use-cases/
-http://localhost:3000/docs/en/faq/use-cases/key-value
-http://localhost:3000/docs/en/faq/use-cases/time-series
-http://localhost:3000/docs/en/whats-new
-http://localhost:3000/docs/category/changelog
-http://localhost:3000/docs/en/whats-new/cloud
-http://localhost:3000/docs/en/whats-new/changelog/
-http://localhost:3000/docs/en/whats-new/changelog/2021
-http://localhost:3000/docs/en/whats-new/changelog/2020
-http://localhost:3000/docs/en/whats-new/changelog/2019
-http://localhost:3000/docs/en/whats-new/changelog/2018
-http://localhost:3000/docs/en/whats-new/changelog/2017
-http://localhost:3000/docs/en/whats-new/security-changelog
-http://localhost:3000/docs/en/whats-new/cloud-compatibility
-http://localhost:3000/docs/en/whats-new/roadmap
-http://localhost:3000/docs/en/about-us
-http://localhost:3000/docs/en/intro
-http://localhost:3000/docs/en/about-us/cloud
-http://localhost:3000/docs/en/about-us/support
-http://localhost:3000/docs/en/about-us/history
-http://localhost:3000/docs/en/about-us/distinctive-features
-http://localhost:3000/docs/en/about-us/adopters
-http://localhost:3000/docs/en/about-us/performance
\ No newline at end of file
diff --git a/docs/docusaurus/PDF/clean b/docs/docusaurus/PDF/clean
new file mode 100755
index 0000000000000..c6d6703afc2c4
--- /dev/null
+++ b/docs/docusaurus/PDF/clean
@@ -0,0 +1,3 @@
+#!/bin/bash
+rm -f 0*pdf
+
diff --git a/docs/docusaurus/PDF/docker-compose.yaml b/docs/docusaurus/PDF/docker-compose.yaml
deleted file mode 100644
index 18b1f8b300216..0000000000000
--- a/docs/docusaurus/PDF/docker-compose.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-services:
-
- gotenberg:
- image: gotenberg/gotenberg
- healthcheck:
- test: ["CMD", "curl", "--silent", "--fail", "http://gotenberg:3000/health"]
-
- docusaurus:
- build: ../
- ports:
- - 3000:3000
- volumes:
- - ../../PDFoutput:/app/PDFoutput
- - ../../en:/app/docusaurus/docs
- - ../../zh:/app/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current
- working_dir: /app/docusaurus
- healthcheck:
- test: curl --fail http://docusaurus:3000 || exit 1
- interval: 10s
- retries: 20
- start_period: 140s
- timeout: 5s
- entrypoint: >
- /bin/bash -c "
- cd /app/docusaurus &&
- npm install -g docusaurus-prince-pdf@1.2.1 &&
- yarn install &&
- yarn build &&
- yarn serve -p 3000 -h 0.0.0.0 &&
- tail -f /dev/null
- "
-
diff --git a/docs/docusaurus/PDF/docusaurus-puppeteer-pdf.js b/docs/docusaurus/PDF/docusaurus-puppeteer-pdf.js
new file mode 100644
index 0000000000000..8cfbc4c638810
--- /dev/null
+++ b/docs/docusaurus/PDF/docusaurus-puppeteer-pdf.js
@@ -0,0 +1,131 @@
+'use strict';
+require('dotenv').config()
+const fs = require('node:fs');
+const readline = require('node:readline');
+const puppeteer = require('puppeteer');
+const scrollToBottom = require('scroll-to-bottomjs');
+const PDFDocument = require('pdfkit');
+
+function coverPage() {
+ // Create a document
+ const doc = new PDFDocument({size: 'A4'});
+
+ doc.pipe(fs.createWriteStream('0000.pdf'));
+
+ doc.image(process.env.COVER_IMAGE, {
+ fit: [200, 200],
+ align: 'center',
+ valign: 'center'
+ });
+
+ doc
+ .fontSize(25)
+ .fillColor("black")
+ // position text over 70 and down 150
+ .text(process.env.COVER_TITLE, 70, 300)
+ .fontSize(11)
+ .text(process.env.COPYRIGHT, 70, 650);
+
+ // Finalize PDF file
+ doc.end();
+
+}
+
+// cover page is 0.pdf, so start `i` at 1
+var i = 1;
+
+async function requestPage(url) {
+ const browser = await puppeteer.launch({
+ headless: 'shell',
+ userDataDir: './tmp',
+ args: [
+ '--disable-features=IsolateOrigins',
+ '--disable-site-isolation-trials',
+ '--autoplay-policy=user-gesture-required',
+ '--disable-background-networking',
+ '--disable-background-timer-throttling',
+ '--disable-backgrounding-occluded-windows',
+ '--disable-breakpad',
+ '--disable-client-side-phishing-detection',
+ '--disable-component-update',
+ '--disable-default-apps',
+ '--disable-dev-shm-usage',
+ '--disable-domain-reliability',
+ '--disable-extensions',
+ '--disable-features=AudioServiceOutOfProcess',
+ '--disable-hang-monitor',
+ '--disable-ipc-flooding-protection',
+ '--disable-notifications',
+ '--disable-offer-store-unmasked-wallet-cards',
+ '--disable-popup-blocking',
+ '--disable-print-preview',
+ '--disable-prompt-on-repost',
+ '--disable-renderer-backgrounding',
+ '--disable-setuid-sandbox',
+ '--disable-speech-api',
+ '--disable-sync',
+ '--hide-scrollbars',
+ '--ignore-gpu-blacklist',
+ '--metrics-recording-only',
+ '--mute-audio',
+ '--no-default-browser-check',
+ '--no-first-run',
+ '--no-pings',
+ '--no-sandbox',
+ '--no-zygote',
+ '--password-store=basic',
+ '--use-gl=swiftshader',
+ '--use-mock-keychain']
+ });
+ const fileName = (String(i).padStart(4, '0')).concat('.', 'pdf');
+ const page = await browser.newPage();
+
+ await page.goto(url, { waitUntil: 'domcontentloaded', });
+ await page.evaluate(scrollToBottom);
+
+ await page.pdf({
+ outline: true,
+ path: fileName,
+ format: 'A4',
+ margin: {
+ top: '0.5in',
+ bottom: '0.5in',
+ left: '0.5in',
+ right: '0.5in',
+ },
+ });
+
+ // Get the details to write the YAML file
+ // We need title and filename
+ const pageTitle = await page.title();
+ const cleanedTitle = pageTitle.replaceAll('\[', '').replaceAll('\]', '').replaceAll(':', '').replaceAll(' | StarRocks', '').replaceAll(' | CelerData', '')
+ const pageDetails = ` - file: ${fileName}\n title: ${cleanedTitle}\n`;
+
+ console.log(`Title is ${cleanedTitle}`);
+ console.log(`Filename is ` + fileName );
+ i++;
+
+ await browser.close();
+}
+
+async function processLineByLine() {
+ const fileStream = fs.createReadStream('URLs.txt');
+
+ const rl = readline.createInterface({
+ input: fileStream,
+ crlfDelay: Infinity
+ });
+
+ for await (const line of rl) {
+ // Each line in input.txt will be successively available here as `line`.
+ console.log(`URL: ${line}`);
+ await requestPage(line).then(resp => {
+ console.log(`done.\n`);
+ }).catch(err => {
+ console.log(err);
+ });
+ }
+}
+
+coverPage();
+processLineByLine();
diff --git a/docs/docusaurus/PDF/generatePdf.js b/docs/docusaurus/PDF/generatePdf.js
deleted file mode 100644
index ce28f27c8be90..0000000000000
--- a/docs/docusaurus/PDF/generatePdf.js
+++ /dev/null
@@ -1,101 +0,0 @@
-const fs = require('node:fs');
-const readline = require('node:readline');
-const axios = require('axios');
-const cheerio = require('cheerio');
-const process = require('process');
-const util = require('node:util');
-
-function getUrls(url) {
- var execSync = require('child_process').execSync;
-
- // the URL that the user has is to `0.0.0.0` or `localhost`,
- // which needs to be modified to the `docusaurus` service
- // in the Docker compose environment
- let docusaurusUrl =
- url.replace("localhost", "docusaurus").replace("0.0.0.0", "docusaurus");
-
- var command = `npx docusaurus-prince-pdf --list-only -u ${docusaurusUrl} --include-index --file URLs.txt`
-
- try {
- const {stdout, stderr} = execSync(command);
- } catch (error) {
- console.log(error);
- }
-};
-
-
-async function callGotenberg(docusaurusUrl, fileName) {
-
- //const path = require("path");
- const FormData = require("form-data");
-
- try {
- // Convert URL content to PDF using Gotenberg
- const form = new FormData();
- form.append('url', `${docusaurusUrl}`)
- form.append('waitDelay', `3s`)
- form.append('generateDocumentOutline', `true`)
-
- const response = await axios.post(
- "http://gotenberg:3000/forms/chromium/convert/url",
- form,
- {
- headers: form.getHeaders(),
- responseType: "arraybuffer",
- }
- );
-
- if (response.status !== 200) {
- throw new Error(`Failed to convert file: ${response.statusText}`);
- }
-
- const buffer = await response.data;
-
- // Save the converted file
- fs.writeFileSync(fileName, buffer);
- //console.log('wrote URL content from %s to PDF file %s', docusaurusUrl, fileName);
-
- } catch (err) {
- console.error(err.message || err);
- }
-};
-
-async function processLineByLine() {
- const fileStream = fs.createReadStream('URLs.txt');
-
- const rl = readline.createInterface({
- input: fileStream,
- crlfDelay: Infinity
- });
- console.log("Generating PDFs");
- for await (const line of rl) {
- // Each line in URLs.txt will be successively available here as `line`.
- //console.log(`URL: ${line}`);
- await requestPage(line).then(resp => {
- //console.log(`done.\n`);
- }).catch(err => {
- console.log(err);
- });
- }
- console.log(" done");
-}
-
-async function requestPage(url) {
- const fileName = '../../PDFoutput/'.concat(String(i).padStart(4, '0')).concat('.', 'pdf');
- await callGotenberg(url, fileName);
- process.stdout.write(".");
- i++;
-}
-
-
-function main() {
- // startingUrl is the URL for the first page of the docs
- // Get all of the URLs and write to URLs.txt
- console.log("Crawling from %s", startingUrl);
- getUrls(startingUrl);
- processLineByLine();
-};
-
-var i = 0;
-const startingUrl = process.argv[2];
-main();
diff --git a/docs/docusaurus/PDF/package.json b/docs/docusaurus/PDF/package.json
new file mode 100644
index 0000000000000..ea4eaea94e5a8
--- /dev/null
+++ b/docs/docusaurus/PDF/package.json
@@ -0,0 +1,16 @@
+{
+ "name": "scrape-to-pdf",
+ "version": "1.0.0",
+ "description": "scrape Docusaurus docs and generate PDF",
+ "main": "docusaurus-puppeteer-pdf.js",
+ "repository": "git@github.com:DanRoscigno/scrape-to-pdf.git",
+ "author": "DanRoscigno ",
+ "license": "MIT",
+ "private": false,
+ "dependencies": {
+ "dotenv": "^16.4.5",
+ "pdfkit": "^0.15.1",
+ "puppeteer": "^23.7.0",
+ "scroll-to-bottomjs": "^1.1.0"
+ }
+}
diff --git a/docs/docusaurus/PDF/yarn.lock b/docs/docusaurus/PDF/yarn.lock
new file mode 100644
index 0000000000000..131b977cd6cc1
--- /dev/null
+++ b/docs/docusaurus/PDF/yarn.lock
@@ -0,0 +1,1254 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@babel/code-frame@^7.0.0":
+ version "7.26.2"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85"
+ integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.25.9"
+ js-tokens "^4.0.0"
+ picocolors "^1.0.0"
+
+"@babel/helper-validator-identifier@^7.25.9":
+ version "7.25.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7"
+ integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==
+
+"@puppeteer/browsers@2.4.1":
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-2.4.1.tgz#7afd271199cc920ece2ff25109278be0a3e8a225"
+ integrity sha512-0kdAbmic3J09I6dT8e9vE2JOCSt13wHCW5x/ly8TSt2bDtuIWe2TgLZZDHdcziw9AVCzflMAXCrVyRIhIs44Ng==
+ dependencies:
+ debug "^4.3.7"
+ extract-zip "^2.0.1"
+ progress "^2.0.3"
+ proxy-agent "^6.4.0"
+ semver "^7.6.3"
+ tar-fs "^3.0.6"
+ unbzip2-stream "^1.4.3"
+ yargs "^17.7.2"
+
+"@swc/helpers@^0.3.13":
+ version "0.3.17"
+ resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.3.17.tgz#7c1b91f43c77e2bba99492162a498d465ef253d5"
+ integrity sha512-tb7Iu+oZ+zWJZ3HJqwx8oNwSDIU440hmVMDPhpACWQWnrZHK99Bxs70gT1L2dnr5Hg50ZRWEFkQCAnOVVV0z1Q==
+ dependencies:
+ tslib "^2.4.0"
+
+"@tootallnate/quickjs-emscripten@^0.23.0":
+ version "0.23.0"
+ resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c"
+ integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==
+
+"@types/node@*":
+ version "22.9.0"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.9.0.tgz#b7f16e5c3384788542c72dc3d561a7ceae2c0365"
+ integrity sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==
+ dependencies:
+ undici-types "~6.19.8"
+
+"@types/yauzl@^2.9.1":
+ version "2.10.3"
+ resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999"
+ integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==
+ dependencies:
+ "@types/node" "*"
+
+agent-base@^7.0.2, agent-base@^7.1.0, agent-base@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317"
+ integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==
+ dependencies:
+ debug "^4.3.4"
+
+ansi-regex@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
+ansi-styles@^4.0.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+ dependencies:
+ color-convert "^2.0.1"
+
+argparse@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+ integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
+array-buffer-byte-length@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f"
+ integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==
+ dependencies:
+ call-bind "^1.0.5"
+ is-array-buffer "^3.0.4"
+
+ast-types@^0.13.4:
+ version "0.13.4"
+ resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782"
+ integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==
+ dependencies:
+ tslib "^2.0.1"
+
+available-typed-arrays@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846"
+ integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==
+ dependencies:
+ possible-typed-array-names "^1.0.0"
+
+b4a@^1.6.4:
+ version "1.6.7"
+ resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.7.tgz#a99587d4ebbfbd5a6e3b21bdb5d5fa385767abe4"
+ integrity sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==
+
+bare-events@^2.0.0, bare-events@^2.2.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.5.0.tgz#305b511e262ffd8b9d5616b056464f8e1b3329cc"
+ integrity sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==
+
+bare-fs@^2.1.1:
+ version "2.3.5"
+ resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-2.3.5.tgz#05daa8e8206aeb46d13c2fe25a2cd3797b0d284a"
+ integrity sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==
+ dependencies:
+ bare-events "^2.0.0"
+ bare-path "^2.0.0"
+ bare-stream "^2.0.0"
+
+bare-os@^2.1.0:
+ version "2.4.4"
+ resolved "https://registry.yarnpkg.com/bare-os/-/bare-os-2.4.4.tgz#01243392eb0a6e947177bb7c8a45123d45c9b1a9"
+ integrity sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==
+
+bare-path@^2.0.0, bare-path@^2.1.0:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-2.1.3.tgz#594104c829ef660e43b5589ec8daef7df6cedb3e"
+ integrity sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==
+ dependencies:
+ bare-os "^2.1.0"
+
+bare-stream@^2.0.0:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/bare-stream/-/bare-stream-2.3.2.tgz#3bc62b429bcf850d2f265719b7a49ee0630a3ae4"
+ integrity sha512-EFZHSIBkDgSHIwj2l2QZfP4U5OcD4xFAOwhSb/vlr9PIqyGJGvB/nfClJbcnh3EY4jtPE4zsb5ztae96bVF79A==
+ dependencies:
+ streamx "^2.20.0"
+
+base64-js@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
+ integrity sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==
+
+base64-js@^1.1.2, base64-js@^1.3.0, base64-js@^1.3.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
+ integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+
+basic-ftp@^5.0.2:
+ version "5.0.5"
+ resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.5.tgz#14a474f5fffecca1f4f406f1c26b18f800225ac0"
+ integrity sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==
+
+brotli@^1.3.2:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/brotli/-/brotli-1.3.3.tgz#7365d8cc00f12cf765d2b2c898716bcf4b604d48"
+ integrity sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==
+ dependencies:
+ base64-js "^1.1.2"
+
+buffer-crc32@~0.2.3:
+ version "0.2.13"
+ resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
+ integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==
+
+buffer@^5.2.1:
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
+ integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
+ dependencies:
+ base64-js "^1.3.1"
+ ieee754 "^1.1.13"
+
+call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9"
+ integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==
+ dependencies:
+ es-define-property "^1.0.0"
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.4"
+ set-function-length "^1.2.1"
+
+callsites@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
+chromium-bidi@0.8.0:
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-0.8.0.tgz#ffd79dad7db1fcc874f1c55fcf46ded05a884269"
+ integrity sha512-uJydbGdTw0DEUjhoogGveneJVWX/9YuqkWePzMmkBYwtdAqo5d3J/ovNKFr+/2hWXYmYCr6it8mSSTIj6SS6Ug==
+ dependencies:
+ mitt "3.0.1"
+ urlpattern-polyfill "10.0.0"
+ zod "3.23.8"
+
+cliui@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
+ integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.1"
+ wrap-ansi "^7.0.0"
+
+clone@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
+ integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==
+
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ dependencies:
+ color-name "~1.1.4"
+
+color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+cosmiconfig@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d"
+ integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==
+ dependencies:
+ env-paths "^2.2.1"
+ import-fresh "^3.3.0"
+ js-yaml "^4.1.0"
+ parse-json "^5.2.0"
+
+crypto-js@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631"
+ integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==
+
+data-uri-to-buffer@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz#8a58bb67384b261a38ef18bea1810cb01badd28b"
+ integrity sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==
+
+debug@4, debug@^4.1.1, debug@^4.3.4, debug@^4.3.7:
+ version "4.3.7"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52"
+ integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
+ dependencies:
+ ms "^2.1.3"
+
+deep-equal@^2.0.5:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1"
+ integrity sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==
+ dependencies:
+ array-buffer-byte-length "^1.0.0"
+ call-bind "^1.0.5"
+ es-get-iterator "^1.1.3"
+ get-intrinsic "^1.2.2"
+ is-arguments "^1.1.1"
+ is-array-buffer "^3.0.2"
+ is-date-object "^1.0.5"
+ is-regex "^1.1.4"
+ is-shared-array-buffer "^1.0.2"
+ isarray "^2.0.5"
+ object-is "^1.1.5"
+ object-keys "^1.1.1"
+ object.assign "^4.1.4"
+ regexp.prototype.flags "^1.5.1"
+ side-channel "^1.0.4"
+ which-boxed-primitive "^1.0.2"
+ which-collection "^1.0.1"
+ which-typed-array "^1.1.13"
+
+define-data-property@^1.0.1, define-data-property@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
+ integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
+ dependencies:
+ es-define-property "^1.0.0"
+ es-errors "^1.3.0"
+ gopd "^1.0.1"
+
+define-properties@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
+ integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
+ dependencies:
+ define-data-property "^1.0.1"
+ has-property-descriptors "^1.0.0"
+ object-keys "^1.1.1"
+
+degenerator@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-5.0.1.tgz#9403bf297c6dad9a1ece409b37db27954f91f2f5"
+ integrity sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==
+ dependencies:
+ ast-types "^0.13.4"
+ escodegen "^2.1.0"
+ esprima "^4.0.1"
+
+devtools-protocol@0.0.1367902:
+ version "0.0.1367902"
+ resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz#7333bfc4466c5a54a4c6de48a9dfbcb4b811660c"
+ integrity sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==
+
+dfa@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/dfa/-/dfa-1.2.0.tgz#96ac3204e2d29c49ea5b57af8d92c2ae12790657"
+ integrity sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==
+
+dotenv@^16.4.5:
+ version "16.4.5"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f"
+ integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==
+
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+end-of-stream@^1.1.0:
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+ integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+ dependencies:
+ once "^1.4.0"
+
+env-paths@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
+ integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
+
+error-ex@^1.3.1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+ dependencies:
+ is-arrayish "^0.2.1"
+
+es-define-property@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845"
+ integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==
+ dependencies:
+ get-intrinsic "^1.2.4"
+
+es-errors@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
+ integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
+
+es-get-iterator@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6"
+ integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==
+ dependencies:
+ call-bind "^1.0.2"
+ get-intrinsic "^1.1.3"
+ has-symbols "^1.0.3"
+ is-arguments "^1.1.1"
+ is-map "^2.0.2"
+ is-set "^2.0.2"
+ is-string "^1.0.7"
+ isarray "^2.0.5"
+ stop-iteration-iterator "^1.0.0"
+
+escalade@^3.1.1:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
+ integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
+
+escodegen@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17"
+ integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==
+ dependencies:
+ esprima "^4.0.1"
+ estraverse "^5.2.0"
+ esutils "^2.0.2"
+ optionalDependencies:
+ source-map "~0.6.1"
+
+esprima@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+
+estraverse@^5.2.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+ integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+extract-zip@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
+ integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
+ dependencies:
+ debug "^4.1.1"
+ get-stream "^5.1.0"
+ yauzl "^2.10.0"
+ optionalDependencies:
+ "@types/yauzl" "^2.9.1"
+
+fast-fifo@^1.2.0, fast-fifo@^1.3.2:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c"
+ integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==
+
+fd-slicer@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
+ integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==
+ dependencies:
+ pend "~1.2.0"
+
+fontkit@^1.8.1:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/fontkit/-/fontkit-1.9.0.tgz#95729cc9f24995fb068ea53aea2f1f193e323f2b"
+ integrity sha512-HkW/8Lrk8jl18kzQHvAw9aTHe1cqsyx5sDnxncx652+CIfhawokEPkeM3BoIC+z/Xv7a0yMr0f3pRRwhGH455g==
+ dependencies:
+ "@swc/helpers" "^0.3.13"
+ brotli "^1.3.2"
+ clone "^2.1.2"
+ deep-equal "^2.0.5"
+ dfa "^1.2.0"
+ restructure "^2.0.1"
+ tiny-inflate "^1.0.3"
+ unicode-properties "^1.3.1"
+ unicode-trie "^2.0.0"
+
+for-each@^0.3.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
+ integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
+ dependencies:
+ is-callable "^1.1.3"
+
+fs-extra@^11.2.0:
+ version "11.2.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b"
+ integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
+function-bind@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
+ integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
+
+functions-have-names@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
+ integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
+
+get-caller-file@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+ integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
+get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd"
+ integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==
+ dependencies:
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ has-proto "^1.0.1"
+ has-symbols "^1.0.3"
+ hasown "^2.0.0"
+
+get-stream@^5.1.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
+ integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+ dependencies:
+ pump "^3.0.0"
+
+get-uri@^6.0.1:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.3.tgz#0d26697bc13cf91092e519aa63aa60ee5b6f385a"
+ integrity sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==
+ dependencies:
+ basic-ftp "^5.0.2"
+ data-uri-to-buffer "^6.0.2"
+ debug "^4.3.4"
+ fs-extra "^11.2.0"
+
+gopd@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
+ integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
+ dependencies:
+ get-intrinsic "^1.1.3"
+
+graceful-fs@^4.1.6, graceful-fs@^4.2.0:
+ version "4.2.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
+ integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+
+has-bigints@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa"
+ integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==
+
+has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854"
+ integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
+ dependencies:
+ es-define-property "^1.0.0"
+
+has-proto@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd"
+ integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==
+
+has-symbols@^1.0.2, has-symbols@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
+ integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
+
+has-tostringtag@^1.0.0, has-tostringtag@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
+ integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
+ dependencies:
+ has-symbols "^1.0.3"
+
+hasown@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
+ integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
+ dependencies:
+ function-bind "^1.1.2"
+
+http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.1:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e"
+ integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==
+ dependencies:
+ agent-base "^7.1.0"
+ debug "^4.3.4"
+
+https-proxy-agent@^7.0.3, https-proxy-agent@^7.0.5:
+ version "7.0.5"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2"
+ integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==
+ dependencies:
+ agent-base "^7.0.2"
+ debug "4"
+
+ieee754@^1.1.13:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+ integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
+import-fresh@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+ integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
+internal-slot@^1.0.4:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802"
+ integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==
+ dependencies:
+ es-errors "^1.3.0"
+ hasown "^2.0.0"
+ side-channel "^1.0.4"
+
+ip-address@^9.0.5:
+ version "9.0.5"
+ resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a"
+ integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==
+ dependencies:
+ jsbn "1.1.0"
+ sprintf-js "^1.1.3"
+
+is-arguments@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
+ integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
+ dependencies:
+ call-bind "^1.0.2"
+ has-tostringtag "^1.0.0"
+
+is-array-buffer@^3.0.2, is-array-buffer@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98"
+ integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==
+ dependencies:
+ call-bind "^1.0.2"
+ get-intrinsic "^1.2.1"
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
+
+is-bigint@^1.0.1:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
+ integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==
+ dependencies:
+ has-bigints "^1.0.1"
+
+is-boolean-object@^1.1.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
+ integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
+ dependencies:
+ call-bind "^1.0.2"
+ has-tostringtag "^1.0.0"
+
+is-callable@^1.1.3:
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
+ integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
+
+is-date-object@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
+ integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
+ dependencies:
+ has-tostringtag "^1.0.0"
+
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-map@^2.0.2, is-map@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e"
+ integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==
+
+is-number-object@^1.0.4:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc"
+ integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==
+ dependencies:
+ has-tostringtag "^1.0.0"
+
+is-regex@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
+ integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
+ dependencies:
+ call-bind "^1.0.2"
+ has-tostringtag "^1.0.0"
+
+is-set@^2.0.2, is-set@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d"
+ integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==
+
+is-shared-array-buffer@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688"
+ integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==
+ dependencies:
+ call-bind "^1.0.7"
+
+is-string@^1.0.5, is-string@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
+ integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
+ dependencies:
+ has-tostringtag "^1.0.0"
+
+is-symbol@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
+ integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
+ dependencies:
+ has-symbols "^1.0.2"
+
+is-weakmap@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd"
+ integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==
+
+is-weakset@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007"
+ integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==
+ dependencies:
+ call-bind "^1.0.7"
+ get-intrinsic "^1.2.4"
+
+isarray@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
+ integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
+
+jpeg-exif@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/jpeg-exif/-/jpeg-exif-1.1.4.tgz#781a65b6cd74f62cb1c493511020f8d3577a1c2b"
+ integrity sha512-a+bKEcCjtuW5WTdgeXFzswSrdqi0jk4XlEtZlx5A94wCoBpFjfFTbo/Tra5SpNCl/YFZPvcV1dJc+TAYeg6ROQ==
+
+js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-yaml@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+ integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+ dependencies:
+ argparse "^2.0.1"
+
+jsbn@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040"
+ integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==
+
+json-parse-even-better-errors@^2.3.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
+jsonfile@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
+ integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+ dependencies:
+ universalify "^2.0.0"
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+linebreak@^1.0.2:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/linebreak/-/linebreak-1.1.0.tgz#831cf378d98bced381d8ab118f852bd50d81e46b"
+ integrity sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ==
+ dependencies:
+ base64-js "0.0.8"
+ unicode-trie "^2.0.0"
+
+lines-and-columns@^1.1.6:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
+ integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
+
+lru-cache@^7.14.1:
+ version "7.18.3"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89"
+ integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==
+
+mitt@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1"
+ integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==
+
+ms@^2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+netmask@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7"
+ integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==
+
+object-inspect@^1.13.1:
+ version "1.13.3"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.3.tgz#f14c183de51130243d6d18ae149375ff50ea488a"
+ integrity sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==
+
+object-is@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07"
+ integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==
+ dependencies:
+ call-bind "^1.0.7"
+ define-properties "^1.2.1"
+
+object-keys@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+ integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
+object.assign@^4.1.4:
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0"
+ integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==
+ dependencies:
+ call-bind "^1.0.5"
+ define-properties "^1.2.1"
+ has-symbols "^1.0.3"
+ object-keys "^1.1.1"
+
+once@^1.3.1, once@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
+ dependencies:
+ wrappy "1"
+
+pac-proxy-agent@^7.0.1:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-7.0.2.tgz#0fb02496bd9fb8ae7eb11cfd98386daaac442f58"
+ integrity sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==
+ dependencies:
+ "@tootallnate/quickjs-emscripten" "^0.23.0"
+ agent-base "^7.0.2"
+ debug "^4.3.4"
+ get-uri "^6.0.1"
+ http-proxy-agent "^7.0.0"
+ https-proxy-agent "^7.0.5"
+ pac-resolver "^7.0.1"
+ socks-proxy-agent "^8.0.4"
+
+pac-resolver@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-7.0.1.tgz#54675558ea368b64d210fd9c92a640b5f3b8abb6"
+ integrity sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==
+ dependencies:
+ degenerator "^5.0.0"
+ netmask "^2.0.2"
+
+pako@^0.2.5:
+ version "0.2.9"
+ resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
+ integrity sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==
+
+parent-module@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+ integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+ dependencies:
+ callsites "^3.0.0"
+
+parse-json@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
+ integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ error-ex "^1.3.1"
+ json-parse-even-better-errors "^2.3.0"
+ lines-and-columns "^1.1.6"
+
+pdfkit@^0.15.1:
+ version "0.15.1"
+ resolved "https://registry.yarnpkg.com/pdfkit/-/pdfkit-0.15.1.tgz#c2b5d451b0508965737482c2239e5e0f697de848"
+ integrity sha512-sleaMQXbQ/Dk+38HlxdiMT6Lmw5+HoNc4vkJR1Tb9XGALuB1xrfdWYbDFta70F3jCrVkhA2DiQ52D7jbysGZrw==
+ dependencies:
+ crypto-js "^4.2.0"
+ fontkit "^1.8.1"
+ jpeg-exif "^1.1.4"
+ linebreak "^1.0.2"
+ png-js "^1.0.0"
+
+pend@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
+ integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==
+
+picocolors@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
+ integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
+
+png-js@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/png-js/-/png-js-1.0.0.tgz#e5484f1e8156996e383aceebb3789fd75df1874d"
+ integrity sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==
+
+possible-typed-array-names@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f"
+ integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==
+
+progress@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
+ integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
+
+proxy-agent@^6.4.0:
+ version "6.4.0"
+ resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-6.4.0.tgz#b4e2dd51dee2b377748aef8d45604c2d7608652d"
+ integrity sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==
+ dependencies:
+ agent-base "^7.0.2"
+ debug "^4.3.4"
+ http-proxy-agent "^7.0.1"
+ https-proxy-agent "^7.0.3"
+ lru-cache "^7.14.1"
+ pac-proxy-agent "^7.0.1"
+ proxy-from-env "^1.1.0"
+ socks-proxy-agent "^8.0.2"
+
+proxy-from-env@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
+ integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+
+pump@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.2.tgz#836f3edd6bc2ee599256c924ffe0d88573ddcbf8"
+ integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+puppeteer-core@23.8.0:
+ version "23.8.0"
+ resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-23.8.0.tgz#745be0a509734c65bd678c08bc9418b0f142cf36"
+ integrity sha512-c2ymGN2M//We7pC+JhP2dE/g4+qnT89BO+EMSZyJmecN3DN6RNqErA7eH7DrWoNIcU75r2nP4VHa4pswAL6NVg==
+ dependencies:
+ "@puppeteer/browsers" "2.4.1"
+ chromium-bidi "0.8.0"
+ debug "^4.3.7"
+ devtools-protocol "0.0.1367902"
+ typed-query-selector "^2.12.0"
+ ws "^8.18.0"
+
+puppeteer@^23.7.0:
+ version "23.8.0"
+ resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-23.8.0.tgz#24f623223ee7fd74f495a36620f940a2eca9ac88"
+ integrity sha512-MFWDMWoCcOpwNwQIjA9gPKWrEUbj8bLCzkK56w5lZPMUT6wK4FfpgOEPxKffVmXEMYMZzgcjxzqy15b/Q1ibaw==
+ dependencies:
+ "@puppeteer/browsers" "2.4.1"
+ chromium-bidi "0.8.0"
+ cosmiconfig "^9.0.0"
+ devtools-protocol "0.0.1367902"
+ puppeteer-core "23.8.0"
+ typed-query-selector "^2.12.0"
+
+queue-tick@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142"
+ integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==
+
+regexp.prototype.flags@^1.5.1:
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42"
+ integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==
+ dependencies:
+ call-bind "^1.0.7"
+ define-properties "^1.2.1"
+ es-errors "^1.3.0"
+ set-function-name "^2.0.2"
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+ integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
+
+resolve-from@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+restructure@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/restructure/-/restructure-2.0.1.tgz#4199745466cfc9bb9e1647746a4c902b7b0049d1"
+ integrity sha512-e0dOpjm5DseomnXx2M5lpdZ5zoHqF1+bqdMJUohoYVVQa7cBdnk7fdmeI6byNWP/kiME72EeTiSypTCVnpLiDg==
+
+scroll-to-bottomjs@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/scroll-to-bottomjs/-/scroll-to-bottomjs-1.1.0.tgz#06589ea5c398742cae4bb56664fa132c8f095123"
+ integrity sha512-+e7MRrUwY7M1V93ebqxIyPwIC8rPkvcmmmdSrOnNnCpbDP2Fpva3B6RadoRQ+ubZoYdYxye3Cculgbzb/CZiGw==
+
+semver@^7.6.3:
+ version "7.6.3"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
+ integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
+
+set-function-length@^1.2.1:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449"
+ integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==
+ dependencies:
+ define-data-property "^1.1.4"
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.4"
+ gopd "^1.0.1"
+ has-property-descriptors "^1.0.2"
+
+set-function-name@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985"
+ integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==
+ dependencies:
+ define-data-property "^1.1.4"
+ es-errors "^1.3.0"
+ functions-have-names "^1.2.3"
+ has-property-descriptors "^1.0.2"
+
+side-channel@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2"
+ integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==
+ dependencies:
+ call-bind "^1.0.7"
+ es-errors "^1.3.0"
+ get-intrinsic "^1.2.4"
+ object-inspect "^1.13.1"
+
+smart-buffer@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
+ integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
+
+socks-proxy-agent@^8.0.2, socks-proxy-agent@^8.0.4:
+ version "8.0.4"
+ resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz#9071dca17af95f483300316f4b063578fa0db08c"
+ integrity sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==
+ dependencies:
+ agent-base "^7.1.1"
+ debug "^4.3.4"
+ socks "^2.8.3"
+
+socks@^2.8.3:
+ version "2.8.3"
+ resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5"
+ integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==
+ dependencies:
+ ip-address "^9.0.5"
+ smart-buffer "^4.2.0"
+
+source-map@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+sprintf-js@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a"
+ integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==
+
+stop-iteration-iterator@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4"
+ integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==
+ dependencies:
+ internal-slot "^1.0.4"
+
+streamx@^2.15.0, streamx@^2.20.0:
+ version "2.20.2"
+ resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.20.2.tgz#6a8911959d6f307c19781a1d19ecd94b5f042d78"
+ integrity sha512-aDGDLU+j9tJcUdPGOaHmVF1u/hhI+CsGkT02V3OKlHDV7IukOI+nTWAGkiZEKCO35rWN1wIr4tS7YFr1f4qSvA==
+ dependencies:
+ fast-fifo "^1.3.2"
+ queue-tick "^1.0.1"
+ text-decoder "^1.1.0"
+ optionalDependencies:
+ bare-events "^2.2.0"
+
+string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
+tar-fs@^3.0.6:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.6.tgz#eaccd3a67d5672f09ca8e8f9c3d2b89fa173f217"
+ integrity sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==
+ dependencies:
+ pump "^3.0.0"
+ tar-stream "^3.1.5"
+ optionalDependencies:
+ bare-fs "^2.1.1"
+ bare-path "^2.1.0"
+
+tar-stream@^3.1.5:
+ version "3.1.7"
+ resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.7.tgz#24b3fb5eabada19fe7338ed6d26e5f7c482e792b"
+ integrity sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==
+ dependencies:
+ b4a "^1.6.4"
+ fast-fifo "^1.2.0"
+ streamx "^2.15.0"
+
+text-decoder@^1.1.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/text-decoder/-/text-decoder-1.2.1.tgz#e173f5121d97bfa3ff8723429ad5ba92e1ead67e"
+ integrity sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==
+
+through@^2.3.8:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+ integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
+
+tiny-inflate@^1.0.0, tiny-inflate@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4"
+ integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==
+
+tslib@^2.0.1, tslib@^2.4.0:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
+ integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
+
+typed-query-selector@^2.12.0:
+ version "2.12.0"
+ resolved "https://registry.yarnpkg.com/typed-query-selector/-/typed-query-selector-2.12.0.tgz#92b65dbc0a42655fccf4aeb1a08b1dddce8af5f2"
+ integrity sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==
+
+unbzip2-stream@^1.4.3:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7"
+ integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==
+ dependencies:
+ buffer "^5.2.1"
+ through "^2.3.8"
+
+undici-types@~6.19.8:
+ version "6.19.8"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02"
+ integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
+
+unicode-properties@^1.3.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/unicode-properties/-/unicode-properties-1.4.1.tgz#96a9cffb7e619a0dc7368c28da27e05fc8f9be5f"
+ integrity sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==
+ dependencies:
+ base64-js "^1.3.0"
+ unicode-trie "^2.0.0"
+
+unicode-trie@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-2.0.0.tgz#8fd8845696e2e14a8b67d78fa9e0dd2cad62fec8"
+ integrity sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==
+ dependencies:
+ pako "^0.2.5"
+ tiny-inflate "^1.0.0"
+
+universalify@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
+ integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
+
+urlpattern-polyfill@10.0.0:
+ version "10.0.0"
+ resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz#f0a03a97bfb03cdf33553e5e79a2aadd22cac8ec"
+ integrity sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==
+
+which-boxed-primitive@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
+ integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
+ dependencies:
+ is-bigint "^1.0.1"
+ is-boolean-object "^1.1.0"
+ is-number-object "^1.0.4"
+ is-string "^1.0.5"
+ is-symbol "^1.0.3"
+
+which-collection@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0"
+ integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==
+ dependencies:
+ is-map "^2.0.3"
+ is-set "^2.0.3"
+ is-weakmap "^2.0.2"
+ is-weakset "^2.0.3"
+
+which-typed-array@^1.1.13:
+ version "1.1.15"
+ resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d"
+ integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==
+ dependencies:
+ available-typed-arrays "^1.0.7"
+ call-bind "^1.0.7"
+ for-each "^0.3.3"
+ gopd "^1.0.1"
+ has-tostringtag "^1.0.2"
+
+wrap-ansi@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+
+ws@^8.18.0:
+ version "8.18.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc"
+ integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==
+
+y18n@^5.0.5:
+ version "5.0.8"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+ integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+
+yargs-parser@^21.1.1:
+ version "21.1.1"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
+ integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
+
+yargs@^17.7.2:
+ version "17.7.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
+ integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
+ dependencies:
+ cliui "^8.0.1"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.3"
+ y18n "^5.0.5"
+ yargs-parser "^21.1.1"
+
+yauzl@^2.10.0:
+ version "2.10.0"
+ resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
+ integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==
+ dependencies:
+ buffer-crc32 "~0.2.3"
+ fd-slicer "~1.1.0"
+
+zod@3.23.8:
+ version "3.23.8"
+ resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d"
+ integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==