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==