diff --git a/.eslintrc.cjs b/.eslintrc.cjs index a8d61dc..8f69cfa 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -39,6 +39,7 @@ module.exports = { '@typescript-eslint/return-await': 'off', '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/explicit-function-return-type': 'off', + "@typescript-eslint/no-unsafe-assignment": "off", '@typescript-eslint/member-delimiter-style': [ 'error', { diff --git a/.github/scripts/scrapix_server_call_check.sh b/.github/scripts/scrapix_server_call_check.sh deleted file mode 100644 index dae7386..0000000 --- a/.github/scripts/scrapix_server_call_check.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh - -async_url="http://localhost:8080/crawl/async" -payload='{ - "start_urls": [ - "http://localhost:3000" - ], - "meilisearch_url": "http://localhost:7700", - "meilisearch_api_key": "masterKey", - "meilisearch_index_uid": "docusaurus-docsearch", - "strategy": "docssearch" -}' - -echo "Async crawling test" -response=$(curl -X POST -H "Content-Type: application/json" -d "$payload" "$async_url") - -# Check if the response equals "Crawling start" -if [ "$response" = "Crawling started" ]; then - echo "Async crawling started successfully!" -else - echo "Async Crawling failed or returned an unexpected response." - echo $response - exit 1 -fi - -sync_url="http://localhost:8080/crawl/sync" - -echo "Sync crawling test" -response=$(curl -X POST -H "Content-Type: application/json" -d "$payload" "$sync_url") - -# Check if the response equals "Crawling finished" -if [ "$response" = "Crawling finished" ]; then - echo "Sync crawling finished successfully!" -else - echo "Sync crawling failed or returned an unexpected response." - echo $response - exit 1 -fi - -exit 0 diff --git a/.github/scripts/wait-for-it.sh b/.github/scripts/wait-for-it.sh new file mode 100644 index 0000000..da32dc5 --- /dev/null +++ b/.github/scripts/wait-for-it.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env bash +# Use: ./wait-for-it.sh host:port [-t timeout] [-- command args] +# From: https://github.com/vishnubob/wait-for-it + +WAITFORIT_cmdname=${0##*/} + +echoerr() { if [[ $WAITFORIT_QUIET -ne 1 ]]; then echo "$@" 1>&2; fi } + +usage() +{ + cat << USAGE >&2 +Usage: + $WAITFORIT_cmdname host:port [-t timeout] [-- command args] + -h HOST | --host=HOST Host or IP under test + -p PORT | --port=PORT TCP port under test + -t TIMEOUT | --timeout=TIMEOUT Timeout in seconds, zero for no timeout + -- COMMAND ARGS Execute command with args after the test finishes +USAGE + exit 1 +} + +wait_for() +{ + if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then + echoerr "$WAITFORIT_cmdname: waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT" + else + echoerr "$WAITFORIT_cmdname: waiting for $WAITFORIT_HOST:$WAITFORIT_PORT without a timeout" + fi + WAITFORIT_start_ts=$(date +%s) + while : + do + if [[ $WAITFORIT_ISBUSY -eq 1 ]]; then + nc -z $WAITFORIT_HOST $WAITFORIT_PORT + WAITFORIT_result=$? + else + (echo -n > /dev/tcp/$WAITFORIT_HOST/$WAITFORIT_PORT) >/dev/null 2>&1 + WAITFORIT_result=$? + fi + if [[ $WAITFORIT_result -eq 0 ]]; then + WAITFORIT_end_ts=$(date +%s) + echoerr "$WAITFORIT_cmdname: $WAITFORIT_HOST:$WAITFORIT_PORT is available after $((WAITFORIT_end_ts - WAITFORIT_start_ts)) seconds" + break + fi + sleep 1 + done + return $WAITFORIT_result +} + +# Rest of the script... \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..3b67731 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,73 @@ +name: Test + +on: + pull_request: + branches: [main] + push: + branches: [main] + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: "20" + cache: "npm" + + - name: Install dependencies + run: npm ci + + - name: Build + run: npm run build + + - name: Install Docker Compose + run: | + sudo apt-get update + sudo apt-get install -y docker-compose + + - name: Start test environment + run: | + docker-compose up -d + docker ps -a + + - name: Make wait-for-it.sh executable + run: chmod +x .github/scripts/wait-for-it.sh + + - name: Wait for services + run: | + .github/scripts/wait-for-it.sh localhost:7700 -t 60 + .github/scripts/wait-for-it.sh localhost:3000 -t 60 + .github/scripts/wait-for-it.sh localhost:8080 -t 60 + sleep 10 # Give services extra time to fully initialize + + - name: Debug service logs + if: always() + run: | + echo "=== Meilisearch Logs ===" + docker-compose logs meilisearch + echo "=== Playground Logs ===" + docker-compose logs playground + echo "=== Scraper Logs ===" + docker-compose logs scraper + echo "=== Redis Logs ===" + docker-compose logs redis + + - name: Run tests + run: npm run test + + - name: Show test logs on failure + if: failure() + run: | + echo "=== Service Status ===" + docker-compose ps + echo "=== Recent Logs ===" + docker-compose logs --tail=100 + + - name: Cleanup + if: always() + run: docker-compose down -v diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml deleted file mode 100644 index 7228f36..0000000 --- a/.github/workflows/tests.yml +++ /dev/null @@ -1,77 +0,0 @@ -name: Tests - -on: - pull_request: - push: - # trying and staging branches are for BORS config - branches: - - trying - - staging - - main - -jobs: - scrap_tests: - runs-on: ubuntu-latest - name: Crawler tests - services: - meilisearch: - image: getmeili/meilisearch:latest - env: - MEILI_MASTER_KEY: "masterKey" - MEILI_NO_ANALYTICS: "true" - ports: - - "7700:7700" - strategy: - fail-fast: false - matrix: - node: ["16", "18", "20"] - steps: - - uses: actions/checkout@v3 - - name: Setup node - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node }} - cache: "yarn" - - name: Install dependencies - run: yarn - - name: Run playground - run: yarn playground:start & - - name: Run default strategy scraper - run: yarn start -p misc/config_examples/docusaurus-default.json - - name: Run docsearch strategy scraper - run: yarn start -p misc/config_examples/docusaurus-docsearch.json - - name: Run scrapix server - run: yarn serve & - - name: Wait - run: sleep 5 - - name: Call scrapix server - run: sh .github/scripts/scrapix_server_call_check.sh - - lint_tests: - runs-on: ubuntu-latest - name: lint tests - steps: - - uses: actions/checkout@v3 - - name: Setup node - uses: actions/setup-node@v3 - with: - node-version: 20 - cache: "yarn" - - name: Install dependencies - run: yarn - - name: Run JS/TS linter - run: yarn lint - build_test: - runs-on: ubuntu-latest - name: types-check - steps: - - uses: actions/checkout@v3 - - name: Setup node - uses: actions/setup-node@v3 - with: - node-version: 20 - cache: "yarn" - - name: Install dependencies - run: yarn - - name: Build project - run: yarn build diff --git a/.gitignore b/.gitignore index af262ce..da06652 100644 --- a/.gitignore +++ b/.gitignore @@ -71,6 +71,7 @@ typings/ # dotenv environment variables file .env .env.test +.env.local # parcel-bundler cache (https://parceljs.org/) .cache diff --git a/Dockerfile b/Dockerfile index fe5271e..69b2dc6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,14 @@ # Specify the base Docker image. You can read more about # the available images at https://crawlee.dev/docs/guides/docker-images # You can also use any other image from Docker Hub. -FROM apify/actor-node-puppeteer-chrome:18 AS builder +FROM apify/actor-node-puppeteer-chrome:20 AS builder # Copy just package.json and package-lock.json # to speed up the build using Docker layer cache. COPY --chown=myuser package*.json ./ # Install all dependencies. Don't audit to speed up the installation. -RUN yarn install --production=false +RUN npm install --include=dev # Next, copy the source files using the user set # in the base image. @@ -16,10 +16,10 @@ COPY --chown=myuser . ./ # Install all dependencies and build the project. # Don't audit to speed up the installation. -RUN yarn run build +RUN npm run build # Create final image -FROM apify/actor-node-puppeteer-chrome:18 +FROM apify/actor-node-puppeteer-chrome:20 # Copy only built JS files from builder image COPY --from=builder --chown=myuser /home/myuser/dist ./dist @@ -31,7 +31,7 @@ COPY --chown=myuser package*.json ./ # Install NPM packages, skip optional and development dependencies to # keep the image small. Avoid logging too much and print the dependency # tree for debugging -RUN yarn install --production=false +RUN npm install # Next, copy the remaining files and directories with the source code. # Since we do this after NPM install, quick build will be really fast @@ -40,4 +40,4 @@ COPY --chown=myuser . ./ # Run the image. If you know you won't need headful browsers, # you can remove the XVFB start script for a micro perf gain. -CMD ./start_xvfb_and_run_cmd.sh && yarn start:prod -- -c $CRAWLER_CONFIG -b /usr/bin/google-chrome --silent +CMD ./start_xvfb_and_run_cmd.sh && npm run start:server -- -c $CRAWLER_CONFIG -b /usr/bin/google-chrome --silent diff --git a/README.md b/README.md index 833ed7d..ec80062 100644 --- a/README.md +++ b/README.md @@ -33,8 +33,7 @@ data: "meilisearch_url": "http://localhost:7700", "meilisearch_api_key": "masterKey", "meilisearch_index_uid": "google", - "strategy": "default", // docssearch, schema*, custom or default - "headless": true, // Use headless browser for rendering javascript websites + "strategy": "default", // docssearch, schema*, custom, markdown or default "batch_size": 1000, // pass null to send documents 1 at a time or specify a batch size "primary_key": null, "meilisearch_settings": { @@ -52,6 +51,12 @@ data: "filterableAttributes": ["urls_tags"], "distinctAttribute": "url" }, + "selectors": { // Only for custom + "main_content": "main", + "headings": "h1, h2, h3", + "paragraphs": "p", + "custom_field": ".custom-class", + }, "schema_settings": { "only_type": "Product", // Product, Article, etc... "convert_dates": true // default false @@ -159,10 +164,6 @@ Name of the index on which the content is indexed. default: `default` Scraping strategy: - `default` Scrapes the content of webpages, it is suitable for most use cases. It indexes the content in this format (show example) - `docssearch` Scrapes the content of webpages, it suits most use cases. The difference with the default strategy is that it indexes the content in a format compatible with docs-search bar - `schema` Scraps the [`schema`](https://schema.org/) information of your web app. -`headless` -default: `true` -Wether or not the javascript should be loaded before scraping starts. - `primary_key` The key name in your documents containing their unique identifier. diff --git a/config/nodemon:build.json b/config/nodemon:build.json deleted file mode 100644 index ea526ae..0000000 --- a/config/nodemon:build.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "watch": ["src"], - "ext": "ts,json", - "exec": "yarn build" -} diff --git a/config/nodemon:default-scrap.json b/config/nodemon:default-scrap.json deleted file mode 100644 index d33bc35..0000000 --- a/config/nodemon:default-scrap.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "watch": ["src", "misc/config_examples/docusaurus-default.json"], - "ext": "ts,json", - "exec": "yarn start -p misc/config_examples/docusaurus-default.json" -} diff --git a/config/nodemon:docsearch-scrap.json b/config/nodemon:docsearch-scrap.json deleted file mode 100644 index 35568e5..0000000 --- a/config/nodemon:docsearch-scrap.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "watch": ["src", "misc/config_examples/docusaurus-docsearch.json"], - "ext": "ts,json", - "exec": "yarn start -p misc/config_examples/docusaurus-docsearch.json" -} diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml deleted file mode 100644 index 51f0aad..0000000 --- a/docker-compose.dev.yml +++ /dev/null @@ -1,27 +0,0 @@ -# Create a docker compose that run Meilisearch and Scrapix both latest version. -version: '3' - -services: - scrapix: - image: scrapix:latest - restart: always - ports: - - 8080:8080 - environment: - - REDIS_URL=redis://redis:6379 - - meilisearch: - image: getmeili/meilisearch:latest - restart: always - ports: - - 7700:7700 - environment: - - MEILI_NO_ANALYTICS=true - - MEILI_MASTER_KEY=masterKey - - MEILI_ENV=development - - redis: - image: redis:latest - restart: always - ports: - - 6379:6379 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..5f41bb1 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,50 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json +services: + meilisearch: + image: getmeili/meilisearch:latest + environment: + - MEILI_MASTER_KEY=masterKey + ports: + - "7700:7700" + networks: + - crawler-network + + playground: + build: + context: ./playground + dockerfile: Dockerfile + ports: + - "3000:3000" + networks: + - crawler-network + + scraper: + build: + context: . + dockerfile: Dockerfile + environment: + - NODE_ENV=test + - REDIS_URL=redis://redis:6379 + ports: + - "8080:8080" + depends_on: + - meilisearch + - playground + networks: + - crawler-network + + redis: + image: redis:latest + restart: always + ports: + - 6379:6379 + networks: + - crawler-network + +volumes: + meili_data: + +networks: + crawler-network: + driver: bridge + name: crawler-network diff --git a/jest.integration.config.js b/jest.integration.config.js new file mode 100644 index 0000000..33463a3 --- /dev/null +++ b/jest.integration.config.js @@ -0,0 +1,8 @@ +module.exports = { + preset: "ts-jest", + testEnvironment: "node", + testMatch: ["**/test/integration/**/*.test.ts"], + setupFilesAfterEnv: ["./test/setup.ts"], + globalSetup: "./test/globalSetup.ts", + testTimeout: 30000, +}; diff --git a/misc/config_examples/default-simple-cheerio.json b/misc/config_examples/default-simple-cheerio.json new file mode 100644 index 0000000..d87756d --- /dev/null +++ b/misc/config_examples/default-simple-cheerio.json @@ -0,0 +1,7 @@ +{ + "start_urls": ["https://www.meilisearch.com/docs"], + "meilisearch_url": "localhost:7700", + "meilisearch_api_key": "masterKey", + "meilisearch_index_uid": "default-siple-cheerio", + "crawler_type": "cheerio" +} diff --git a/misc/config_examples/default-simple.json b/misc/config_examples/default-simple.json index 93cb23b..1660e98 100644 --- a/misc/config_examples/default-simple.json +++ b/misc/config_examples/default-simple.json @@ -1,6 +1,7 @@ { - "start_urls": ["https://platform.openai.com/docs"], - "meilisearch_url": "localhost:7700", - "meilisearch_api_key": "masterKey", - "meilisearch_index_uid": "openai" + "start_urls": ["https://docs.stripe.com", "https://docs.stripe.com/payments"], + "meilisearch_url": "https://ms-5fb917c45cfa-68.lon.meilisearch.io", + "meilisearch_api_key": "e8bfc81e0c669a7d03635a6de6c375506b7a1521", + "meilisearch_index_uid": "stripe", + "crawler_type": "cheerio" } diff --git a/misc/config_examples/pdf-crawler.json b/misc/config_examples/pdf-crawler.json new file mode 100644 index 0000000..e643158 --- /dev/null +++ b/misc/config_examples/pdf-crawler.json @@ -0,0 +1,13 @@ +{ + "start_urls": ["https://example.com/documents/"], + "meilisearch_url": "localhost:7700", + "meilisearch_api_key": "masterKey", + "meilisearch_index_uid": "pdf-documents", + "crawler_type": "cheerio", + "strategy": "pdf", + "pdf_settings": { + "split_per_page": true, + "extract_metadata": true + }, + "urls_to_index": ["https://example.com/documents/**/*.pdf"] +} diff --git a/misc/config_examples/schema-config-cheerio.json b/misc/config_examples/schema-config-cheerio.json new file mode 100644 index 0000000..6bef786 --- /dev/null +++ b/misc/config_examples/schema-config-cheerio.json @@ -0,0 +1,11 @@ +{ + "start_urls": ["https://www.lacoste.com/fr/lacoste"], + "meilisearch_url": "localhost:7700", + "meilisearch_api_key": "masterKey", + "meilisearch_index_uid": "lacoste", + "strategy": "schema", + "schema_settings": { + "only_type": "Product" + }, + "crawler_type": "cheerio" +} diff --git a/misc/config_examples/schema-indexed_urls-cheerio.json b/misc/config_examples/schema-indexed_urls-cheerio.json new file mode 100644 index 0000000..ac2960b --- /dev/null +++ b/misc/config_examples/schema-indexed_urls-cheerio.json @@ -0,0 +1,14 @@ +{ + "start_urls": [ + "https://eu.patagonia.com/fr/fr/shop", + "https://eu.patagonia.com/fr/fr/product" + ], + "urls_to_index": ["https://eu.patagonia.com/fr/fr/product"], + "meilisearch_url": "localhost:7700", + "meilisearch_api_key": "masterKey", + "meilisearch_index_uid": "patagonia", + "strategy": "schema", + "primary_key": "sku", + "crawler_type": "cheerio", + "batch_size": 100 +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..6d43bca --- /dev/null +++ b/package-lock.json @@ -0,0 +1,10902 @@ +{ + "name": "@meilisearch/scrapix", + "version": "0.1.9", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@meilisearch/scrapix", + "version": "0.1.9", + "license": "ISC", + "dependencies": { + "axios": "1.7.8", + "bull": "4.16.4", + "cheerio": "^1.0.0", + "crawlee": "3.12.0", + "dotenv": "16.4.5", + "express": "5.0.1", + "fast-xml-parser": "^4.5.0", + "instantsearch.css": "8.5.1", + "meilisearch": "0.45.0", + "minimatch": "10.0.1", + "node-html-markdown": "^1.3.0", + "pdf-parse": "^1.1.1", + "puppeteer": "23.9.0", + "puppeteer-core": "23.9.0", + "sitemapper": "^3.2.18", + "uuid": "11.0.3", + "yargs": "17.7.2" + }, + "devDependencies": { + "@apify/log": "2.5.9", + "@apify/tsconfig": "0.1.0", + "@jest/globals": "^29.7.0", + "@types/express": "5.0.0", + "@types/jest": "^29.0.0", + "@types/minimist": "^1.2.5", + "@types/node": "22.9.3", + "@types/pdf-parse": "^1.1.4", + "@types/prettier": "3.0.0", + "@types/puppeteer": "7.0.4", + "@types/uuid": "10.0.0", + "@types/yargs": "17.0.33", + "@typescript-eslint/eslint-plugin": "8.16.0", + "@typescript-eslint/parser": "8.16.0", + "axios": "1.7.8", + "concurrently": "9.1.0", + "eslint": "9.16.0", + "eslint-config-prettier": "9.1.0", + "eslint-plugin-jest": "28.9.0", + "eslint-plugin-prettier": "5.2.1", + "jest": "^29.7.0", + "meilisearch": "0.45.0", + "minimist": "^1.2.8", + "nodemon": "3.1.7", + "playwright": "1.49.0", + "ts-jest": "^29.1.2", + "ts-node": "^10.9.2", + "typescript": "5.7.2" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@apify/consts": { + "version": "2.33.0", + "resolved": "https://registry.npmjs.org/@apify/consts/-/consts-2.33.0.tgz", + "integrity": "sha512-Du4unQM2w1Hdt9ZT5AOMetP9jrTeYJelFRaIBDKNSF6ynZ+sbwBswHWAsxQfuy0gCHRftocexz5xNLzfV7tg4g==", + "license": "Apache-2.0" + }, + "node_modules/@apify/datastructures": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@apify/datastructures/-/datastructures-2.0.2.tgz", + "integrity": "sha512-IN9A0s2SCHoZZE1tf4xKgk4fxHM5/0I/UrXhWbn/rSv7E5sA2o0NyHdwcMY2Go9f5qd+E7VAbX6WnESTE6GLeA==", + "license": "Apache-2.0" + }, + "node_modules/@apify/log": { + "version": "2.5.9", + "resolved": "https://registry.npmjs.org/@apify/log/-/log-2.5.9.tgz", + "integrity": "sha512-HVmRHPMacUiWA7HYqgIq9sJywFEsyexZBUazfwCvmrOSHIt8kRCpvMNAgm+aMDNNnNm6e+pyA2pBQST7xXCGWQ==", + "license": "Apache-2.0", + "dependencies": { + "@apify/consts": "^2.33.0", + "ansi-colors": "^4.1.1" + } + }, + "node_modules/@apify/ps-tree": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@apify/ps-tree/-/ps-tree-1.2.0.tgz", + "integrity": "sha512-VHIswI7rD/R4bToeIDuJ9WJXt+qr5SdhfoZ9RzdjmCs9mgy7l0P4RugQEUCcU+WB4sfImbd4CKwzXcn0uYx1yw==", + "license": "MIT", + "dependencies": { + "event-stream": "3.3.4" + }, + "bin": { + "ps-tree": "bin/ps-tree.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@apify/pseudo_url": { + "version": "2.0.50", + "resolved": "https://registry.npmjs.org/@apify/pseudo_url/-/pseudo_url-2.0.50.tgz", + "integrity": "sha512-xnEDVEG/K+EfjGb/W90DcuQwoI8LKRKfkeX35baprv+fy8SV7D1FrvYw46Ulu0uYrfy1SAUXVhZbu2C2PHHv4w==", + "license": "Apache-2.0", + "dependencies": { + "@apify/log": "^2.5.9" + } + }, + "node_modules/@apify/timeout": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@apify/timeout/-/timeout-0.3.1.tgz", + "integrity": "sha512-sLIuOqfySki/7AXiQ1yZoCI07vX6aYFLgP6YaJ8e8YLn8CFsRERma/Crxcz0zyCaxhc7C7EPgcs1O+p/djZchw==", + "license": "Apache-2.0" + }, + "node_modules/@apify/tsconfig": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@apify/tsconfig/-/tsconfig-0.1.0.tgz", + "integrity": "sha512-ba9Y6AMocRucO3AVTb6GM2V+oy1wByNlCDzamK+IC+aqU3pCgJwSN87uNu6iEgu+uetsqYvVbXJYakwiQO1LGA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@apify/utilities": { + "version": "2.10.10", + "resolved": "https://registry.npmjs.org/@apify/utilities/-/utilities-2.10.10.tgz", + "integrity": "sha512-oJT2oRoTLJAhiTD/uQAQvPetLEiwkNKkhJSNkKi3TUsnxdRmHwxJz6S+evouOAt6Snipe9sb9PBune6DUAXGoA==", + "license": "Apache-2.0", + "dependencies": { + "@apify/consts": "^2.33.0", + "@apify/log": "^2.5.9" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@crawlee/basic": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@crawlee/basic/-/basic-3.12.0.tgz", + "integrity": "sha512-ltA1Z8zrmsgcCbiwa5PwqG4Pw4MdfaXqaXjdM6WYKdOHa7P0meDSrTaVtTrBBvNOpqODKFef94x5zo7/7Ya1Fg==", + "license": "Apache-2.0", + "dependencies": { + "@apify/log": "^2.4.0", + "@apify/timeout": "^0.3.0", + "@apify/utilities": "^2.7.10", + "@crawlee/core": "3.12.0", + "@crawlee/types": "3.12.0", + "@crawlee/utils": "3.12.0", + "csv-stringify": "^6.2.0", + "fs-extra": "^11.0.0", + "got-scraping": "^4.0.0", + "ow": "^0.28.1", + "tldts": "^6.0.0", + "tslib": "^2.4.0", + "type-fest": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@crawlee/browser": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@crawlee/browser/-/browser-3.12.0.tgz", + "integrity": "sha512-VL/Dfs0Pdr/duNJKNEg9b9ndYskRvG/Bwc/VHOf2j2K/De4pk+eRZhlt8FnQItIljhAb55EGoya90ZYck4o8cQ==", + "license": "Apache-2.0", + "dependencies": { + "@apify/timeout": "^0.3.0", + "@crawlee/basic": "3.12.0", + "@crawlee/browser-pool": "3.12.0", + "@crawlee/types": "3.12.0", + "@crawlee/utils": "3.12.0", + "ow": "^0.28.1", + "tslib": "^2.4.0", + "type-fest": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "playwright": "*", + "puppeteer": "*" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": true + }, + "puppeteer": { + "optional": true + } + } + }, + "node_modules/@crawlee/browser-pool": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@crawlee/browser-pool/-/browser-pool-3.12.0.tgz", + "integrity": "sha512-URModIQb033TC8cqfgJLmwVpueR4dAdyRBOPhyzOiahZSXd3PC2ZLvZ8ALyAUhW5Qjqlxr6vpEuZpEo/MBrReg==", + "license": "Apache-2.0", + "dependencies": { + "@apify/log": "^2.4.0", + "@apify/timeout": "^0.3.0", + "@crawlee/core": "3.12.0", + "@crawlee/types": "3.12.0", + "fingerprint-generator": "^2.0.6", + "fingerprint-injector": "^2.0.5", + "lodash.merge": "^4.6.2", + "nanoid": "^3.3.4", + "ow": "^0.28.1", + "p-limit": "^3.1.0", + "proxy-chain": "^2.0.1", + "quick-lru": "^5.1.1", + "tiny-typed-emitter": "^2.1.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "playwright": "*", + "puppeteer": "*" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": true + }, + "puppeteer": { + "optional": true + } + } + }, + "node_modules/@crawlee/cheerio": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@crawlee/cheerio/-/cheerio-3.12.0.tgz", + "integrity": "sha512-OHLUjyoSaW1TYpquigU440UHuOmEPiyYImxPPykaY5j3OPOBDFKR1BsHA+dVT9A7ZOKcpy2abnnv4lsjz60L7A==", + "license": "Apache-2.0", + "dependencies": { + "@crawlee/http": "3.12.0", + "@crawlee/types": "3.12.0", + "@crawlee/utils": "3.12.0", + "cheerio": "1.0.0-rc.12", + "htmlparser2": "^9.0.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@crawlee/cheerio/node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/@crawlee/cheerio/node_modules/cheerio/node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/@crawlee/cli": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@crawlee/cli/-/cli-3.12.0.tgz", + "integrity": "sha512-YGgL605IgXGJfJRtjN52S7GOWBzY8kuHMsKkAZKqRPsCnvoOtqEdJlIoXrMOKJbQfFb1u34UqMvDlozrh3udEA==", + "license": "Apache-2.0", + "dependencies": { + "@crawlee/templates": "3.12.0", + "ansi-colors": "^4.1.3", + "fs-extra": "^11.0.0", + "inquirer": "^8.2.4", + "tslib": "^2.4.0", + "yargonaut": "^1.1.4", + "yargs": "^17.5.1" + }, + "bin": { + "crawlee": "index.js" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@crawlee/core": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@crawlee/core/-/core-3.12.0.tgz", + "integrity": "sha512-64TM+/gBh2r15SjLhPMTmTQrgdtfiQT96c0XKtgH5oATFytn83NkUzjpGiJRyKzKmfcTby3xUhOhSDeRo2qhtQ==", + "license": "Apache-2.0", + "dependencies": { + "@apify/consts": "^2.20.0", + "@apify/datastructures": "^2.0.0", + "@apify/log": "^2.4.0", + "@apify/pseudo_url": "^2.0.30", + "@apify/timeout": "^0.3.0", + "@apify/utilities": "^2.7.10", + "@crawlee/memory-storage": "3.12.0", + "@crawlee/types": "3.12.0", + "@crawlee/utils": "3.12.0", + "@sapphire/async-queue": "^1.5.1", + "@vladfrangu/async_event_emitter": "^2.2.2", + "csv-stringify": "^6.2.0", + "fs-extra": "^11.0.0", + "got-scraping": "^4.0.0", + "json5": "^2.2.3", + "minimatch": "^9.0.0", + "ow": "^0.28.1", + "stream-json": "^1.8.0", + "tldts": "^6.0.0", + "tough-cookie": "^5.0.0", + "tslib": "^2.4.0", + "type-fest": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@crawlee/core/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@crawlee/http": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@crawlee/http/-/http-3.12.0.tgz", + "integrity": "sha512-kaSz5FmnVChfZkGJNblX2l2vUgcHHHpntagBr3dAKW+fkTTPqH4/G3f6dQcyBotW33gR0nq/e3AhC/T+mYjn+Q==", + "license": "Apache-2.0", + "dependencies": { + "@apify/timeout": "^0.3.0", + "@apify/utilities": "^2.7.10", + "@crawlee/basic": "3.12.0", + "@crawlee/types": "3.12.0", + "@crawlee/utils": "3.12.0", + "@types/content-type": "^1.1.5", + "cheerio": "1.0.0-rc.12", + "content-type": "^1.0.4", + "got-scraping": "^4.0.0", + "iconv-lite": "^0.6.3", + "mime-types": "^2.1.35", + "ow": "^0.28.1", + "tslib": "^2.4.0", + "type-fest": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@crawlee/http/node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/@crawlee/http/node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/@crawlee/jsdom": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@crawlee/jsdom/-/jsdom-3.12.0.tgz", + "integrity": "sha512-y2+wYuKKD8q6tmJTUujQw4jz7EixxYGKYc0pNNm57Gu/5VAYO7w5OvLMEqdYIB6HmQknAZ8n46KxBzqbcHlokA==", + "license": "Apache-2.0", + "dependencies": { + "@apify/timeout": "^0.3.0", + "@apify/utilities": "^2.7.10", + "@crawlee/http": "3.12.0", + "@crawlee/types": "3.12.0", + "@crawlee/utils": "3.12.0", + "@types/jsdom": "^21.0.0", + "cheerio": "1.0.0-rc.12", + "jsdom": "^25.0.0", + "ow": "^0.28.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@crawlee/jsdom/node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/@crawlee/jsdom/node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/@crawlee/linkedom": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@crawlee/linkedom/-/linkedom-3.12.0.tgz", + "integrity": "sha512-1Y+tDLT+802O2NGi3rhzluW7nbI5wFCvCEiYjHBt/fKM/rcaSakhNwfycG8QZn217PEw/SCy/V9Z5oymtpqoBQ==", + "license": "Apache-2.0", + "dependencies": { + "@apify/timeout": "^0.3.0", + "@apify/utilities": "^2.7.10", + "@crawlee/http": "3.12.0", + "@crawlee/types": "3.12.0", + "linkedom": "^0.18.0", + "ow": "^0.28.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@crawlee/memory-storage": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@crawlee/memory-storage/-/memory-storage-3.12.0.tgz", + "integrity": "sha512-PrIWH/tAw1+8kxH9+Y1eKwDuq2T+JKRiv+ltOIog0n/3tu7HTGU2Uom/1GZHHXag6jWDyBQsrHFMGSneTfhJ/w==", + "license": "Apache-2.0", + "dependencies": { + "@apify/log": "^2.4.0", + "@crawlee/types": "3.12.0", + "@sapphire/async-queue": "^1.5.0", + "@sapphire/shapeshift": "^3.0.0", + "content-type": "^1.0.4", + "fs-extra": "^11.0.0", + "json5": "^2.2.3", + "mime-types": "^2.1.35", + "proper-lockfile": "^4.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">= 16" + } + }, + "node_modules/@crawlee/playwright": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@crawlee/playwright/-/playwright-3.12.0.tgz", + "integrity": "sha512-FQYUH3oy6BNkQfB9b88ATS67e2qZcITXQSQxI/sezx6KPakRfIGUmhVuGuDrnZAe6atGBWiJDR/NRINF7hEnhA==", + "license": "Apache-2.0", + "dependencies": { + "@apify/datastructures": "^2.0.0", + "@apify/log": "^2.4.0", + "@apify/timeout": "^0.3.1", + "@crawlee/browser": "3.12.0", + "@crawlee/browser-pool": "3.12.0", + "@crawlee/core": "3.12.0", + "@crawlee/types": "3.12.0", + "@crawlee/utils": "3.12.0", + "cheerio": "1.0.0-rc.12", + "idcac-playwright": "^0.1.2", + "jquery": "^3.6.0", + "lodash.isequal": "^4.5.0", + "ml-logistic-regression": "^2.0.0", + "ml-matrix": "^6.11.0", + "ow": "^0.28.1", + "string-comparison": "^1.3.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "playwright": "*" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": true + } + } + }, + "node_modules/@crawlee/playwright/node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/@crawlee/playwright/node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/@crawlee/puppeteer": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@crawlee/puppeteer/-/puppeteer-3.12.0.tgz", + "integrity": "sha512-YZTAnvLJ1HRjw02TICesWI0ZNbmu4XPdIS/Wuv+82MUTjqJ1sqiRa+pBfx3KNgiOOcOj1/P9bNmINqOmPqA+aA==", + "license": "Apache-2.0", + "dependencies": { + "@apify/datastructures": "^2.0.0", + "@apify/log": "^2.4.0", + "@crawlee/browser": "3.12.0", + "@crawlee/browser-pool": "3.12.0", + "@crawlee/types": "3.12.0", + "@crawlee/utils": "3.12.0", + "cheerio": "1.0.0-rc.12", + "devtools-protocol": "*", + "idcac-playwright": "^0.1.2", + "jquery": "^3.6.0", + "ow": "^0.28.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "puppeteer": "*" + }, + "peerDependenciesMeta": { + "puppeteer": { + "optional": true + } + } + }, + "node_modules/@crawlee/puppeteer/node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/@crawlee/puppeteer/node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/@crawlee/templates": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@crawlee/templates/-/templates-3.12.0.tgz", + "integrity": "sha512-pr8qOmfAB7oYLYBXvxLThRV9S/Kpj74qG3vPGdJc2ax6RskooQtaa7Jqgr8vJFlTbCnbgquiko0QhvLamC0aRg==", + "license": "Apache-2.0", + "dependencies": { + "ansi-colors": "^4.1.3", + "inquirer": "^9.0.0", + "tslib": "^2.4.0", + "yargonaut": "^1.1.4", + "yargs": "^17.5.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@crawlee/templates/node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "license": "ISC", + "engines": { + "node": ">= 12" + } + }, + "node_modules/@crawlee/templates/node_modules/inquirer": { + "version": "9.3.7", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.3.7.tgz", + "integrity": "sha512-LJKFHCSeIRq9hanN14IlOtPSTe3lNES7TYDTE2xxdAy1LS5rYphajK1qtwvj3YmQXvvk0U2Vbmcni8P9EIQW9w==", + "license": "MIT", + "dependencies": { + "@inquirer/figures": "^1.0.3", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", + "mute-stream": "1.0.0", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@crawlee/templates/node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@crawlee/templates/node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/@crawlee/types": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@crawlee/types/-/types-3.12.0.tgz", + "integrity": "sha512-W52s8H3jZ9H7pjxygC7mhqwdNIV29mHxJr5yujnHYJyH1iWLU6p22h0M55l11KZmUBwaRq5LqmPX6LbHNRqyoQ==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@crawlee/utils": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@crawlee/utils/-/utils-3.12.0.tgz", + "integrity": "sha512-8BILVHixIzAvOhHjychVnfch/ptt7dcJJ1pRLWdYvhF6Y+LmXg2KKPWltRajx0St9pXOkJaNQ11HzSK1n29wfw==", + "license": "Apache-2.0", + "dependencies": { + "@apify/log": "^2.4.0", + "@apify/ps-tree": "^1.2.0", + "@crawlee/types": "3.12.0", + "@types/sax": "^1.2.7", + "cheerio": "1.0.0-rc.12", + "file-type": "^19.0.0", + "got-scraping": "^4.0.3", + "ow": "^0.28.1", + "robots-parser": "^3.0.1", + "sax": "^1.4.1", + "tslib": "^2.4.0", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@crawlee/utils/node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/@crawlee/utils/node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", + "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", + "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz", + "integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", + "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.8.tgz", + "integrity": "sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@ioredis/commands": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", + "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", + "license": "MIT" + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", + "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", + "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", + "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", + "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", + "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", + "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@puppeteer/browsers": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.4.1.tgz", + "integrity": "sha512-0kdAbmic3J09I6dT8e9vE2JOCSt13wHCW5x/ly8TSt2bDtuIWe2TgLZZDHdcziw9AVCzflMAXCrVyRIhIs44Ng==", + "license": "Apache-2.0", + "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" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sapphire/async-queue": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.5.tgz", + "integrity": "sha512-cvGzxbba6sav2zZkH8GPf2oGk9yYoD5qrNWdu9fRehifgnFZJMV+nuy2nON2roRO4yQQ+v7MK/Pktl/HgfsUXg==", + "license": "MIT", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sapphire/shapeshift": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.9.7.tgz", + "integrity": "sha512-4It2mxPSr4OGn4HSQWGmhFMsNFGfFVhWeRPCRwbH972Ek2pzfGRZtb0pJ4Ze6oIzcyh2jw7nUDa6qGlWofgd9g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=v16" + } + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "license": "MIT" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sindresorhus/is": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.0.1.tgz", + "integrity": "sha512-QWLl2P+rsCJeofkDNIT3WFmb6NrRud1SUYW8dIhXK/46XFV8Q/g7Bsvib0Askb0reRLe+WYPeeE+l5cH7SlkuQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", + "license": "MIT" + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "license": "MIT" + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/content-type": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@types/content-type/-/content-type-1.1.8.tgz", + "integrity": "sha512-1tBhmVUeso3+ahfyaKluXe38p+94lovUZdoVfQ3OnJo9uJC42JT7CBoN3k9HYhAae+GwiBYmHu+N9FZhOG+2Pg==", + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz", + "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.2.tgz", + "integrity": "sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "license": "MIT" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jsdom": { + "version": "21.1.7", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz", + "integrity": "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.9.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.3.tgz", + "integrity": "sha512-F3u1fs/fce3FFk+DAxbxc78DF8x0cY09RRL8GnXLmkJ1jvx3TtPdWoTT5/NiYfI5ASqXBmfqJi9dZ3gxMx4lzw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.8" + } + }, + "node_modules/@types/pdf-parse": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@types/pdf-parse/-/pdf-parse-1.1.4.tgz", + "integrity": "sha512-+gbBHbNCVGGYw1S9lAIIvrHW47UYOhMIFUsJcMkMrzy1Jf0vulBN3XQIjPgnoOXveMuHnF3b57fXROnY/Or7eg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prettier": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-3.0.0.tgz", + "integrity": "sha512-mFMBfMOz8QxhYVbuINtswBp9VL2b4Y0QqYHwqLz3YbgtfAcat2Dl6Y1o4e22S/OVE6Ebl9m7wWiMT2lSbAs1wA==", + "deprecated": "This is a stub types definition. prettier provides its own type definitions, so you do not need this installed.", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier": "*" + } + }, + "node_modules/@types/puppeteer": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-7.0.4.tgz", + "integrity": "sha512-ja78vquZc8y+GM2al07GZqWDKQskQXygCDiu0e3uO0DMRKqE0MjrFBFmTulfPYzLB6WnL7Kl2tFPy0WXSpPomg==", + "deprecated": "This is a stub types definition. puppeteer provides its own type definitions, so you do not need this installed.", + "dev": true, + "license": "MIT", + "dependencies": { + "puppeteer": "*" + } + }, + "node_modules/@types/qs": { + "version": "6.9.17", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", + "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/sax": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "license": "MIT" + }, + "node_modules/@types/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.16.0.tgz", + "integrity": "sha512-5YTHKV8MYlyMI6BaEG7crQ9BhSc8RxzshOReKwZwRWN0+XvvTOm+L/UYLCYxFpfwYuAAqhxiq4yae0CMFwbL7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.16.0", + "@typescript-eslint/type-utils": "8.16.0", + "@typescript-eslint/utils": "8.16.0", + "@typescript-eslint/visitor-keys": "8.16.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.16.0.tgz", + "integrity": "sha512-D7DbgGFtsqIPIFMPJwCad9Gfi/hC0PWErRRHFnaCWoEDYi5tQUDiJCTmGUbBiLzjqAck4KcXt9Ayj0CNlIrF+w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "8.16.0", + "@typescript-eslint/types": "8.16.0", + "@typescript-eslint/typescript-estree": "8.16.0", + "@typescript-eslint/visitor-keys": "8.16.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.16.0.tgz", + "integrity": "sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.16.0", + "@typescript-eslint/visitor-keys": "8.16.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.16.0.tgz", + "integrity": "sha512-IqZHGG+g1XCWX9NyqnI/0CX5LL8/18awQqmkZSl2ynn8F76j579dByc0jhfVSnSnhf7zv76mKBQv9HQFKvDCgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.16.0", + "@typescript-eslint/utils": "8.16.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.16.0.tgz", + "integrity": "sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.16.0.tgz", + "integrity": "sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "8.16.0", + "@typescript-eslint/visitor-keys": "8.16.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.16.0.tgz", + "integrity": "sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.16.0", + "@typescript-eslint/types": "8.16.0", + "@typescript-eslint/typescript-estree": "8.16.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.16.0.tgz", + "integrity": "sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.16.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@vladfrangu/async_event_emitter": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@vladfrangu/async_event_emitter/-/async_event_emitter-2.4.6.tgz", + "integrity": "sha512-RaI5qZo6D2CVS6sTHFKg1v5Ohq/+Bo2LZ5gzUEwZ/WkHhwtGTCB/sVLw8ijOkAUxasZ+WshN/Rzj4ywsABJ5ZA==", + "license": "MIT", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.0.tgz", + "integrity": "sha512-XqoSHeCGjVClAmoGFG3lVFqQFRIrTVw2OH3axRqAcfaw+gHWIfnASS92AV+Rl/mk0MupgZTRHQOjxY6YVnzK5w==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.53.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adm-zip": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", + "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", + "license": "MIT", + "engines": { + "node": ">=12.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/array-flatten": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz", + "integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==", + "license": "MIT" + }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.8.tgz", + "integrity": "sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "license": "Apache-2.0" + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/bare-events": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz", + "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==", + "license": "Apache-2.0", + "optional": true + }, + "node_modules/bare-fs": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz", + "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-events": "^2.0.0", + "bare-path": "^2.0.0", + "bare-stream": "^2.0.0" + } + }, + "node_modules/bare-os": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz", + "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==", + "license": "Apache-2.0", + "optional": true + }, + "node_modules/bare-path": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz", + "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-os": "^2.1.0" + } + }, + "node_modules/bare-stream": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.4.2.tgz", + "integrity": "sha512-XZ4ln/KV4KT+PXdIWTKjsLY+quqCaEtqqtgGJVPw9AoM73By03ij64YjepK0aQvHSWDb6AfAZwqKaFu68qkrdA==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "streamx": "^2.20.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.0.2.tgz", + "integrity": "sha512-SNMk0OONlQ01uk8EPeiBvTW7W4ovpL5b1O3t1sjpPgfxOQ6BqQJ6XjxinDPR79Z6HdcD5zBBwr5ssiTlgdNztQ==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "3.1.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.5.2", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "^3.0.0", + "type-is": "~1.6.18" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz", + "integrity": "sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/body-parser/node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/bull": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/bull/-/bull-4.16.4.tgz", + "integrity": "sha512-CF+nGsJyfsCC9MJL8hFxqXzbwq+jGBXhaz1j15G+5N/XtKIPFUUy5O1mfWWKbKunfuH/x+UV4NYRQDHSkjCOgA==", + "license": "MIT", + "dependencies": { + "cron-parser": "^4.2.1", + "get-port": "^5.1.1", + "ioredis": "^5.3.2", + "lodash": "^4.17.21", + "msgpackr": "^1.11.2", + "semver": "^7.5.2", + "uuid": "^8.3.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/bull/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-12.0.1.tgz", + "integrity": "sha512-Yo9wGIQUaAfIbk+qY0X4cDQgCosecfBe3V9NSyeY4qPC2SAkbCS4Xj79VP8WOzitpJUZKc/wsRCYF5ariDIwkg==", + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "^4.0.4", + "get-stream": "^9.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.4", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.1", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001684", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz", + "integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "license": "MIT" + }, + "node_modules/cheerio": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^6.19.5", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=18.17" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chromium-bidi": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.8.0.tgz", + "integrity": "sha512-uJydbGdTw0DEUjhoogGveneJVWX/9YuqkWePzMmkBYwtdAqo5d3J/ovNKFr+/2hWXYmYCr6it8mSSTIj6SS6Ug==", + "license": "Apache-2.0", + "dependencies": { + "mitt": "3.0.1", + "urlpattern-polyfill": "10.0.0", + "zod": "3.23.8" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", + "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone-response/node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concurrently": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.1.0.tgz", + "integrity": "sha512-VxkzwMAn4LP7WyMnJNbHN5mKV9L2IbyDjpzemKr99sXNR3GqRNMMHdm7prV1ws9wg7ETj6WUkNOigZVsptwbgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "lodash": "^4.17.21", + "rxjs": "^7.8.1", + "shell-quote": "^1.8.1", + "supports-color": "^8.1.1", + "tree-kill": "^1.2.2", + "yargs": "^17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/content-disposition": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/crawlee": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crawlee/-/crawlee-3.12.0.tgz", + "integrity": "sha512-+3/7XQEiEt2TzhX0uENgyvDIC5CSn8QPtYMeT8Rr/qUbtkhffdmNoypMnPYYruoqlVPORb5y+BNUFAl0IpUFaA==", + "license": "Apache-2.0", + "dependencies": { + "@crawlee/basic": "3.12.0", + "@crawlee/browser": "3.12.0", + "@crawlee/browser-pool": "3.12.0", + "@crawlee/cheerio": "3.12.0", + "@crawlee/cli": "3.12.0", + "@crawlee/core": "3.12.0", + "@crawlee/http": "3.12.0", + "@crawlee/jsdom": "3.12.0", + "@crawlee/linkedom": "3.12.0", + "@crawlee/playwright": "3.12.0", + "@crawlee/puppeteer": "3.12.0", + "@crawlee/utils": "3.12.0", + "import-local": "^3.1.0", + "tslib": "^2.4.0" + }, + "bin": { + "crawlee": "cli.js" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "playwright": "*", + "puppeteer": "*" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": true + }, + "puppeteer": { + "optional": true + } + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cron-parser": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.9.0.tgz", + "integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==", + "license": "MIT", + "dependencies": { + "luxon": "^3.2.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.1.0.tgz", + "integrity": "sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==", + "license": "MIT", + "dependencies": { + "rrweb-cssom": "^0.7.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/csv-stringify": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-6.5.2.tgz", + "integrity": "sha512-RFPahj0sXcmUyjrObAK+DOWtMvMIFV328n4qZJhgX3x2RqkQgOTU2mCUmiFR0CzM6AzChlRSUErjiJeEt8BaQA==", + "license": "MIT" + }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "license": "MIT" + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/devtools-protocol": { + "version": "0.0.1389614", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1389614.tgz", + "integrity": "sha512-XYRpuv+KLsxgEk5hJ0rKCvSjEe+S/LTjXN+y6eYnHfxaQ6Us7BLgiJprI7avuY7r9L1e9TWALzv+iDq0l7eG5w==", + "license": "BSD-3-Clause" + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.67", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.67.tgz", + "integrity": "sha512-nz88NNBsD7kQSAGGJyp8hS6xSPtWwqNogA0mjtc2nUYeEf3nURK9qpV18TuBdDmEDgVWotS8Wkzf+V52dSQ/LQ==", + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding-sniffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", + "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint": { + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.16.0.tgz", + "integrity": "sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.16.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.5", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "28.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.9.0.tgz", + "integrity": "sha512-rLu1s1Wf96TgUUxSw6loVIkNtUjq1Re7A9QdCCHSohnvXEBAjuL420h0T/fMmkQlNsQP2GhQzEUpYHPfxBkvYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "engines": { + "node": "^16.10.0 || ^18.12.0 || >=20.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.9.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", + "license": "MIT", + "dependencies": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.0.1.tgz", + "integrity": "sha512-ORF7g6qGnD+YtUG9yx4DFoqCShNMmUKiXuT5oWMHiOvt/4WFbHC6yCwQMTSBMno7AqntNCAzzcnnjowRkTL9eQ==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.0.1", + "content-disposition": "^1.0.0", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "^1.2.1", + "debug": "4.3.6", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "^2.0.0", + "fresh": "2.0.0", + "http-errors": "2.0.0", + "merge-descriptors": "^2.0.0", + "methods": "~1.1.2", + "mime-types": "^3.0.0", + "on-finished": "2.4.1", + "once": "1.4.0", + "parseurl": "~1.3.3", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "router": "^2.0.0", + "safe-buffer": "5.2.1", + "send": "^1.1.0", + "serve-static": "^2.1.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "^2.0.0", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/express/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/express/node_modules/mime-db": { + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/mime-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.0.tgz", + "integrity": "sha512-XqoSHeCGjVClAmoGFG3lVFqQFRIrTVw2OH3axRqAcfaw+gHWIfnASS92AV+Rl/mk0MupgZTRHQOjxY6YVnzK5w==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.53.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-xml-parser": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz", + "integrity": "sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "license": "MIT", + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figlet": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.8.0.tgz", + "integrity": "sha512-chzvGjd+Sp7KUvPHZv6EXV5Ir3Q7kYNpCr4aHrRW79qFtTefmQZNny+W1pW9kf5zeE6dikku2W50W/wAH2xWgw==", + "license": "MIT", + "bin": { + "figlet": "bin/index.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/file-type": { + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-19.6.0.tgz", + "integrity": "sha512-VZR5I7k5wkD0HgFnMsq5hOsSc710MJMu5Nc5QYsbe38NN5iPV/XTObYLc/cpttRTf6lX538+5uO1ZQRhYibiZQ==", + "license": "MIT", + "dependencies": { + "get-stream": "^9.0.1", + "strtok3": "^9.0.1", + "token-types": "^6.0.0", + "uint8array-extras": "^1.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.0.0.tgz", + "integrity": "sha512-MX6Zo2adDViYh+GcxxB1dpO43eypOGUOL12rLCOTMQv/DfIbpSJUy4oQIIZhVZkH9e+bZWKMon0XHFEju16tkQ==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fingerprint-generator": { + "version": "2.1.57", + "resolved": "https://registry.npmjs.org/fingerprint-generator/-/fingerprint-generator-2.1.57.tgz", + "integrity": "sha512-KDpFexkGywR9pWsx/XnzzB5BKeyfdC6pA16mCj5WalwxBmKciIXuqJwSq9LHN/DFLxmnPgDMDWKUw7SEc/j8xQ==", + "license": "Apache-2.0", + "dependencies": { + "generative-bayesian-network": "^2.1.57", + "header-generator": "^2.1.57", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fingerprint-injector": { + "version": "2.1.57", + "resolved": "https://registry.npmjs.org/fingerprint-injector/-/fingerprint-injector-2.1.57.tgz", + "integrity": "sha512-pLp7dLVStXSBjvrsEodAdn+13VwXHrvJW6riFNwcv4nQQZGmIxDZ54GiKeHsmIDGR5KeYPyVHtv2+AC20l1ZJw==", + "license": "Apache-2.0", + "dependencies": { + "fingerprint-generator": "^2.1.57", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "playwright": "^1.22.2", + "puppeteer": ">= 9.x" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": true + }, + "puppeteer": { + "optional": true + } + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-data-encoder": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-4.0.2.tgz", + "integrity": "sha512-KQVhvhK8ZkWzxKxOr56CPulAhH3dobtuQ4+hNQ+HekH/Wp5gSOafqRAeTphQUJAIk0GBvHZgJ2ZGRWd5kphMuw==", + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", + "license": "MIT" + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generative-bayesian-network": { + "version": "2.1.57", + "resolved": "https://registry.npmjs.org/generative-bayesian-network/-/generative-bayesian-network-2.1.57.tgz", + "integrity": "sha512-o6UqR+j/oQnG5imsdaYwSqcVVWLuVBjYI3jE+z+aRZ6RqAFnHPK3uV+y4HEOnCokbFhgq9x+TKcBMAoKagT9TQ==", + "license": "Apache-2.0", + "dependencies": { + "adm-zip": "^0.5.9", + "tslib": "^2.4.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-uri": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", + "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4", + "fs-extra": "^11.2.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.1.0.tgz", + "integrity": "sha512-FQoVQnqcdk4hVM4JN1eromaun4iuS34oStkdlLENLdpULsuQcTyXj8w7ayhuUfPwEYZ1ZOooOTT6fdA9Vmx/RA==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "14.4.5", + "resolved": "https://registry.npmjs.org/got/-/got-14.4.5.tgz", + "integrity": "sha512-sq+uET8TnNKRNnjEOPJzMcxeI0irT8BBNmf+GtZcJpmhYsQM1DSKmCROUjPWKsXZ5HzwD5Cf5/RV+QD9BSTxJg==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^7.0.1", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^12.0.1", + "decompress-response": "^6.0.0", + "form-data-encoder": "^4.0.2", + "http2-wrapper": "^2.2.1", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^4.0.1", + "responselike": "^3.0.0", + "type-fest": "^4.26.1" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/got-scraping": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/got-scraping/-/got-scraping-4.0.8.tgz", + "integrity": "sha512-QCptrUWsxgtP8LAnGZqjuJMwbLELlst1DF/Ba30OUOk7wi/LJtNwuYPUxoielRxTxd9QQ38FL/CWyRVc7m7ZkQ==", + "license": "Apache-2.0", + "dependencies": { + "got": "^14.2.1", + "header-generator": "^2.1.41", + "http2-wrapper": "^2.2.0", + "mimic-response": "^4.0.0", + "ow": "^1.1.1", + "quick-lru": "^7.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/got-scraping/node_modules/@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/got-scraping/node_modules/callsites": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-4.2.0.tgz", + "integrity": "sha512-kfzR4zzQtAE9PC7CzZsjl3aBNbXWuXiSeOCdLcPpBfGW8YuCqQHcRPFDbr/BPVmd3EEPVpuFzLyuT/cUhPr4OQ==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got-scraping/node_modules/dot-prop": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz", + "integrity": "sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==", + "license": "MIT", + "dependencies": { + "type-fest": "^2.11.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got-scraping/node_modules/ow": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ow/-/ow-1.1.1.tgz", + "integrity": "sha512-sJBRCbS5vh1Jp9EOgwp1Ws3c16lJrUkJYlvWTYC03oyiYVwS/ns7lKRWow4w4XjDyTrA2pplQv4B2naWSR6yDA==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^5.3.0", + "callsites": "^4.0.0", + "dot-prop": "^7.2.0", + "lodash.isequal": "^4.5.0", + "vali-date": "^1.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got-scraping/node_modules/quick-lru": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-7.0.0.tgz", + "integrity": "sha512-MX8gB7cVYTrYcFfAnfLlhRd0+Toyl8yX8uBx1MrX7K0jegiz9TumwOK27ldXrgDlHRdVi+MqU9Ssw6dr4BNreg==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got-scraping/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/header-generator": { + "version": "2.1.57", + "resolved": "https://registry.npmjs.org/header-generator/-/header-generator-2.1.57.tgz", + "integrity": "sha512-QmFzEd5fw1PrLztvJT7JBtNRt7MYskE8basiAjxGX5MNcS//JaiNsMyk7b12IJG7yppO5pJzg3zAa0UFfcNIvA==", + "license": "Apache-2.0", + "dependencies": { + "browserslist": "^4.21.1", + "generative-bayesian-network": "^2.1.57", + "ow": "^0.28.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "license": "BSD-2-Clause" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/idcac-playwright": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/idcac-playwright/-/idcac-playwright-0.1.3.tgz", + "integrity": "sha512-VVYQ4sv6OrUJKVzYaIP1hq0qAHd1O22HW5LnL1Wf6zkrLStQ/QEg4iJ0rllIOEpd+Rmm+635AJD59A+Vw+2PgQ==", + "license": "ISC" + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/inquirer": { + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/instantsearch.css": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/instantsearch.css/-/instantsearch.css-8.5.1.tgz", + "integrity": "sha512-lu4gWSa2crIA1OAuFwtrNJy4d8oRvKmkY5gv8Dbf3tuedQMm6cf7K+1kXJKRAHLm4pZos9RXIH10m57UfDKbyg==", + "license": "MIT" + }, + "node_modules/ioredis": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.4.1.tgz", + "integrity": "sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==", + "license": "MIT", + "dependencies": { + "@ioredis/commands": "^1.1.1", + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.4", + "denque": "^2.1.0", + "lodash.defaults": "^4.2.0", + "lodash.isarguments": "^3.1.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ioredis" + } + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-any-array": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-any-array/-/is-any-array-2.0.1.tgz", + "integrity": "sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==", + "license": "MIT" + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-gzip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-2.0.0.tgz", + "integrity": "sha512-jtO4Njg6q58zDo/Pu4027beSZ0VdsZlt8/5Moco6yAg+DIxb5BK/xUYqYG2+MD4+piKldXJNHxRkhEYI2fvrxA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "license": "MIT" + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jake/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "license": "MIT" + }, + "node_modules/jsdom": { + "version": "25.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-25.0.1.tgz", + "integrity": "sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==", + "license": "MIT", + "dependencies": { + "cssstyle": "^4.1.0", + "data-urls": "^5.0.0", + "decimal.js": "^10.4.3", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.5", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.12", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.7.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^5.0.0", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^2.11.2" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/linkedom": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/linkedom/-/linkedom-0.18.5.tgz", + "integrity": "sha512-JGLaGGtqtu+eOhYrC1wkWYTBcpVWL4AsnwAtMtgO1Q0gI0PuPJKI0zBBE+a/1BrhOE3Uw8JI/ycByAv5cLrAuQ==", + "license": "ISC", + "dependencies": { + "css-select": "^5.1.0", + "cssom": "^0.5.0", + "html-escaper": "^3.0.3", + "htmlparser2": "^9.1.0", + "uhyphen": "^0.2.0" + } + }, + "node_modules/linkedom/node_modules/html-escaper": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", + "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==", + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "license": "MIT" + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", + "license": "MIT" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/luxon": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.5.0.tgz", + "integrity": "sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==" + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/meilisearch": { + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/meilisearch/-/meilisearch-0.45.0.tgz", + "integrity": "sha512-+zCzEqE+CumY4icB0Vox180adZqaNtnr60hJWGiEdmol5eWmksfY8rYsTcz87styXC2ZOg+2yF56gdH6oyIBTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/ml-array-max": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/ml-array-max/-/ml-array-max-1.2.4.tgz", + "integrity": "sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ==", + "license": "MIT", + "dependencies": { + "is-any-array": "^2.0.0" + } + }, + "node_modules/ml-array-min": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/ml-array-min/-/ml-array-min-1.2.3.tgz", + "integrity": "sha512-VcZ5f3VZ1iihtrGvgfh/q0XlMobG6GQ8FsNyQXD3T+IlstDv85g8kfV0xUG1QPRO/t21aukaJowDzMTc7j5V6Q==", + "license": "MIT", + "dependencies": { + "is-any-array": "^2.0.0" + } + }, + "node_modules/ml-array-rescale": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz", + "integrity": "sha512-48NGChTouvEo9KBctDfHC3udWnQKNKEWN0ziELvY3KG25GR5cA8K8wNVzracsqSW1QEkAXjTNx+ycgAv06/1mQ==", + "license": "MIT", + "dependencies": { + "is-any-array": "^2.0.0", + "ml-array-max": "^1.2.4", + "ml-array-min": "^1.2.3" + } + }, + "node_modules/ml-logistic-regression": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ml-logistic-regression/-/ml-logistic-regression-2.0.0.tgz", + "integrity": "sha512-xHhB91ut8GRRbJyB1ZQfKsl1MHmE1PqMeRjxhks96M5BGvCbC9eEojf4KgRMKM2LxFblhVUcVzweAoPB48Nt0A==", + "license": "MIT", + "dependencies": { + "ml-matrix": "^6.5.0" + } + }, + "node_modules/ml-matrix": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.12.0.tgz", + "integrity": "sha512-AGfR+pWaC0GmzjUnB6BfwhndPEUGz0i7QUYdqNuw1zhTov/vSRJ9pP2hs6BoGpaSbtXgrKjZz2zjD1M0xuur6A==", + "license": "MIT", + "dependencies": { + "is-any-array": "^2.0.1", + "ml-array-rescale": "^1.3.7" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/msgpackr": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.2.tgz", + "integrity": "sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==", + "license": "MIT", + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" + } + }, + "node_modules/msgpackr-extract": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", + "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.2.2" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "license": "ISC" + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/node-ensure": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/node-ensure/-/node-ensure-0.0.0.tgz", + "integrity": "sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw==", + "license": "MIT" + }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", + "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/node-html-markdown": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/node-html-markdown/-/node-html-markdown-1.3.0.tgz", + "integrity": "sha512-OeFi3QwC/cPjvVKZ114tzzu+YoR+v9UXW5RwSXGUqGb0qCl0DvP406tzdL7SFn8pZrMyzXoisfG2zcuF9+zw4g==", + "license": "MIT", + "dependencies": { + "node-html-parser": "^6.1.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/node-html-parser": { + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.13.tgz", + "integrity": "sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==", + "license": "MIT", + "dependencies": { + "css-select": "^5.1.0", + "he": "1.2.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.7.tgz", + "integrity": "sha512-hLj7fuMow6f0lbB0cD14Lz2xNjwsyruH251Pk4t/yIitCFJbmY1myuLlHm/q06aST4jg6EgAh74PIBBrRqpVAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", + "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==", + "license": "MIT" + }, + "node_modules/object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ow": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/ow/-/ow-0.28.2.tgz", + "integrity": "sha512-dD4UpyBh/9m4X2NVjA+73/ZPBRF+uF4zIMFvvQsabMiEK8x41L3rQ8EENOi35kyyoaJwNxEeJcP6Fj1H4U409Q==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.2.0", + "callsites": "^3.1.0", + "dot-prop": "^6.0.1", + "lodash.isequal": "^4.5.0", + "vali-date": "^1.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ow/node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/p-cancelable": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-4.0.1.tgz", + "integrity": "sha512-wBowNApzd45EIKdO1LaU+LrMBwAcjfPaYtVzV3lmfM3gf8Z4CHZsiIqlM8TZZ8okYvh5A1cP6gTfCRQtwUpaUg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pac-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.2.tgz", + "integrity": "sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-require": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parent-require/-/parent-require-1.0.0.tgz", + "integrity": "sha512-2MXDNZC4aXdkkap+rBBMv0lUsfJqvX5/2FiYYnfCnorZt3Pk06/IOR5KeaoghgS2w07MLWgjbsnyaq6PdHn2LQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "license": "MIT", + "dependencies": { + "entities": "^4.5.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "license": "MIT", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "license": [ + "MIT", + "Apache2" + ], + "dependencies": { + "through": "~2.3" + } + }, + "node_modules/pdf-parse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pdf-parse/-/pdf-parse-1.1.1.tgz", + "integrity": "sha512-v6ZJ/efsBpGrGGknjtq9J/oC8tZWq0KWL5vQrk2GlzLEQPUDB1ex+13Rmidl1neNN358Jn9EHZw5y07FFtaC7A==", + "license": "MIT", + "dependencies": { + "debug": "^3.1.0", + "node-ensure": "^0.0.0" + }, + "engines": { + "node": ">=6.8.1" + } + }, + "node_modules/pdf-parse/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/peek-readable": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.3.1.tgz", + "integrity": "sha512-GVlENSDW6KHaXcd9zkZltB7tCLosKB/4Hg0fqBJkAoBgYG2Tn1xtMgXtSUuMU9AK/gCm/tTdT8mgAeF4YNeeqw==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/playwright": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.49.0.tgz", + "integrity": "sha512-eKpmys0UFDnfNb3vfsf8Vx2LEOtflgRebl0Im2eQQnYMA4Aqd+Zw8bEOB+7ZKvN76901mRnqdsiOGKxzVTbi7A==", + "devOptional": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.49.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.49.0.tgz", + "integrity": "sha512-R+3KKTQF3npy5GTiKH/T+kdhoJfJojjHESR1YEWhYuEKRVfVaxH3+4+GvXE5xyCngCxhxnykk0Vlah9v8fs3jA==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz", + "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proper-lockfile": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", + "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "retry": "^0.12.0", + "signal-exit": "^3.0.2" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-agent": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", + "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/proxy-chain": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/proxy-chain/-/proxy-chain-2.5.5.tgz", + "integrity": "sha512-CPZEmY9FKU3veQQbsrimaXUu5d/FXLfkQj0tCJ8DSJpzQYeDlISbTaf70bjcBQWlXR1FDBOtpFOuB66js+Ik7g==", + "license": "Apache-2.0", + "dependencies": { + "socks": "^2.8.3", + "socks-proxy-agent": "^8.0.3", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer": { + "version": "23.9.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-23.9.0.tgz", + "integrity": "sha512-WfB8jGwFV+qrD9dcJJVvWPFJBU6kxeu2wxJz9WooDGfM3vIiKLgzImEDBxUQnCBK/2cXB3d4dV6gs/LLpgfLDg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.4.1", + "chromium-bidi": "0.8.0", + "cosmiconfig": "^9.0.0", + "devtools-protocol": "0.0.1367902", + "puppeteer-core": "23.9.0", + "typed-query-selector": "^2.12.0" + }, + "bin": { + "puppeteer": "lib/cjs/puppeteer/node/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core": { + "version": "23.9.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.9.0.tgz", + "integrity": "sha512-hLVrav2HYMVdK0YILtfJwtnkBAwNOztUdR4aJ5YKDvgsbtagNr6urUJk9HyjRA9e+PaLI3jzJ0wM7A4jSZ7Qxw==", + "license": "Apache-2.0", + "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" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core/node_modules/devtools-protocol": { + "version": "0.0.1367902", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz", + "integrity": "sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==", + "license": "BSD-3-Clause" + }, + "node_modules/puppeteer/node_modules/devtools-protocol": { + "version": "0.0.1367902", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz", + "integrity": "sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==", + "license": "BSD-3-Clause" + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.6.3", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redis-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/redis-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", + "license": "MIT", + "dependencies": { + "redis-errors": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/robots-parser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-3.0.1.tgz", + "integrity": "sha512-s+pyvQeIKIZ0dx5iJiQk1tPLJAWln39+MI5jtM8wnyws+G5azk+dMnMX0qfbqNetKKNgcWWOdi0sfm+FbQbgdQ==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/router": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.0.0.tgz", + "integrity": "sha512-dIM5zVoG8xhC6rnSN8uoAgFARwTE7BQs8YwHEvK0VCmfxQXMaOuA1uiR1IPwsW7JyK5iTt7Od/TC9StasS2NPQ==", + "license": "MIT", + "dependencies": { + "array-flatten": "3.0.0", + "is-promise": "4.0.0", + "methods": "~1.1.2", + "parseurl": "~1.3.3", + "path-to-regexp": "^8.0.0", + "setprototypeof": "1.2.0", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", + "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", + "license": "MIT" + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.1.0.tgz", + "integrity": "sha512-v67WcEouB5GxbTWL/4NeToqcZiAWEq90N888fczVArY8A79J0L4FD7vj5hm3eUMua5EpoQ59wa/oovY6TLvRUA==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.5", + "destroy": "^1.2.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "http-errors": "^2.0.0", + "mime-types": "^2.1.35", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/send/node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.1.0.tgz", + "integrity": "sha512-A3We5UfEjG8Z7VkDv6uItWw6HY2bBSBJT1KtVESn6EOoOr2jAxNhxWCLY3jDE2WcuHXByWju74ck3ZgLwL8xmA==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sitemapper": { + "version": "3.2.18", + "resolved": "https://registry.npmjs.org/sitemapper/-/sitemapper-3.2.18.tgz", + "integrity": "sha512-WgvjKoKzi+I8AsMjUtG65cpOHWnx9JhRxUjy1RIsMaI3ALXUak5504WCDKW3en8QzbIk5yNtZO4A4CzvvY8Qdg==", + "license": "MIT", + "dependencies": { + "fast-xml-parser": "^4.5.0", + "got": "^11.8.0", + "is-gzip": "2.0.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/sitemapper/node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/sitemapper/node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sitemapper/node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/sitemapper/node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sitemapper/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sitemapper/node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/sitemapper/node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/sitemapper/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sitemapper/node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sitemapper/node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sitemapper/node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", + "license": "MIT", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "license": "BSD-3-Clause" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-as-callback": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", + "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stream-chain": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/stream-chain/-/stream-chain-2.2.5.tgz", + "integrity": "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==", + "license": "BSD-3-Clause" + }, + "node_modules/stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", + "license": "MIT", + "dependencies": { + "duplexer": "~0.1.1" + } + }, + "node_modules/stream-json": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/stream-json/-/stream-json-1.9.1.tgz", + "integrity": "sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==", + "license": "BSD-3-Clause", + "dependencies": { + "stream-chain": "^2.2.5" + } + }, + "node_modules/streamx": { + "version": "2.20.2", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.2.tgz", + "integrity": "sha512-aDGDLU+j9tJcUdPGOaHmVF1u/hhI+CsGkT02V3OKlHDV7IukOI+nTWAGkiZEKCO35rWN1wIr4tS7YFr1f4qSvA==", + "license": "MIT", + "dependencies": { + "fast-fifo": "^1.3.2", + "queue-tick": "^1.0.1", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-comparison": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string-comparison/-/string-comparison-1.3.0.tgz", + "integrity": "sha512-46aD+slEwybxAMPRII83ATbgMgTiz5P8mVd7Z6VJsCzSHFjdt1hkAVLeFxPIyEb11tc6ihpJTlIqoO0MCF6NPw==", + "license": "MIT", + "engines": { + "node": "^16.0.0 || >=18.0.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "license": "MIT" + }, + "node_modules/strtok3": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-9.1.1.tgz", + "integrity": "sha512-FhwotcEqjr241ZbjFzjlIYg6c5/L/s4yBGWSMvJ9UoExiSqL+FnFA/CaeZx17WGaZMS/4SOZp8wH18jSS4R4lw==", + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.3.1" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "license": "MIT" + }, + "node_modules/synckit": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/tar-fs": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz", + "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^2.1.1", + "bare-path": "^2.1.0" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/text-decoder": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz", + "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==", + "license": "Apache-2.0" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" + }, + "node_modules/tiny-typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", + "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==", + "license": "MIT" + }, + "node_modules/tldts": { + "version": "6.1.65", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.65.tgz", + "integrity": "sha512-xU9gLTfAGsADQ2PcWee6Hg8RFAv0DnjMGVJmDnUmI8a9+nYmapMQix4afwrdaCtT+AqP4MaxEzu7cCrYmBPbzQ==", + "license": "MIT", + "dependencies": { + "tldts-core": "^6.1.65" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.65", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.65.tgz", + "integrity": "sha512-Uq5t0N0Oj4nQSbU8wFN1YYENvMthvwU13MQrMJRspYCGLSAZjAfoBOJki5IQpnBM/WFskxxC/gIOTwaedmHaSg==", + "license": "MIT" + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/token-types": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-6.0.0.tgz", + "integrity": "sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA==", + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tough-cookie": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.0.0.tgz", + "integrity": "sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==", + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^6.1.32" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-jest": { + "version": "29.2.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz", + "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bs-logger": "^0.2.6", + "ejs": "^3.1.10", + "fast-json-stable-stringify": "^2.1.0", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.6.3", + "yargs-parser": "^21.1.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.29.0.tgz", + "integrity": "sha512-RPYt6dKyemXJe7I6oNstcH24myUGSReicxcHTvCLgzm4e0n8y05dGvcGB15/SoPRBmhlMthWQ9pvKyL81ko8nQ==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.0.tgz", + "integrity": "sha512-gd0sGezQYCbWSbkZr75mln4YBidWUN60+devscpLF5mtRDUpiaTvKpBNrdaCvel1NdR2k6vclXybU5fBd2i+nw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-db": { + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.0.tgz", + "integrity": "sha512-XqoSHeCGjVClAmoGFG3lVFqQFRIrTVw2OH3axRqAcfaw+gHWIfnASS92AV+Rl/mk0MupgZTRHQOjxY6YVnzK5w==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.53.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-query-selector": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", + "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", + "license": "MIT" + }, + "node_modules/typescript": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uhyphen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/uhyphen/-/uhyphen-0.2.0.tgz", + "integrity": "sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA==", + "license": "ISC" + }, + "node_modules/uint8array-extras": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.4.0.tgz", + "integrity": "sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "license": "MIT", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.0.tgz", + "integrity": "sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==", + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urlpattern-polyfill": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", + "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", + "license": "MIT" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.3.tgz", + "integrity": "sha512-d0z310fCWv5dJwnX1Y/MncBAqGMKEzlBb1AOf7z9K8ALnd0utBX/msg/fA0+sbyN1ihbMsLhrBlnl1ak7Wa0rg==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vali-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", + "integrity": "sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz", + "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==", + "license": "MIT", + "dependencies": { + "tr46": "^5.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargonaut": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/yargonaut/-/yargonaut-1.1.4.tgz", + "integrity": "sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA==", + "license": "Apache-2.0", + "dependencies": { + "chalk": "^1.1.1", + "figlet": "^1.1.1", + "parent-require": "^1.0.0" + } + }, + "node_modules/yargonaut/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargonaut/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargonaut/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargonaut/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/yargonaut/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargonaut/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/package.json b/package.json index b07bcf4..a8801f2 100644 --- a/package.json +++ b/package.json @@ -4,53 +4,66 @@ "description": "Automatic scraper and indexer to Meilisearch of any website.", "main": "dist/src/index.js", "dependencies": { - "axios": "^1.4.0", - "bull": "^4.10.4", - "crawlee": "^3.0.0", - "dotenv": "^16.0.3", - "express": "^4.18.2", - "instantsearch.css": "^8.0.0", - "meilisearch": "^0.31.1", - "minimatch": "^9.0.1", - "prettier": "^2.8.4", - "puppeteer": "^21.0.1", - "puppeteer-core": "^21.0.1", - "uuid": "^9.0.0", - "yargs": "^17.7.2" + "axios": "1.7.8", + "bull": "4.16.4", + "cheerio": "^1.0.0", + "crawlee": "3.12.0", + "dotenv": "16.4.5", + "express": "5.0.1", + "fast-xml-parser": "^4.5.0", + "instantsearch.css": "8.5.1", + "meilisearch": "0.45.0", + "minimatch": "10.0.1", + "node-html-markdown": "^1.3.0", + "pdf-parse": "^1.1.1", + "puppeteer": "23.9.0", + "puppeteer-core": "23.9.0", + "sitemapper": "^3.2.18", + "uuid": "11.0.3", + "yargs": "17.7.2" }, "scripts": { "build": "yarn tsc", - "start": "yarn tsc && node dist/src/bin/index.js", - "start:prod": "node dist/src/bin/index.js", - "serve": "yarn tsc && node dist/src/server.js", - "dev:build": "nodemon --config ./config/nodemon:build.json", - "dev:ds:scrap": "nodemon --config ./config/nodemon:docsearch-scrap.json", - "dev:default:scrap": "nodemon --config ./config/nodemon:default-scrap.json", - "playground:docsearch": "concurrently \"yarn dev:ds:scrap\" \"yarn playground:start\"", - "playground:default": "concurrently \"yarn dev:default:scrap\" \"yarn playground:start\"", + "start": "node dist/src/bin/index.js", + "start:server": "node dist/src/server/index.js", + "dev": "yarn tsc & node dist/src/bin/index.js", + "dev:server": "yarn tsc & node dist/src/server/index.js", "lint": "eslint .", "lint:fix": "eslint . --fix", - "playground:start": "yarn --cwd playground/docusaurus && yarn --cwd playground/docusaurus start", - "test": "echo \"Error: oops, the actor has no tests yet, sad!\" && exit 1" + "test": "jest --config jest.integration.config.js", + "test:watch": "jest --watch" }, "author": "It's not you it's me", "license": "ISC", "devDependencies": { - "@apify/log": "^2.1.3", - "@apify/tsconfig": "^0.1.0", - "@types/express": "^4.17.17", - "@types/prettier": "^2.7.3", - "@types/uuid": "^9.0.2", - "@types/yargs": "^17.0.24", - "@typescript-eslint/eslint-plugin": "^5.60.0", - "@typescript-eslint/parser": "^5.60.0", - "concurrently": "^8.2.0", - "eslint": "^8.43.0", - "eslint-config-prettier": "^8.8.0", - "eslint-plugin-jest": "^27.2.2", - "eslint-plugin-prettier": "^4.2.1", - "nodemon": "^2.0.22", - "typescript": "^5.1.3" + "@apify/log": "2.5.9", + "@apify/tsconfig": "0.1.0", + "@types/express": "5.0.0", + "@types/minimist": "^1.2.5", + "@types/node": "22.9.3", + "@types/pdf-parse": "^1.1.4", + "@types/prettier": "3.0.0", + "@types/puppeteer": "7.0.4", + "@types/uuid": "10.0.0", + "@types/yargs": "17.0.33", + "@typescript-eslint/eslint-plugin": "8.16.0", + "@typescript-eslint/parser": "8.16.0", + "concurrently": "9.1.0", + "eslint": "9.16.0", + "eslint-config-prettier": "9.1.0", + "eslint-plugin-jest": "28.9.0", + "eslint-plugin-prettier": "5.2.1", + "minimist": "^1.2.8", + "nodemon": "3.1.7", + "playwright": "1.49.0", + "ts-node": "^10.9.2", + "typescript": "5.7.2", + "@jest/globals": "^29.7.0", + "@types/jest": "^29.0.0", + "jest": "^29.7.0", + "ts-jest": "^29.1.2", + "axios": "1.7.8", + "meilisearch": "0.45.0" }, "files": [ "dist", diff --git a/playground/.gitignore b/playground/.gitignore new file mode 100644 index 0000000..fd3dbb5 --- /dev/null +++ b/playground/.gitignore @@ -0,0 +1,36 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/playground/Dockerfile b/playground/Dockerfile new file mode 100644 index 0000000..d65b0b2 --- /dev/null +++ b/playground/Dockerfile @@ -0,0 +1,39 @@ +# Use Node.js LTS version as the base image +FROM node:20-alpine AS builder + +# Set working directory +WORKDIR /app + +# Copy package files +COPY package*.json ./ + +# Install dependencies +RUN npm install + +# Copy all files +COPY . . + +# Build the Next.js app +RUN npm run build + +# Start production image build +FROM node:20-alpine + +# Set working directory +WORKDIR /app + +# Copy package files +COPY package*.json ./ + +# Install production dependencies only +RUN npm install --production + +# Copy built assets from builder +COPY --from=builder /app/.next ./.next +COPY --from=builder /app/public ./public + +# Expose port 3000 +EXPOSE 3000 + +# Start the application +CMD ["npm", "start"] diff --git a/playground/README.md b/playground/README.md new file mode 100644 index 0000000..901f520 --- /dev/null +++ b/playground/README.md @@ -0,0 +1,10 @@ +# Cheese Website + +The only purpose of this website is to test Scrapix. + +## Detail about the website + +- The Blog is a static page generated from Markdown. +- The Products page is a paginated page of cheeses statically generated from a JSON file. +- The Cheese page has the title, description, price, statically generated and the attributes are dynamically generated on the client side. Each cheese page has the same signature at the end of the page with the purpose of being removed by the scraper. They also all generate a JSON-LD schema for SEO. +- The Reference page has a list of PDFs that are statically generated. The references count also some on purpose 404 pages. \ No newline at end of file diff --git a/playground/_data/cheeses.json b/playground/_data/cheeses.json new file mode 100644 index 0000000..5606a28 --- /dev/null +++ b/playground/_data/cheeses.json @@ -0,0 +1,24929 @@ +[ + { + "cheese": "Aarewasser", + "url": "https://www.cheese.com/aarewasser/", + "milk": "cow", + "country": "Switzerland", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery", + "rind": "washed", + "color": "yellow", + "flavor": "sweet", + "aroma": "buttery", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Jumi" + }, + { + "cheese": "Abbaye de Belloc", + "url": "https://www.cheese.com/abbaye-de-belloc/", + "milk": "sheep", + "country": "France", + "region": "Pays Basque", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense, firm", + "rind": "natural", + "color": "yellow", + "flavor": "burnt caramel", + "aroma": "lanoline", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Abbaye Notre-Dame de Belloc", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Abbaye de Belval", + "url": "https://www.cheese.com/abbaye-de-belval/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "40-46%", + "calcium_content": "NA", + "texture": "elastic", + "rind": "washed", + "color": "ivory", + "flavor": "NA", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Abbaye de Citeaux", + "url": "https://www.cheese.com/abbaye-de-citeaux/", + "milk": "cow", + "country": "France", + "region": "Burgundy", + "family": "NA", + "type": "semi-soft, artisan, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense, smooth", + "rind": "washed", + "color": "white", + "flavor": "acidic, milky, smooth", + "aroma": "barnyardy, earthy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Abbaye de Tamié", + "url": "https://www.cheese.com/tamie/", + "milk": "cow", + "country": "France", + "region": "Savoie", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, open, smooth", + "rind": "washed", + "color": "white", + "flavor": "fruity, nutty", + "aroma": "perfumed, pungent", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Tamié, Trappiste de Tamie, Abbey of Tamie", + "producers": "NA" + }, + { + "cheese": "Abbaye de Timadeuc", + "url": "https://www.cheese.com/abbaye-de-timadeuc/", + "milk": "cow", + "country": "France", + "region": "province of Brittany", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft", + "rind": "washed", + "color": "pale yellow", + "flavor": "salty, smooth", + "aroma": "nutty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Abbaye Cistercienne NOTRE-DAME DE TIMADEUC" + }, + { + "cheese": "Abbaye du Mont des Cats", + "url": "https://www.cheese.com/abbaye-du-mont-des-cats/", + "milk": "cow", + "country": "France", + "region": "Nord-Pas-de-Calais", + "family": "NA", + "type": "semi-soft, artisan, brined", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "smooth, supple", + "rind": "washed", + "color": "pale yellow", + "flavor": "milky, salty", + "aroma": "floral", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Abbaye du Mont des Cats" + }, + { + "cheese": "Abbot’s Gold", + "url": "https://www.cheese.com/abbots-gold/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "North Yorkshire", + "family": "Cheddar", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, dense, semi firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "mild, sweet, tangy", + "aroma": "aromatic", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Abbot's Gold Cheddar with Caramelised Onion, Caramelised Onion Cheddar, English Cheddar with Caramelized Onions", + "alt_spellings": "NA", + "producers": "Wensleydale Creamery" + }, + { + "cheese": "Abertam", + "url": "https://www.cheese.com/abertam/", + "milk": "sheep", + "country": "Czech Republic", + "region": "Karlovy Vary", + "family": "NA", + "type": "hard, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "acidic, strong, tangy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Abondance", + "url": "https://www.cheese.com/abondance/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "nutty", + "aroma": "buttery, fruity", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Tomme d'Abondance", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Acapella", + "url": "https://www.cheese.com/acapella/", + "milk": "goat", + "country": "United States", + "region": "California", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "buttery", + "aroma": "fresh, herbal", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Accasciato", + "url": "https://www.cheese.com/accasciato/", + "milk": "buffalo, cow", + "country": "Italy", + "region": "Campania", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "sweet", + "aroma": "aromatic, fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Casa Madaio" + }, + { + "cheese": "Ackawi", + "url": "https://www.cheese.com/ackawi/", + "milk": "cow, goat, sheep", + "country": "Cyprus, Egypt, Israel, Jordan, Lebanon, Middle East, Syria", + "region": "+", + "family": "Feta", + "type": "soft, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "elastic, smooth, springy", + "rind": "natural", + "color": "white", + "flavor": "mild, milky, salty", + "aroma": "mild, milky", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Akkawi , Akawieh, Akawi", + "producers": "NA" + }, + { + "cheese": "Acorn", + "url": "https://www.cheese.com/acorn/", + "milk": "sheep", + "country": "United Kingdom", + "region": "Bethania", + "family": "NA", + "type": "hard, artisan", + "fat_content": "52%", + "calcium_content": "NA", + "texture": "crumbly, firm", + "rind": "NA", + "color": "NA", + "flavor": "burnt caramel, citrusy, herbaceous", + "aroma": "fruity", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Adelost", + "url": "https://www.cheese.com/adelost/", + "milk": "cow", + "country": "Sweden", + "region": "NA", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "blue", + "flavor": "salty, sharp, tangy", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "ADL Brick Cheese", + "url": "https://www.cheese.com/adl-brick-cheese/", + "milk": "cow", + "country": "Canada", + "region": "Prince Edward Island", + "family": "Cheddar", + "type": "semi-soft", + "fat_content": "12%", + "calcium_content": "NA", + "texture": "elastic, firm, open, soft", + "rind": "rindless", + "color": "ivory", + "flavor": "buttery, mild, milky, subtle", + "aroma": "buttery, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "ADL - Amalgamated Dairies Limited" + }, + { + "cheese": "ADL Mild Cheddar", + "url": "https://www.cheese.com/adl-mild-cheddar/", + "milk": "cow", + "country": "Canada", + "region": "Prince Edward Island", + "family": "Cheddar", + "type": "semi-hard", + "fat_content": "14%", + "calcium_content": "NA", + "texture": "firm, springy", + "rind": "rindless", + "color": "yellow", + "flavor": "acidic, buttery, milky, subtle", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "ADL - Amalgamated Dairies Limited" + }, + { + "cheese": "Affidelice au Chablis", + "url": "https://www.cheese.com/affidelice-au-chablis/", + "milk": "cow", + "country": "France", + "region": "Burgundy", + "family": "NA", + "type": "soft", + "fat_content": "55%", + "calcium_content": "26 mg/100g", + "texture": "creamy, smooth", + "rind": "washed", + "color": "orange", + "flavor": "fruity, mild, tangy", + "aroma": "perfumed, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fromagerie Berthaut" + }, + { + "cheese": "Affineur Walo Rotwein Sennechäs", + "url": "https://www.cheese.com/affineur-walo-rotwein-sennechas/", + "milk": "cow", + "country": "Switzerland", + "region": "NA", + "family": "Swiss Cheese", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "washed", + "color": "cream", + "flavor": "creamy, pronounced, spicy", + "aroma": "rich, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Affineur Walo Red Wine Farmer", + "alt_spellings": "NA", + "producers": "Walo von Mühlenen AG" + }, + { + "cheese": "Afuega'l Pitu", + "url": "https://www.cheese.com/afuegal-pitu/", + "milk": "cow", + "country": "Spain", + "region": "Asturias", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "cloth wrapped", + "color": "NA", + "flavor": "spicy, strong", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Aged British Cheddar", + "url": "https://www.cheese.com/aged-british-cheddar/", + "milk": "cow", + "country": "United States", + "region": "NY", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, crystalline, flaky", + "rind": "natural", + "color": "pale yellow", + "flavor": "sharp, tangy", + "aroma": "nutty, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Muranda Cheese Company" + }, + { + "cheese": "Aged Cashew & Blue Green Algae Cheese", + "url": "https://www.cheese.com/aged-cashew-blue-green-algae-cheese/", + "milk": "", + "country": "United States", + "region": "Brooklyn NY", + "family": "NA", + "type": "firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, spreadable", + "rind": "NA", + "color": "blue", + "flavor": "creamy, mellow, oceanic, tangy", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Dr. Cow Tree Nut Cheese" + }, + { + "cheese": "Aged Cashew & Brazil Nut Cheese", + "url": "https://www.cheese.com/aged-cashew-brazil-nut-cheese/", + "milk": "", + "country": "United States", + "region": "Brooklyn NY", + "family": "NA", + "type": "firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, spreadable", + "rind": "NA", + "color": "brown", + "flavor": "creamy, nutty, sweet", + "aroma": "nutty, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Dr. Cow Tree Nut Cheese" + }, + { + "cheese": "Aged Cashew & Dulse Cheese", + "url": "https://www.cheese.com/aged-cashew-dulse-cheese/", + "milk": "", + "country": "United States", + "region": "Brooklyn NY", + "family": "NA", + "type": "firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, spreadable", + "rind": "NA", + "color": "brown", + "flavor": "creamy, oceanic", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Dr. Cow Tree Nut Cheese" + }, + { + "cheese": "Aged Cashew & Hemp Seed Cheese", + "url": "https://www.cheese.com/aged-cashew-hemp-seed-cheese/", + "milk": "", + "country": "United States", + "region": "Brooklyn NY", + "family": "NA", + "type": "firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, spreadable", + "rind": "NA", + "color": "brown", + "flavor": "creamy, mild, nutty, spicy", + "aroma": "nutty, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Dr. Cow Tree Nut Cheese" + }, + { + "cheese": "Aged Cashew Nut & Kale Cheese", + "url": "https://www.cheese.com/aged-cashew-nut-kale-cheese/", + "milk": "", + "country": "United States", + "region": "Brooklyn NY", + "family": "NA", + "type": "firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, spreadable", + "rind": "NA", + "color": "green", + "flavor": "creamy, oceanic, tangy", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Dr. Cow Tree Nut Cheese" + }, + { + "cheese": "Aged Cashew Nut Cheese", + "url": "https://www.cheese.com/aged-cashew-nut-cheese/", + "milk": "", + "country": "United States", + "region": "Brooklyn NY", + "family": "NA", + "type": "firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, spreadable", + "rind": "NA", + "color": "golden yellow", + "flavor": "creamy, nutty, subtle", + "aroma": "clean, fresh, nutty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Cajun Aged Cashew Cheese, Smoked Aged Cashew Cheese, Truffle Aged Cashew Cheese, Reishi Mushroom Aged Cashew Cheese", + "alt_spellings": "Plain Aged Cashew Cheese", + "producers": "Dr. Cow Tree Nut Cheese" + }, + { + "cheese": "Aged Cheddar", + "url": "https://www.cheese.com/aged-cheddar/", + "milk": "cow", + "country": "United States", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, crumbly", + "rind": "rindless", + "color": "golden yellow", + "flavor": "creamy, earthy, nutty", + "aroma": "earthy, nutty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Maple Grove Cheese, INC." + }, + { + "cheese": "Aged Chelsea", + "url": "https://www.cheese.com/aged-chelsea/", + "milk": "goat", + "country": "United States", + "region": "Ann Arbor, Michigan", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, spreadable", + "rind": "mold ripened", + "color": "ivory", + "flavor": "acidic, buttery, sweet", + "aroma": "goaty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Zingermans.com LLC" + }, + { + "cheese": "Aged Gouda", + "url": "https://www.cheese.com/aged-gouda/", + "milk": "cow, goat, sheep", + "country": "Netherlands", + "region": "NA", + "family": "Gouda", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, crystalline, dense", + "rind": "waxed", + "color": "yellow", + "flavor": "NA", + "aroma": "rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Oud Gouda", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Aggiano", + "url": "https://www.cheese.com/aggiano/", + "milk": "cow", + "country": "United States", + "region": "Utah", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dry", + "rind": "NA", + "color": "cream", + "flavor": "butterscotch, tangy", + "aroma": "fruity", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Beehive Cheese Company" + }, + { + "cheese": "Ailsa Craig", + "url": "https://www.cheese.com/ailsa-craig/", + "milk": "goat", + "country": "Scotland, United Kingdom", + "region": "Stewarton", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, fluffy", + "rind": "rindless", + "color": "white", + "flavor": "creamy", + "aroma": "goaty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Paddy's Milestone", + "producers": "Dunlop Dairy" + }, + { + "cheese": "Airedale", + "url": "https://www.cheese.com/airedale/", + "milk": "cow", + "country": "New Zealand", + "region": "Airedale farming district", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "waxed", + "color": "pale yellow", + "flavor": "full-flavored, milky, salty, tangy", + "aroma": "grassy, strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Aged Airedale", + "producers": "Whitestone Cheese" + }, + { + "cheese": "Aisy Cendre", + "url": "https://www.cheese.com/aisy-cendre/", + "milk": "cow", + "country": "France", + "region": "Burgundy", + "family": "NA", + "type": "semi-soft, smear-ripened", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "white", + "flavor": "full-flavored, herbaceous, salty, smokey", + "aroma": "earthy, nutty, smokey", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Cendre d'Aisy, Ashen Aisy", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Alex James Co. No 1 Cheddar", + "url": "https://www.cheese.com/alex-james-co-no-1-cheddar/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "NA", + "color": "yellow", + "flavor": "sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Alex James Co. No 2 Blue Monday", + "url": "https://www.cheese.com/alex-james-co-no-2-blue-monday/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, semi firm", + "rind": "NA", + "color": "blue", + "flavor": "NA", + "aroma": "spicy, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Alex James Co. No 3 Valley Brie", + "url": "https://www.cheese.com/alex-james-co-no-3-valley-brie/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "soft, semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, semi firm, smooth, soft", + "rind": "NA", + "color": "pale white", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Alex James Co. No 4 Goats'", + "url": "https://www.cheese.com/alex-james-co-no-4-goats/", + "milk": "goat", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth, springy", + "rind": "NA", + "color": "pale white", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Alex James Co. No 5 Grunge", + "url": "https://www.cheese.com/alex-james-co-no-5-grunge/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "soft, semi-soft, organic", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "washed", + "color": "orange", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Alisia-Victoria", + "url": "https://www.cheese.com/alisia-victoria/", + "milk": "cow", + "country": "Switzerland", + "region": "NA", + "family": "NA", + "type": "firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "natural", + "color": "golden yellow", + "flavor": "buttery", + "aroma": "nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Eyeweid" + }, + { + "cheese": "Allgauer Emmentaler", + "url": "https://www.cheese.com/allgauer-emmentaler/", + "milk": "cow", + "country": "Germany", + "region": "Swabia", + "family": "NA", + "type": "hard", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "yellow", + "flavor": "nutty", + "aroma": "pungent", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Allium Piper", + "url": "https://www.cheese.com/allium-piper/", + "milk": "goat", + "country": "Australia", + "region": "South Australia", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "NA", + "color": "white", + "flavor": "garlicky, spicy", + "aroma": "fresh, garlicky, spicy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Woodside Chevre - Allium Piper, Woodside Allium Piper", + "alt_spellings": "NA", + "producers": "Woodside Cheese Wrights" + }, + { + "cheese": "Alma Vorarlberger Alpkäse (3-5 months)", + "url": "https://www.cheese.com/alma-vorarlberger-alpkase-3-5-months/", + "milk": "cow", + "country": "Austria", + "region": "Vorarlberg", + "family": "NA", + "type": "hard, artisan", + "fat_content": "34%", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "yellow", + "flavor": "mild, spicy", + "aroma": "mild, spicy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Vorarlberg Alpine cheese 3-5 months", + "alt_spellings": "NA", + "producers": "Rupp AG" + }, + { + "cheese": "Alma Vorarlberger Alpkäse (6-9 months)", + "url": "https://www.cheese.com/alma-vorarlberger-alpkase-6-9-months/", + "milk": "cow", + "country": "Austria", + "region": "Vorarlberg", + "family": "NA", + "type": "hard, artisan", + "fat_content": "34%", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "yellow", + "flavor": "spicy, strong", + "aroma": "spicy, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Vorarlberg Alpine cheese 6-9 months", + "alt_spellings": "NA", + "producers": "Rupp AG" + }, + { + "cheese": "Alma Vorarlberger Bergkäse (10 months)", + "url": "https://www.cheese.com/alma-vorarlberger-bergkase-10-months/", + "milk": "cow", + "country": "Austria", + "region": "Bregenzerwald, Kleinwalsertal, Großwalsertal, Laiblachtal (Pfänderstock) and Rheintal", + "family": "NA", + "type": "hard, artisan", + "fat_content": "34%", + "calcium_content": "NA", + "texture": "brittle, firm, flaky, open", + "rind": "natural", + "color": "yellow", + "flavor": "piquant, spicy, strong, tangy", + "aroma": "aromatic, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Rupp Vorarlberger Bergkäse", + "alt_spellings": "Vorarlberger Bergkase 10 months", + "producers": "Rupp AG" + }, + { + "cheese": "Alma Vorarlberger Bergkäse (12 months)", + "url": "https://www.cheese.com/alma-vorarlberger-bergkase-12-months/", + "milk": "cow", + "country": "Austria", + "region": "Bregenzerwald, Kleinwalsertal, Großwalsertal, Laiblachtal (Pfänderstock) and Rheintal", + "family": "NA", + "type": "hard, artisan", + "fat_content": "34%", + "calcium_content": "NA", + "texture": "brittle, firm, flaky, open", + "rind": "natural", + "color": "yellow", + "flavor": "piquant, spicy, strong, tangy", + "aroma": "aromatic, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Rupp Vorarlberger Bergkäse", + "alt_spellings": "Vorarlberger Bergkase 12 months", + "producers": "Rupp AG" + }, + { + "cheese": "Alma Vorarlberger Bergkäse (6 months)", + "url": "https://www.cheese.com/alma-vorarlberger-bergkase-6-months/", + "milk": "cow", + "country": "Austria", + "region": "Bregenzerwald, Kleinwalsertal, Großwalsertal, Laiblachtal (Pfänderstock) and Rheintal", + "family": "NA", + "type": "hard, artisan", + "fat_content": "34%", + "calcium_content": "NA", + "texture": "firm, open, supple", + "rind": "natural", + "color": "cream", + "flavor": "piquant, spicy, tangy", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Rupp Vorarlberger Bergkäse", + "alt_spellings": "Vorarlberger Bergkase 6 months", + "producers": "Rupp AG" + }, + { + "cheese": "Almnäs Tegel", + "url": "https://www.cheese.com/almnas-tegel/", + "milk": "cow", + "country": "Sweden", + "region": "Västra Götaland", + "family": "NA", + "type": "hard, smear-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "open, smooth", + "rind": "washed", + "color": "straw", + "flavor": "caramel, fruity, nutty", + "aroma": "fruity, sweet", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Almnas Tegel", + "producers": "Almnäs Bruk" + }, + { + "cheese": "Alpe di Frabosa", + "url": "https://www.cheese.com/alpe-di-frabosa/", + "milk": "cow", + "country": "Italy", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "bitter", + "aroma": "milky, mushroom", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Alpha Tolman", + "url": "https://www.cheese.com/alpha-tolman/", + "milk": "cow", + "country": "United States", + "region": "Greensboro, VT", + "family": "Swiss Cheese", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, elastic, smooth", + "rind": "washed", + "color": "yellow", + "flavor": "buttery, caramel, fruity, full-flavored, nutty", + "aroma": "fruity, nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Jasper Hill Farm" + }, + { + "cheese": "Alpicrème", + "url": "https://www.cheese.com/alpicreme/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Alpine Gold", + "url": "https://www.cheese.com/alpine-gold/", + "milk": "cow", + "country": "Canada", + "region": "British Columbia", + "family": "NA", + "type": "semi-soft, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "supple", + "rind": "washed", + "color": "cream", + "flavor": "floral, grassy, savory", + "aroma": "earthy, floral, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Farm House Natural Cheeses" + }, + { + "cheese": "Alpkäse", + "url": "https://www.cheese.com/alpkase/", + "milk": "cow", + "country": "Switzerland", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense", + "rind": "natural", + "color": "golden yellow", + "flavor": "herbaceous", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Alpkase", + "alt_spellings": "NA", + "producers": "Jumi" + }, + { + "cheese": "Alps Rebel", + "url": "https://www.cheese.com/alps-rebel/", + "milk": "cow", + "country": "Austria", + "region": "Sulzberg", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "48%", + "calcium_content": "NA", + "texture": "creamy, open", + "rind": "natural", + "color": "yellow", + "flavor": "buttery, citrusy, milky, piquant", + "aroma": "fruity, lactic, milky, nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Alpenrebell", + "alt_spellings": "NA", + "producers": "Sulzberger Käserebellen Sennerei GmbH" + }, + { + "cheese": "Alta Badia", + "url": "https://www.cheese.com/alta-badia/", + "milk": "cow", + "country": "Italy", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "33.5 g/100g", + "calcium_content": "NA", + "texture": "firm", + "rind": "NA", + "color": "NA", + "flavor": "milky, sharp, tangy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Mila LATTE MONTAGNA ALTO ADIGE" + }, + { + "cheese": "Alverca", + "url": "https://www.cheese.com/alverca/", + "milk": "goat, sheep", + "country": "Portugal", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "40-50%", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Amablu Blue cheese", + "url": "https://www.cheese.com/amablu-blue-cheese/", + "milk": "cow", + "country": "United States", + "region": "NA", + "family": "Blue", + "type": "semi-soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "NA", + "color": "NA", + "flavor": "tangy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Caves of Faribault" + }, + { + "cheese": "Amalthée", + "url": "https://www.cheese.com/amalthee/", + "milk": "goat", + "country": "France", + "region": "Charentes-Poitou", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "bloomy", + "color": "NA", + "flavor": "grassy, mild, sweet", + "aroma": "goaty, grassy, mild, sweet", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Amarelo de Beira Baixa", + "url": "https://www.cheese.com/amarelo-de-beira-baixa/", + "milk": "goat, sheep", + "country": "Portugal", + "region": "Beira Baixa Province", + "family": "NA", + "type": "semi-firm, artisan", + "fat_content": "45-60%", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "yellow", + "flavor": "acidic", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Amarelo da Beira Baixa Cheese (DOP), Queijo amarelo da Beira Baixa", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Ameribella", + "url": "https://www.cheese.com/ameribella/", + "milk": "cow", + "country": "United States", + "region": "Indiana", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, runny, smooth, spreadable", + "rind": "washed", + "color": "straw", + "flavor": "mushroomy, salty, savory, sweet", + "aroma": "earthy, grassy, lactic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Arabella", + "alt_spellings": "NA", + "producers": "Jacobs & Brichford Farmstead Cheese" + }, + { + "cheese": "American Cheese", + "url": "https://www.cheese.com/american-cheese/", + "milk": "cow", + "country": "United States", + "region": "NA", + "family": "NA", + "type": "semi-soft, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "rindless", + "color": "yellow", + "flavor": "NA", + "aroma": "mild", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Ami du Chambertin", + "url": "https://www.cheese.com/ami-du-chambertin/", + "milk": "cow", + "country": "France", + "region": "Gevrey-Chambertin, Burgundy", + "family": "NA", + "type": "semi-soft, artisan, brined", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "smooth", + "rind": "washed", + "color": "white", + "flavor": "buttery, sharp", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "L'Ami du Chambertin", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Amish Frolic", + "url": "https://www.cheese.com/amish-frolic/", + "milk": "cow", + "country": "United States", + "region": "Milford, NJ", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "flaky, open", + "rind": "natural", + "color": "pale yellow", + "flavor": "grassy, nutty, sweet", + "aroma": "grassy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Bobolink Dairy" + }, + { + "cheese": "Amou", + "url": "https://www.cheese.com/amou/", + "milk": "sheep", + "country": "France", + "region": "Amou, Gascony", + "family": "NA", + "type": "firm", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "golden yellow", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "l'Amou, Amu", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Amsterdammer (British Columbia)", + "url": "https://www.cheese.com/amsterdammer-british-columbia/", + "milk": "", + "country": "Canada", + "region": "Comox Valley, Vancouver Island", + "family": "NA", + "type": "semi-soft, firm", + "fat_content": "30%", + "calcium_content": "NA", + "texture": "buttery, creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "buttery, creamy", + "aroma": "aromatic, buttery", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Natural Pastures Cheese Company" + }, + { + "cheese": "Amul Cheese Spread", + "url": "https://www.cheese.com/amul-cheese-spread/", + "milk": "cow", + "country": "India", + "region": "Gujarat", + "family": "NA", + "type": "soft, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, spreadable", + "rind": "NA", + "color": "NA", + "flavor": "creamy, salty, savory, spicy", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Gujarat Cooperative Milk Marketing Federation (Amul)" + }, + { + "cheese": "Amul Emmental", + "url": "https://www.cheese.com/amul-emmental/", + "milk": "cow", + "country": "India", + "region": "Gujarat", + "family": "Swiss Cheese", + "type": "semi-hard", + "fat_content": "46%", + "calcium_content": "488 mg/100g", + "texture": "firm, open", + "rind": "artificial", + "color": "yellow", + "flavor": "sweet", + "aroma": "nutty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Gujarat Cooperative Milk Marketing Federation (Amul)" + }, + { + "cheese": "Amul Gouda", + "url": "https://www.cheese.com/amul-gouda/", + "milk": "cow", + "country": "India", + "region": "Gujarat", + "family": "Gouda", + "type": "semi-hard", + "fat_content": "46%", + "calcium_content": "492 mg/100g", + "texture": "compact, dense, firm, springy", + "rind": "plastic", + "color": "yellow", + "flavor": "fruity, sweet", + "aroma": "mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Gujarat Cooperative Milk Marketing Federation (Amul)" + }, + { + "cheese": "Amul Pizza Mozzarella Cheese", + "url": "https://www.cheese.com/amul-pizza-mozzarella-cheese/", + "milk": "cow", + "country": "India", + "region": "Gujarat", + "family": "Mozzarella", + "type": "semi-soft, processed", + "fat_content": "30-40%", + "calcium_content": "492 mg/100g", + "texture": "elastic, stringy", + "rind": "artificial", + "color": "yellow", + "flavor": "salty", + "aroma": "pleasant", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Gujarat Cooperative Milk Marketing Federation (Amul)" + }, + { + "cheese": "Amul Processed Cheese", + "url": "https://www.cheese.com/amul-processed-cheese/", + "milk": "cow, water buffalo", + "country": "India", + "region": "Gujarat", + "family": "Cheddar", + "type": "hard, processed", + "fat_content": "26%", + "calcium_content": "343 mg/100g", + "texture": "crumbly, dense", + "rind": "artificial", + "color": "yellow", + "flavor": "buttery, creamy, salty", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Gujarat Cooperative Milk Marketing Federation (Amul)" + }, + { + "cheese": "Anari", + "url": "https://www.cheese.com/anari/", + "milk": "goat, sheep", + "country": "Cyprus", + "region": "island wide", + "family": "Cottage", + "type": "fresh soft, hard, artisan", + "fat_content": "8%", + "calcium_content": "NA", + "texture": "brittle, creamy, flaky", + "rind": "natural", + "color": "white", + "flavor": "creamy, mild, salty", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Dry Anari, Fresh Anari", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Anejo Enchilado", + "url": "https://www.cheese.com/anejo-enchilado/", + "milk": "cow, goat", + "country": "Mexico", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, firm", + "rind": "NA", + "color": "white", + "flavor": "salty, sharp, spicy, strong", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Queso Añejo, Añejo", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Anneau du Vic-Bilh", + "url": "https://www.cheese.com/anneau-du-vic-bilh/", + "milk": "goat", + "country": "France", + "region": "Pyrenees-Atlantiques", + "family": "Cottage", + "type": "soft, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "white", + "flavor": "acidic, nutty, salty, smokey", + "aroma": "earthy, nutty, smokey", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Anniversary Ale Cheddar", + "url": "https://www.cheese.com/anniversary-ale-cheddar/", + "milk": "cow", + "country": "United States", + "region": "Northwest", + "family": "Cheddar", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, firm", + "rind": "NA", + "color": "NA", + "flavor": "creamy, mild, sweet", + "aroma": "floral, fruity", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Rogue Creamery" + }, + { + "cheese": "Anster", + "url": "https://www.cheese.com/anster/", + "milk": "cow", + "country": "Scotland", + "region": "Fife", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dry", + "rind": "NA", + "color": "ivory", + "flavor": "milky", + "aroma": "milky, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "St Andrews Farmhouse Cheese Company" + }, + { + "cheese": "Anthotyro", + "url": "https://www.cheese.com/anthotyro/", + "milk": "goat, sheep", + "country": "Greece", + "region": "Macedonia, Thrace, Thessalia, Peloponissos, Ionian Islands, Aegean islands, Crete Island and Epirus", + "family": "NA", + "type": "hard, whey", + "fat_content": "30%", + "calcium_content": "318 mg/100g", + "texture": "crumbly", + "rind": "natural", + "color": "white", + "flavor": "salty, tangy", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Anthotyro Fresco, Anthotyro", + "alt_spellings": "Anthotiro, Antotiro", + "producers": "NA" + }, + { + "cheese": "Anthotyro Fresco", + "url": "https://www.cheese.com/anthotyro-fresco/", + "milk": "goat, sheep", + "country": "Greece", + "region": "Macedonia, Thrace, Thessalia, Peloponissos, Ionian Islands, Aegean islands, Crete Island and Epirus", + "family": "NA", + "type": "semi-soft, whey", + "fat_content": "20%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "rindless", + "color": "white", + "flavor": "sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Fresh Anthotyro, Anthotiro", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Aphrodite Goat Milk Halloumi", + "url": "https://www.cheese.com/aphrodite-haloumi/", + "milk": "goat", + "country": "Cyprus", + "region": "NA", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft", + "rind": "rindless", + "color": "white", + "flavor": "lemony, tangy", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Aphrodite Artisan Goat Milk Halloumi", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Appalachian", + "url": "https://www.cheese.com/appalachian/", + "milk": "cow", + "country": "United States", + "region": "Virginia", + "family": "Tomme", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "mold ripened", + "color": "white", + "flavor": "buttery, lemony, mushroomy", + "aroma": "earthy, grassy, lactic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Meadow Creek Dairy" + }, + { + "cheese": "Appenzeller", + "url": "https://www.cheese.com/appenzeller/", + "milk": "cow", + "country": "Switzerland", + "region": "NA", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "washed", + "color": "NA", + "flavor": "fruity, nutty", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "Appenzeller Classic, Appenzeller Surchoix, Appenzeller Extra", + "producers": "NA" + }, + { + "cheese": "Apple Walnut Smoked", + "url": "https://www.cheese.com/apple-walnut-smoked/", + "milk": "cow", + "country": "United States", + "region": "Utah", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "yellow", + "flavor": "nutty, smokey , sweet", + "aroma": "nutty, smokey, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Smoked Apple Walnut, Promontory Apple Walnut Smoked", + "alt_spellings": "NA", + "producers": "Beehive Cheese Company" + }, + { + "cheese": "Appleby's Double Gloucester", + "url": "https://www.cheese.com/applebys-double-gloucester/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Gloucestershire", + "family": "NA", + "type": "hard, artisan", + "fat_content": "54.23 g/100g", + "calcium_content": "NA", + "texture": "crumbly, dense, firm, flaky, smooth", + "rind": "natural", + "color": "golden yellow", + "flavor": "mellow, milky, nutty, subtle, tangy", + "aroma": "subtle, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Appleby's" + }, + { + "cheese": "Applewood", + "url": "https://www.cheese.com/applewood/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Somerset", + "family": "Cheddar", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dense", + "rind": "natural", + "color": "yellow", + "flavor": "smokey , spicy", + "aroma": "smokey", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Applewood smoked cheddar", + "alt_spellings": "NA", + "producers": "Ilchester Cheese Company" + }, + { + "cheese": "Applewood Smoked Chevre", + "url": "https://www.cheese.com/applewood-smoked-chevre/", + "milk": "goat", + "country": "United States", + "region": "Colorado", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, firm", + "rind": "rindless", + "color": "white", + "flavor": "subtle", + "aroma": "woody", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Haystack Mountain Creamery" + }, + { + "cheese": "Aragon", + "url": "https://www.cheese.com/aragon/", + "milk": "", + "country": "Spain", + "region": "NA", + "family": "NA", + "type": "NA", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Ardi Gasna", + "url": "https://www.cheese.com/ardi-gasna/", + "milk": "sheep", + "country": "France", + "region": "Midi-Pyrénées", + "family": "NA", + "type": "hard, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "firm, supple", + "rind": "washed", + "color": "pale yellow", + "flavor": "mild, nutty, sharp", + "aroma": "fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Ardrahan", + "url": "https://www.cheese.com/ardrahan/", + "milk": "cow", + "country": "Ireland", + "region": "Duhallow", + "family": "NA", + "type": "semi-soft, brined", + "fat_content": "25%", + "calcium_content": "NA", + "texture": "chalky, smooth", + "rind": "washed", + "color": "yellow", + "flavor": "acidic, buttery, nutty", + "aroma": "earthy, pungent", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Ardrahan Dairy Products Ltd." + }, + { + "cheese": "Ardsallagh Hard Goat's Cheese", + "url": "https://www.cheese.com/ardsallagh-hard-goats-cheese/", + "milk": "goat", + "country": "Ireland", + "region": "Carrigtwohill", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, smooth", + "rind": "natural", + "color": "white", + "flavor": "nutty, salty, smooth", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Ardsallagh Goats Farm" + }, + { + "cheese": "Ardsallagh Smoked Cheese", + "url": "https://www.cheese.com/ardsallagh-smoked-cheese/", + "milk": "goat", + "country": "Ireland", + "region": "Carrigtwohill", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, smooth", + "rind": "natural", + "color": "white", + "flavor": "mild, nutty, smokey , sweet", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Ardsallagh Goats Farm" + }, + { + "cheese": "Ardsallagh Soft Goat's Cheese", + "url": "https://www.cheese.com/ardsallagh-soft-goats-cheese/", + "milk": "", + "country": "", + "region": "Carrigtwohill", + "family": "NA", + "type": "NA", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "natural", + "color": "white", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Ardsallagh Goats Farm" + }, + { + "cheese": "Armenian String Cheese", + "url": "https://www.cheese.com/armenian-string-cheese/", + "milk": "cow, goat, sheep", + "country": "Armenia", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, springy", + "rind": "NA", + "color": "white", + "flavor": "mild", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Syrian String Cheese, Chechil", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Aromes au Gene de Marc", + "url": "https://www.cheese.com/aromes-au-gene-de-marc/", + "milk": "cow, goat", + "country": "France", + "region": "Rhône-Alpes", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "25%", + "calcium_content": "NA", + "texture": "creamy, flaky", + "rind": "natural", + "color": "white", + "flavor": "strong", + "aroma": "fermented, pungent", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Arådalen", + "url": "https://www.cheese.com/aradalen/", + "milk": "cow", + "country": "Sweden", + "region": "Oviken", + "family": "Blue", + "type": "soft, artisan, blue-veined", + "fat_content": "34%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "mold ripened", + "color": "ivory", + "flavor": "sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Oviken cheese" + }, + { + "cheese": "Ascutney Mountain", + "url": "https://www.cheese.com/ascutney-mountain/", + "milk": "cow", + "country": "United States", + "region": "Vermont", + "family": "Swiss Cheese", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "chewy, dense", + "rind": "natural", + "color": "NA", + "flavor": "mild, nutty, sweet", + "aroma": "herbal, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cobb Hill Farm" + }, + { + "cheese": "Asher Blue", + "url": "https://www.cheese.com/asher-blue/", + "milk": "cow", + "country": "United States", + "region": "Georgia", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "natural", + "color": "straw", + "flavor": "grassy, milky, mushroomy, salty, sweet, tangy", + "aroma": "earthy, rich, strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sweet Grass Dairy" + }, + { + "cheese": "Ashley", + "url": "https://www.cheese.com/ashley/", + "milk": "cow", + "country": "United States", + "region": "Colorado", + "family": "NA", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "ash coated", + "color": "cream", + "flavor": "sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "MouCo Ashley", + "alt_spellings": "NA", + "producers": "MouCo Cheese Company" + }, + { + "cheese": "Asiago DOP", + "url": "https://www.cheese.com/asiago/", + "milk": "cow", + "country": "Italy", + "region": "Veneto, Trentino", + "family": "NA", + "type": "hard", + "fat_content": "34-48%", + "calcium_content": "NA", + "texture": "compact, crumbly, open, smooth", + "rind": "natural", + "color": "yellow", + "flavor": "full-flavored, milky, sharp", + "aroma": "pungent", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Asiago d’Allevo DOP", + "url": "https://www.cheese.com/asiago-dallevo/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "hard", + "fat_content": "34%", + "calcium_content": "NA", + "texture": "compact", + "rind": "natural", + "color": "pale yellow", + "flavor": "savory", + "aroma": "pleasant, yeasty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Asiago Aged, Asiago D’Allevo DOP Mitica®, Asiago Mezzano", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Asiago Pressato DOP", + "url": "https://www.cheese.com/asiago-pressato/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "semi-soft", + "fat_content": "48%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "white", + "flavor": "nutty, sweet", + "aroma": "fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Asiago Fresco, Asiago Fresco DOP Mitica®", + "alt_spellings": "Pressato", + "producers": "NA" + }, + { + "cheese": "Aspen Ash", + "url": "https://www.cheese.com/aspen-ash/", + "milk": "goat", + "country": "United States", + "region": "Colorado", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "ash coated", + "color": "white", + "flavor": "acidic, creamy", + "aroma": "earthy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Haystack Mountain Creamery" + }, + { + "cheese": "Assa", + "url": "https://www.cheese.com/assa/", + "milk": "goat", + "country": "United States", + "region": "Tomales, California", + "family": "NA", + "type": "NA", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "natural", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Tomales Farmstead Creamery" + }, + { + "cheese": "Aubisque Pyrenees", + "url": "https://www.cheese.com/aubisque-pyrenees/", + "milk": "cow, sheep", + "country": "France", + "region": "Béarnaise in Pyrénées-Atlantique", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "natural", + "color": "NA", + "flavor": "mild, smooth", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Auld Lochnagar", + "url": "https://www.cheese.com/auld-lochnagar/", + "milk": "cow", + "country": "Scotland", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, crumbly", + "rind": "natural", + "color": "orange", + "flavor": "grassy, mellow, subtle, tangy", + "aroma": "mild", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Cambus O’May Cheese Company" + }, + { + "cheese": "Auld Reekie", + "url": "https://www.cheese.com/auld-reekie/", + "milk": "cow", + "country": "Scotland", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, compact, crumbly", + "rind": "natural", + "color": "orange", + "flavor": "smokey , tangy, woody", + "aroma": "fruity, smokey, woody", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Cambus O’May Cheese Company" + }, + { + "cheese": "Aura", + "url": "https://www.cheese.com/aura/", + "milk": "cow", + "country": "Finland", + "region": "Äänekoski", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "mold ripened", + "color": "pale yellow", + "flavor": "salty, sharp, strong, tangy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Auro Gold", + "alt_spellings": "NA", + "producers": "Valio" + }, + { + "cheese": "Austrian Alps cheese", + "url": "https://www.cheese.com/austrian-alps/", + "milk": "cow", + "country": "Switzerland", + "region": "NA", + "family": "NA", + "type": "NA", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "NA", + "color": "NA", + "flavor": "nutty, spicy", + "aroma": "aromatic, nutty, spicy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Autun", + "url": "https://www.cheese.com/autun/", + "milk": "cow, goat", + "country": "France", + "region": "Burgundy", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "40-45%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "rindless", + "color": "white", + "flavor": "acidic", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Avaxtskyr", + "url": "https://www.cheese.com/avaxtskyr/", + "milk": "cow", + "country": "Iceland", + "region": "NA", + "family": "NA", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Skyr, Rjomaskyr", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Avonlea Clothbound Cheddar", + "url": "https://www.cheese.com/avonlea-clothbound-cheddar/", + "milk": "cow", + "country": "Canada", + "region": "Prince Edward Island", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "32%", + "calcium_content": "NA", + "texture": "creamy, crumbly, firm", + "rind": "cloth wrapped", + "color": "straw", + "flavor": "fruity, mushroomy, savory", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "COWS Inc." + }, + { + "cheese": "Azeitao", + "url": "https://www.cheese.com/azeitao/", + "milk": "sheep", + "country": "Portugal", + "region": "Setubal, Palmela and Sesimbra", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, supple", + "rind": "washed", + "color": "pale yellow", + "flavor": "herbaceous, salty, sour", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Queijo de Azeitao", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Baby Brie", + "url": "https://www.cheese.com/baby-brie/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "Brie", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "bloomy", + "color": "cream", + "flavor": "creamy, mild", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Petit Brie, Mini Brie", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Baby Swiss", + "url": "https://www.cheese.com/baby-swiss/", + "milk": "cow", + "country": "United States", + "region": "Charm, Ohio", + "family": "Swiss Cheese", + "type": "semi-soft, processed", + "fat_content": "43%", + "calcium_content": "NA", + "texture": "creamy, open, smooth", + "rind": "rindless", + "color": "pale yellow", + "flavor": "nutty, sharp, sweet", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Lacy cheese", + "alt_spellings": "NA", + "producers": "Guggisberg Cheese" + }, + { + "cheese": "Babybel", + "url": "https://www.cheese.com/babybel/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "waxed", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bad Axe", + "url": "https://www.cheese.com/bad-axe/", + "milk": "sheep", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm, smooth", + "rind": "waxed", + "color": "white", + "flavor": "creamy, smooth, tart", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Hidden Springs Company" + }, + { + "cheese": "Baguette Laonnaise", + "url": "https://www.cheese.com/baguette-laonnaise/", + "milk": "cow", + "country": "France", + "region": "Ile-de-France/Champagne", + "family": "NA", + "type": "soft, artisan", + "fat_content": "28.5%", + "calcium_content": "NA", + "texture": "open, supple", + "rind": "washed", + "color": "pale yellow", + "flavor": "spicy", + "aroma": "pungent", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Baguette Lyonnaise", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Baita Friuli", + "url": "https://www.cheese.com/baita-friuli/", + "milk": "cow", + "country": "Italy", + "region": "Friuli-Venezia Giulia", + "family": "NA", + "type": "firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact", + "rind": "natural", + "color": "pale yellow", + "flavor": "fruity, spicy", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Baladi", + "url": "https://www.cheese.com/baladi/", + "milk": "cow, goat, sheep", + "country": "Lebanon, Middle East", + "region": "NA", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "22%", + "calcium_content": "NA", + "texture": "creamy, dense, smooth", + "rind": "rindless", + "color": "white", + "flavor": "buttery, mild, salty, sweet", + "aroma": "fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Jibneh Khadra, Jibnah Baladi, Baladieh, Jibneh Baladi", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Balaton", + "url": "https://www.cheese.com/balaton/", + "milk": "cow", + "country": "Hungary", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "acidic, mild", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Balfour", + "url": "https://www.cheese.com/balfour/", + "milk": "sheep", + "country": "New Zealand", + "region": "Queenstown", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, flaky, grainy", + "rind": "natural", + "color": "NA", + "flavor": "nutty, sweet", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Balfour Pecorino", + "alt_spellings": "NA", + "producers": "The Gibbston Valley Cheese Company" + }, + { + "cheese": "Baluchon", + "url": "https://www.cheese.com/baluchon/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "NA", + "type": "semi-soft", + "fat_content": "28%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "washed", + "color": "ivory", + "flavor": "acidic, creamy, earthy, salty", + "aroma": "earthy, mild", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Le Baluchon", + "alt_spellings": "NA", + "producers": "Fromageries Jonathan" + }, + { + "cheese": "Bandal", + "url": "https://www.cheese.com/bandal/", + "milk": "cow", + "country": "India", + "region": "West Bengal", + "family": "Cottage", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "rindless", + "color": "NA", + "flavor": "salty, smokey , strong", + "aroma": "strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Bandel", + "producers": "NA" + }, + { + "cheese": "Banon", + "url": "https://www.cheese.com/banon/", + "milk": "goat", + "country": "France", + "region": "Banon", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "leaf wrapped", + "color": "white", + "flavor": "fruity, mild", + "aroma": "earthy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Banon à la feuille, Banon AOC", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Barambah Organics Marinated Feta", + "url": "https://www.cheese.com/barambah-organics-marinated-feta/", + "milk": "cow", + "country": "Australia", + "region": "Brisbane", + "family": "Feta", + "type": "fresh soft", + "fat_content": "25.22 g/100g", + "calcium_content": "NA", + "texture": "creamy, crumbly, springy", + "rind": "rindless", + "color": "white", + "flavor": "herbaceous, mild, milky", + "aroma": "herbal, mild, milky", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Barambah Organics Pty Ltd." + }, + { + "cheese": "Barber's 1833", + "url": "https://www.cheese.com/barbers-1833/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "Cheddar", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "NA", + "flavor": "sweet, tangy", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "AJ & RE Barber Ltd" + }, + { + "cheese": "Barberey", + "url": "https://www.cheese.com/barberey/", + "milk": "cow", + "country": "France", + "region": "Troyes , Aube", + "family": "NA", + "type": "soft", + "fat_content": "20-30%", + "calcium_content": "NA", + "texture": "dry, smooth, soft", + "rind": "natural", + "color": "NA", + "flavor": "pungent, woody", + "aroma": "mild", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "ash trojan, cheese Troyes", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Barden Blue", + "url": "https://www.cheese.com/barden-blue/", + "milk": "cow", + "country": "United States", + "region": "West Pawlet, VT", + "family": "Blue", + "type": "semi-hard, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, dense, open", + "rind": "natural", + "color": "yellow", + "flavor": "mild, nutty, spicy, tangy", + "aroma": "barnyardy, herbal", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Consider Bardwell Farm" + }, + { + "cheese": "Barely Buzzed", + "url": "https://www.cheese.com/barely-buzzed/", + "milk": "cow", + "country": "United States", + "region": "Utah", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "pale yellow", + "flavor": "butterscotch, caramel", + "aroma": "aromatic, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Beehive Cheese Company" + }, + { + "cheese": "Barilotto", + "url": "https://www.cheese.com/barilotto/", + "milk": "buffalo", + "country": "Italy", + "region": "Campania", + "family": "Brie", + "type": "hard, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "washed", + "color": "pale yellow", + "flavor": "creamy, sharp", + "aroma": "buttery, fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Casa Madaio" + }, + { + "cheese": "Barlocco", + "url": "https://www.cheese.com/barlocco/", + "milk": "cow", + "country": "Scotland", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "blue", + "flavor": "full-flavored", + "aroma": "strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Ethical Dairy" + }, + { + "cheese": "Baron Bigod", + "url": "https://www.cheese.com/baron-bigod/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "NA", + "flavor": "buttery, mushroomy", + "aroma": "grassy, milky", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fen Farm Dairy" + }, + { + "cheese": "Baron Bigod Baby Truffle", + "url": "https://www.cheese.com/baron-bigod-baby-truffle/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "NA", + "flavor": "milky", + "aroma": "earthy, mushroom", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Baby Truffled Baron", + "alt_spellings": "NA", + "producers": "Fen Farm Dairy" + }, + { + "cheese": "Baronerosso di Capra", + "url": "https://www.cheese.com/baronerosso-di-capra/", + "milk": "goat", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, firm", + "rind": "washed", + "color": "white", + "flavor": "full-flavored, sharp", + "aroma": "fruity, musty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Baronerosso al Barbera", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Barrel Aged Feta", + "url": "https://www.cheese.com/barrel-aged-feta/", + "milk": "cow, goat, sheep", + "country": "Greece", + "region": "NA", + "family": "Feta", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "NA", + "color": "white", + "flavor": "creamy", + "aroma": "rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Barricato al Pepe", + "url": "https://www.cheese.com/barricato-al-pepe/", + "milk": "cow", + "country": "Italy", + "region": "NA", + "family": "NA", + "type": "firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "natural", + "color": "ivory", + "flavor": "NA", + "aroma": "fruity, spicy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Barriquet", + "url": "https://www.cheese.com/barriquet/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth, supple", + "rind": "washed", + "color": "white", + "flavor": "earthy, full-flavored, meaty, nutty", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Pierrick Brendani and Nicolas Trotot" + }, + { + "cheese": "Barry's Bay Cheddar", + "url": "https://www.cheese.com/barrys-bay-cheddar/", + "milk": "cow", + "country": "New Zealand", + "region": "Banks Peninsular in Canterbury", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "cloth wrapped", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Barry's Bay" + }, + { + "cheese": "Bartlett", + "url": "https://www.cheese.com/bartlett/", + "milk": "sheep", + "country": "England, Great Britain, United Kingdom", + "region": "Somerset", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, smooth", + "rind": "mold ripened", + "color": "white", + "flavor": "buttery, milky", + "aroma": "aromatic, strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Basajo", + "url": "https://www.cheese.com/basajo/", + "milk": "sheep", + "country": "Italy", + "region": "NA", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "NA", + "flavor": "sweet", + "aroma": "fruity", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Baserri", + "url": "https://www.cheese.com/baserri/", + "milk": "sheep", + "country": "United States", + "region": "NA", + "family": "Tomme", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "NA", + "color": "NA", + "flavor": "milky, tangy", + "aroma": "milky, nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Txiki", + "alt_spellings": "NA", + "producers": "Barinaga Ranch, Inc." + }, + { + "cheese": "Basils Original Rauchkäse", + "url": "https://www.cheese.com/basils-original-rauchkase/", + "milk": "cow", + "country": "Germany", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "25.5%", + "calcium_content": "700 mg/100g", + "texture": "compact, dense, soft", + "rind": "natural", + "color": "pale yellow", + "flavor": "salty, smokey , spicy", + "aroma": "smokey", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Basil's Smoked Cheese", + "alt_spellings": "NA", + "producers": "Bergader Privatkäserei GmbH" + }, + { + "cheese": "Basing", + "url": "https://www.cheese.com/basing/", + "milk": "goat", + "country": "United Kingdom", + "region": "Kent", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "NA", + "color": "NA", + "flavor": "herbaceous, smooth", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Baskeriu", + "url": "https://www.cheese.com/baskeriu/", + "milk": "sheep", + "country": "France", + "region": "French Basque Country, Midi-Pyrénées", + "family": "NA", + "type": "semi-soft", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "dry, smooth", + "rind": "NA", + "color": "NA", + "flavor": "buttery, nutty", + "aroma": "buttery, nutty, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Basket Cheese", + "url": "https://www.cheese.com/basket-cheese/", + "milk": "cow", + "country": "Middle East", + "region": "NA", + "family": "Cottage", + "type": "soft, semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "chewy, supple", + "rind": "rindless", + "color": "white", + "flavor": "mild, salty", + "aroma": "milky", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Specialty Cheese Company, Inc" + }, + { + "cheese": "Basket Molded Ricotta", + "url": "https://www.cheese.com/basket-molded-ricotta/", + "milk": "cow", + "country": "", + "region": "NA", + "family": "Cottage", + "type": "fresh firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "NA", + "color": "white", + "flavor": "creamy, sweet", + "aroma": "fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bassigny au porto", + "url": "https://www.cheese.com/bassigny-au-porto/", + "milk": "cow", + "country": "Belgium", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "", + "rind": "washed", + "color": "yellow", + "flavor": "acidic, buttery", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Langres", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bath Blue", + "url": "https://www.cheese.com/bath-blue/", + "milk": "cow", + "country": "England, United Kingdom", + "region": "South West England", + "family": "Blue", + "type": "soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "cream", + "flavor": "creamy", + "aroma": "clean", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Bath Soft Cheese Co." + }, + { + "cheese": "Bath Soft Cheese", + "url": "https://www.cheese.com/bath-soft/", + "milk": "cow", + "country": "England", + "region": "South West England", + "family": "Brie", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "bloomy", + "color": "ivory", + "flavor": "citrusy, lemony, mushroomy", + "aroma": "aromatic, grassy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "Bath Soft", + "producers": "The Bath Soft Cheese Co." + }, + { + "cheese": "Bath Soft Cheese Truffled", + "url": "https://www.cheese.com/bath-soft-cheese-truffled/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "Brie", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, soft-ripened", + "rind": "NA", + "color": "white", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Bath Soft Cheese Co." + }, + { + "cheese": "Batzos", + "url": "https://www.cheese.com/batzos/", + "milk": "goat, sheep", + "country": "Greece", + "region": "Central and Western Macedonia, Thessaly", + "family": "NA", + "type": "semi-hard", + "fat_content": "20%", + "calcium_content": "NA", + "texture": "dry", + "rind": "NA", + "color": "white", + "flavor": "piquant, salty, sour, spicy", + "aroma": "pleasant", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bavaria blu", + "url": "https://www.cheese.com/bavaria-blu/", + "milk": "cow", + "country": "Germany", + "region": "NA", + "family": "Blue", + "type": "soft, blue-veined", + "fat_content": "43.3 g/100g", + "calcium_content": "450 mg/100g", + "texture": "creamy, soft", + "rind": "mold ripened", + "color": "cream", + "flavor": "creamy, sharp, strong", + "aroma": "aromatic, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Bavaria blu - Tasty Blue, Bavaria blu - Rich & Creamy, Bavaria blu – Classic Blue, Bavaria blu – Mild & Blue", + "alt_spellings": "NA", + "producers": "Bergader Privatkäserei GmbH" + }, + { + "cheese": "Bavarian Bergkase", + "url": "https://www.cheese.com/bavarian-bergkase/", + "milk": "cow", + "country": "Germany", + "region": "Allgaeu Alps", + "family": "NA", + "type": "hard, artisan", + "fat_content": "62%", + "calcium_content": "NA", + "texture": "crumbly, firm, open", + "rind": "natural", + "color": "pale yellow", + "flavor": "full-flavored, nutty, spicy", + "aroma": "aromatic, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Allgäuer Bergkäse DOP, Allgauer Bergkase", + "alt_spellings": "Bawarii Bergkäse", + "producers": "NA" + }, + { + "cheese": "Bayley Hazen Blue", + "url": "https://www.cheese.com/bayley-hazen-blue/", + "milk": "cow", + "country": "United States", + "region": "Greensboro, VT", + "family": "Blue", + "type": "semi-hard, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense, firm", + "rind": "natural", + "color": "cream", + "flavor": "buttery, grassy, licorice, nutty, tangy", + "aroma": "grassy, spicy, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Jasper Hill Farm" + }, + { + "cheese": "Baylough", + "url": "https://www.cheese.com/baylough/", + "milk": "cow", + "country": "Ireland", + "region": "County Tipperary, Clogheen", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "close, firm", + "rind": "waxed", + "color": "yellow", + "flavor": "garlicky, herbaceous, mild, smokey", + "aroma": "herbal, mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Bay Lough", + "producers": "BAY LOUGH CHEESE" + }, + { + "cheese": "Beach Box Brie", + "url": "https://www.cheese.com/beach-box-brie/", + "milk": "cow", + "country": "Australia", + "region": "Mornington Peninsula, Melbourne", + "family": "Brie", + "type": "artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "ash coated", + "color": "golden yellow", + "flavor": "creamy", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "BoatShed Cheese" + }, + { + "cheese": "Bear Hill", + "url": "https://www.cheese.com/bear-hill/", + "milk": "sheep", + "country": "United States", + "region": "Vermont", + "family": "NA", + "type": "semi-hard, smear-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "washed", + "color": "pale yellow", + "flavor": "fruity, mild, milky, nutty, sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Grafton Village Cheese Company" + }, + { + "cheese": "Beaufort", + "url": "https://www.cheese.com/beaufort/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "semi-firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "pale yellow", + "flavor": "NA", + "aroma": "fruity, nutty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Beaufort AOP Chalet Alpage Meule, Beaufort AOC", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Beaumont", + "url": "https://www.cheese.com/beaumont/", + "milk": "cow", + "country": "France", + "region": "Rhône-Alpes", + "family": "NA", + "type": "semi-soft", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "pale yellow", + "flavor": "NA", + "aroma": "barnyardy, earthy, mild, nutty, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Beauvale", + "url": "https://www.cheese.com/beauvale/", + "milk": "cow", + "country": "England", + "region": "East Midlands", + "family": "NA", + "type": "soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "pale yellow", + "flavor": "creamy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cropwell Bishop Creamery Limited" + }, + { + "cheese": "Beauvoorde", + "url": "https://www.cheese.com/beauvoorde/", + "milk": "cow", + "country": "Belgium", + "region": "Flanders", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm", + "rind": "natural", + "color": "yellow", + "flavor": "mild", + "aroma": "spicy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Beehive Fresh", + "url": "https://www.cheese.com/beehive-fresh/", + "milk": "cow", + "country": "United States", + "region": "Utah", + "family": "Mozzarella", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, soft", + "rind": "NA", + "color": "pale yellow", + "flavor": "buttery, mild", + "aroma": "buttery, fresh, mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Beehive Cheese Company" + }, + { + "cheese": "Beemster 2% Milk", + "url": "https://www.cheese.com/beemster-2-milk/", + "milk": "cow", + "country": "Canada, Denmark, France, Germany, Netherlands, United States", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "8%", + "calcium_content": "NA", + "texture": "smooth", + "rind": "NA", + "color": "NA", + "flavor": "nutty", + "aroma": "aromatic, floral, fruity", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Beemster Cheese, CONO Kaasmakers / Beemster" + }, + { + "cheese": "Beemster Aged", + "url": "https://www.cheese.com/beemster-aged/", + "milk": "cow", + "country": "Netherlands", + "region": "NA", + "family": "Gouda", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crystalline, firm, smooth", + "rind": "natural", + "color": "yellow", + "flavor": "full-flavored, smooth, spicy, strong", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Beemster Old", + "alt_spellings": "NA", + "producers": "CONO Kaasmakers / Beemster" + }, + { + "cheese": "Beemster Classic", + "url": "https://www.cheese.com/beemster-classic/", + "milk": "cow", + "country": "Netherlands", + "region": "NA", + "family": "Gouda", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm, smooth", + "rind": "natural", + "color": "yellow", + "flavor": "buttery, nutty", + "aroma": "buttery, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Beemster Cheese" + }, + { + "cheese": "Beemster Extra Aged (XO)", + "url": "https://www.cheese.com/beemster-extra-aged/", + "milk": "cow", + "country": "Netherlands", + "region": "NA", + "family": "Gouda", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "brittle, crumbly, grainy", + "rind": "natural", + "color": "golden yellow", + "flavor": "butterscotch, nutty", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Beemster Extra Old, Beemster X-O, Beemster XO", + "alt_spellings": "NA", + "producers": "Beemster Cheese, CONO Kaasmakers / Beemster" + }, + { + "cheese": "Beemster Graskaas", + "url": "https://www.cheese.com/beemster-graskaas/", + "milk": "cow", + "country": "Netherlands", + "region": "NA", + "family": "Gouda", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, open, smooth", + "rind": "natural", + "color": "yellow", + "flavor": "full-flavored", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Beemster Cheese, CONO Kaasmakers / Beemster" + }, + { + "cheese": "Beenleigh Blue", + "url": "https://www.cheese.com/beenleigh-blue/", + "milk": "sheep", + "country": "England", + "region": "NA", + "family": "Blue", + "type": "soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "natural", + "color": "NA", + "flavor": "lemony", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Ticklemore Cheese Dairy" + }, + { + "cheese": "Bega Processed Cheddar", + "url": "https://www.cheese.com/bega-processed-cheddar/", + "milk": "cow", + "country": "Australia", + "region": "NA", + "family": "Cheddar", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "yellow", + "flavor": "creamy", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Bega Cheese Limited" + }, + { + "cheese": "Bel Ceillo", + "url": "https://www.cheese.com/bel-ceillo/", + "milk": "cow", + "country": "United States", + "region": "NY", + "family": "Parmesan", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "sharp", + "aroma": "pungent", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Muranda Cheese Company" + }, + { + "cheese": "Bel Paese", + "url": "https://www.cheese.com/bel-paese/", + "milk": "cow", + "country": "Italy", + "region": "Lombardy", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "plastic", + "color": "pale yellow", + "flavor": "buttery, mild, milky, sweet", + "aroma": "pleasant", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Galbani" + }, + { + "cheese": "Bella Lodi", + "url": "https://www.cheese.com/bella-lodi/", + "milk": "cow", + "country": "Italy", + "region": "Lodi", + "family": "Parmesan", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, flaky, grainy", + "rind": "natural", + "color": "white", + "flavor": "full-flavored", + "aroma": "aromatic, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Black Parmesan", + "alt_spellings": "Bella Lodi Raspadura, Lodigrana Bella Lodi", + "producers": "Lodigrana" + }, + { + "cheese": "Belle Creme", + "url": "https://www.cheese.com/belle-creme/", + "milk": "cow", + "country": "Canada", + "region": "Québec", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, smooth, soft-ripened", + "rind": "bloomy", + "color": "white", + "flavor": "acidic, buttery, creamy, salty", + "aroma": "mushroom, nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Belletoile", + "url": "https://www.cheese.com/belletoile/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "70%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "NA", + "flavor": "garlicky, mild, mushroomy, nutty, tangy", + "aroma": "mild", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fromagerie Henri Hutin" + }, + { + "cheese": "Bellwether Farms Crescenza", + "url": "https://www.cheese.com/bellwether-farms-crescenza/", + "milk": "cow", + "country": "United States", + "region": "Sonoma, California", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, soft-ripened, spreadable", + "rind": "rindless", + "color": "ivory", + "flavor": "buttery, tart", + "aroma": "buttery, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Crescenza", + "alt_spellings": "NA", + "producers": "Bellwether Farms" + }, + { + "cheese": "Benedictine", + "url": "https://www.cheese.com/benedictine/", + "milk": "cow, goat, sheep", + "country": "United States", + "region": "La Velle, Wisconsin", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "washed", + "color": "yellow", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Carr Valley Cheese Company" + }, + { + "cheese": "Bent River", + "url": "https://www.cheese.com/bent-river/", + "milk": "cow", + "country": "United States", + "region": "Mankato, MN", + "family": "Camembert", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth, soft", + "rind": "bloomy", + "color": "NA", + "flavor": "buttery, mellow, milky, subtle", + "aroma": "mushroom", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Alemar Cheese" + }, + { + "cheese": "Bergader", + "url": "https://www.cheese.com/bergader/", + "milk": "cow", + "country": "Germany", + "region": "NA", + "family": "NA", + "type": "NA", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Bergader Privatkäserei GmbH" + }, + { + "cheese": "Bergere Bleue", + "url": "https://www.cheese.com/bergere-bleue/", + "milk": "sheep", + "country": "United States", + "region": "Marathon, NY", + "family": "Blue", + "type": "semi-soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, smooth", + "rind": "mold ripened", + "color": "pale yellow", + "flavor": "burnt caramel", + "aroma": "lanoline, rich, yeasty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Northland Sheep Dairy" + }, + { + "cheese": "Bergues", + "url": "https://www.cheese.com/bergues/", + "milk": "cow", + "country": "France", + "region": "Bergues", + "family": "NA", + "type": "semi-hard", + "fat_content": "15-25%", + "calcium_content": "NA", + "texture": "smooth", + "rind": "washed", + "color": "NA", + "flavor": "subtle, sweet", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Berkswell", + "url": "https://www.cheese.com/berkswell/", + "milk": "sheep", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "chewy, firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "NA", + "aroma": "sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bermondsey Hard Pressed", + "url": "https://www.cheese.com/bermondsey-hard-pressed/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Bermondsey, London", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, open", + "rind": "natural", + "color": "yellow", + "flavor": "creamy, nutty", + "aroma": "barnyardy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "KAPPACASEIN DAIRY" + }, + { + "cheese": "Bermuda Triangle", + "url": "https://www.cheese.com/bermuda-triangle/", + "milk": "goat", + "country": "United States", + "region": "California", + "family": "Brie", + "type": "semi-soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, dense, firm, smooth", + "rind": "bloomy", + "color": "white", + "flavor": "earthy, piquant, spicy, tangy", + "aroma": "earthy, fresh, spicy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cypress Grove Chevre" + }, + { + "cheese": "Bethmale des Pyrenees", + "url": "https://www.cheese.com/bethmale-des-pyrenees/", + "milk": "cow", + "country": "France", + "region": "Pyrenees", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "natural", + "color": "brownish yellow", + "flavor": "mild", + "aroma": "aromatic, earthy, mushroom", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bettine Bleu", + "url": "https://www.cheese.com/bettine-bleu/", + "milk": "goat", + "country": "Netherlands", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "39.6 g/100g", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Bettinehoeve BV" + }, + { + "cheese": "Bettine Grand Cru", + "url": "https://www.cheese.com/bettine-grand-cru/", + "milk": "goat", + "country": "Netherlands", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "spicy, strong", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Bettinehoeve BV" + }, + { + "cheese": "Beyaz Peynir", + "url": "https://www.cheese.com/beyaz-peynir/", + "milk": "cow, goat, sheep", + "country": "Turkey", + "region": "NA", + "family": "NA", + "type": "semi-soft, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "pale white", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bianca", + "url": "https://www.cheese.com/bianca/", + "milk": "goat, sheep", + "country": "United States", + "region": "Tieton, Washington", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft, spreadable", + "rind": "rindless", + "color": "ivory", + "flavor": "creamy, tangy", + "aroma": "fresh, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Tieton Farm & Creamery" + }, + { + "cheese": "Bianco", + "url": "https://www.cheese.com/bianco/", + "milk": "cow", + "country": "Germany", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "32.5 g/100g", + "calcium_content": "725 mg/100g", + "texture": "creamy, open, soft", + "rind": "natural", + "color": "pale yellow", + "flavor": "buttery, garlicky, mild", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Bianco Garlic, Bianco Original", + "producers": "Bergader Privatkäserei GmbH" + }, + { + "cheese": "Bica de Queijo", + "url": "https://www.cheese.com/bica-de-queijo/", + "milk": "cow, goat, sheep", + "country": "Portugal", + "region": "Póvoa de Lanhoso", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, firm, smooth, springy", + "rind": "natural", + "color": "ivory", + "flavor": "buttery, mild, salty", + "aroma": "goaty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "bag of cheese, Queijo de Bica, Bolsa de queso", + "producers": "NA" + }, + { + "cheese": "Bierkase", + "url": "https://www.cheese.com/bierkase/", + "milk": "cow", + "country": "Germany", + "region": "NA", + "family": "NA", + "type": "semi-soft, smear-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "washed", + "color": "pale yellow", + "flavor": "salty, tangy", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Weisslacker, beer kaese, beer cheese, Whitewash, bierkäse", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Big John's Cajun", + "url": "https://www.cheese.com/big-johns-cajun/", + "milk": "cow", + "country": "United States", + "region": "Utah", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "pale yellow", + "flavor": "smooth, spicy", + "aroma": "rich, spicy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Beehive Cheese Company" + }, + { + "cheese": "Big Rock Blue", + "url": "https://www.cheese.com/big-rock-blue/", + "milk": "cow", + "country": "United States", + "region": "California", + "family": "Blue", + "type": "semi-firm, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, crumbly", + "rind": "rindless", + "color": "ivory", + "flavor": "buttery, salty", + "aroma": "mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Central Coast Creamery" + }, + { + "cheese": "Big Woods Blue", + "url": "https://www.cheese.com/big-woods-blue/", + "milk": "sheep", + "country": "United States", + "region": "Minnesota", + "family": "Blue", + "type": "semi-hard, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "ivory", + "flavor": "full-flavored, sharp, spicy, tangy", + "aroma": "pronounced, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Shepherd's Way Farms" + }, + { + "cheese": "Bijou", + "url": "https://www.cheese.com/bijou/", + "milk": "goat", + "country": "United States", + "region": "Websterville, VT", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "11%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "mold ripened", + "color": "NA", + "flavor": "sharp, sweet, tangy, yeasty", + "aroma": "fresh, yeasty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Vermont Creamery" + }, + { + "cheese": "Binnorie Marinated Fetta", + "url": "https://www.cheese.com/binnorie-marinated-fetta/", + "milk": "cow", + "country": "Australia", + "region": "Pokolbin, Hunter Valley", + "family": "Feta", + "type": "soft, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "white", + "flavor": "herbaceous, mild, milky", + "aroma": "clean, fresh, herbal", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Marinated Feta", + "producers": "Binnorie Dairy" + }, + { + "cheese": "Bishop Kennedy", + "url": "https://www.cheese.com/bishop-kennedy/", + "milk": "cow", + "country": "Scotland", + "region": "Kinfauns, Perthshire", + "family": "NA", + "type": "soft", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "smooth", + "rind": "washed", + "color": "yellow", + "flavor": "creamy, strong", + "aroma": "pungent", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Kinfauns Home Farm, Scotland" + }, + { + "cheese": "Bismark", + "url": "https://www.cheese.com/bismark/", + "milk": "sheep", + "country": "United States", + "region": "Vermont", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, firm", + "rind": "rindless", + "color": "yellow", + "flavor": "buttery, creamy, nutty, sweet, tangy", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Grafton Village Cheese Company" + }, + { + "cheese": "Bix", + "url": "https://www.cheese.com/bix/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "soft, semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, soft, soft-ripened", + "rind": "NA", + "color": "pale yellow", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Black Betty", + "url": "https://www.cheese.com/black-betty/", + "milk": "goat", + "country": "Netherlands", + "region": "NA", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "waxed", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Essex St. Cheese Co., Fromagerie L'Amuse" + }, + { + "cheese": "Black Bomber Cheddar", + "url": "https://www.cheese.com/black-bomber-cheddar/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, compact, creamy, crumbly", + "rind": "NA", + "color": "yellow", + "flavor": "NA", + "aroma": "rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Little Black Bomber, Black Bomber", + "alt_spellings": "NA", + "producers": "Snowdonia Cheese Company Limited" + }, + { + "cheese": "Black Pearl", + "url": "https://www.cheese.com/black-pearl/", + "milk": "goat", + "country": "Australia", + "region": "Mornington Peninsula, Melbourne", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "ash coated", + "color": "NA", + "flavor": "mild", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Boatshed Black Pearl", + "alt_spellings": "NA", + "producers": "BoatShed Cheese" + }, + { + "cheese": "Blackmount", + "url": "https://www.cheese.com/blackmount/", + "milk": "goat", + "country": "Scotland", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "ash coated", + "color": "green", + "flavor": "earthy", + "aroma": "clean", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Errington Cheese Ltd." + }, + { + "cheese": "Blacksticks Blue", + "url": "https://www.cheese.com/blacksticks-blue/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "Blue", + "type": "soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, spreadable", + "rind": "NA", + "color": "orange", + "flavor": "creamy, tangy", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Butlers Blacksticks Blue", + "alt_spellings": "NA", + "producers": "Butlers Farmhouse Cheeses" + }, + { + "cheese": "Blaenafon Pwll Ddu", + "url": "https://www.cheese.com/blaenafon-pwll-ddu/", + "milk": "cow", + "country": "Wales", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact", + "rind": "NA", + "color": "cream", + "flavor": "savory", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Blarney Castle", + "url": "https://www.cheese.com/blarney-castle/", + "milk": "cow", + "country": "Ireland", + "region": "Blarney", + "family": "Gouda", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "golden yellow", + "flavor": "smooth, tangy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Kerrygold" + }, + { + "cheese": "Blenda", + "url": "https://www.cheese.com/blenda/", + "milk": "cow, sheep", + "country": "Sweden", + "region": "Oviken", + "family": "NA", + "type": "hard, artisan", + "fat_content": "30%", + "calcium_content": "NA", + "texture": "", + "rind": "natural", + "color": "yellow", + "flavor": "acidic, fruity, mild, nutty", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Oviken cheese" + }, + { + "cheese": "Bleu Bénédictin", + "url": "https://www.cheese.com/bleu-benedictin/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Blue", + "type": "semi-soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, salty, woody", + "aroma": "mushroom, pleasant", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fromagerie de l'Abbaye Saint-Benoît" + }, + { + "cheese": "Bleu d'Auvergne", + "url": "https://www.cheese.com/bleu-dauvergne/", + "milk": "cow", + "country": "France", + "region": "Auvergne", + "family": "Blue", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "ivory", + "flavor": "buttery, creamy, pungent", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Bleu d'Auvergne AOC", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bleu de Laqueuille", + "url": "https://www.cheese.com/bleu-de-laqueuille/", + "milk": "cow", + "country": "France", + "region": "Laqueuille", + "family": "Blue", + "type": "soft, blue-veined", + "fat_content": "30%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "blue", + "flavor": "salty, spicy, tangy", + "aroma": "earthy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bleu Des Causses", + "url": "https://www.cheese.com/bleu-des-causses/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "NA", + "flavor": "milky, spicy", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Bleu Des Causses AOC", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bleu L'Ermite", + "url": "https://www.cheese.com/bleu-lermite/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Blue", + "type": "semi-soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "natural", + "color": "cream", + "flavor": "mushroomy, nutty, salty, sharp", + "aroma": "fermented", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Ermite (L'), Bleu Ermite, Blue Hermit", + "alt_spellings": "NA", + "producers": "Abbey de Saint-Benoit-du-lac" + }, + { + "cheese": "Bleu Mont Dairy Bandaged Cheddar", + "url": "https://www.cheese.com/bleu-mont-dairy-bandaged-cheddar/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, crystalline, flaky", + "rind": "cloth wrapped", + "color": "yellow", + "flavor": "caramel, nutty, sweet", + "aroma": "earthy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bleubry", + "url": "https://www.cheese.com/bleubry/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Blue", + "type": "soft, blue-veined", + "fat_content": "37%", + "calcium_content": "NA", + "texture": "creamy, smooth, supple", + "rind": "mold ripened", + "color": "cream", + "flavor": "creamy, mild, savory", + "aroma": "pungent", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Blissful Blocks", + "url": "https://www.cheese.com/blissful-blocks/", + "milk": "", + "country": "Canada, United States", + "region": "NA", + "family": "Cheddar", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "plastic", + "color": "yellow", + "flavor": "creamy, savory, sharp, spicy", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Lactose Free Cheddar Blocks, Lactose & Soy Free Cheddar Blocks, Lactose Free Mozzarella Blocks, Lactose & Soy Free Mozzarella Blocks", + "alt_spellings": "NA", + "producers": "GO Veggie!" + }, + { + "cheese": "Blissful Toppings", + "url": "https://www.cheese.com/blissful-toppings/", + "milk": "", + "country": "Canada, United States", + "region": "NA", + "family": "Parmesan", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "artificial", + "color": "yellow", + "flavor": "savory, sharp", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Lactose Free Parmesan Grated Topping, Dairy Free Parmesan Grated Topping", + "alt_spellings": "NA", + "producers": "GO Veggie!" + }, + { + "cheese": "Bloomsdale", + "url": "https://www.cheese.com/bloomsdale/", + "milk": "goat", + "country": "United States", + "region": "Bloomdale", + "family": "Brie", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, runny, soft-ripened", + "rind": "mold ripened", + "color": "white", + "flavor": "earthy, milky, tangy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Baetje Farms LLC" + }, + { + "cheese": "Blu '61", + "url": "https://www.cheese.com/blu-61/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "Blue", + "type": "soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "NA", + "color": "white", + "flavor": "creamy, pronounced, strong", + "aroma": "fruity, rich, sweet", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Blu Della Casera", + "url": "https://www.cheese.com/blu-della-casera/", + "milk": "cow, sheep", + "country": "Italy", + "region": "Piedmont", + "family": "NA", + "type": "soft, blue-veined", + "fat_content": "54%", + "calcium_content": "NA", + "texture": "soft", + "rind": "leaf wrapped", + "color": "ivory", + "flavor": "creamy, strong", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casera srl" + }, + { + "cheese": "Blu di Bufala", + "url": "https://www.cheese.com/blu-di-bufala/", + "milk": "water buffalo", + "country": "Italy", + "region": "Lombardy", + "family": "Blue", + "type": "semi-firm, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "natural", + "color": "cream", + "flavor": "acidic, milky, sweet, tangy", + "aroma": "fresh, milky", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Blue", + "url": "https://www.cheese.com/vegan-blue/", + "milk": "plant-based", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft-ripened", + "rind": "mold ripened", + "color": "blue", + "flavor": "creamy, mild, smooth", + "aroma": "milky, ripe", + "vegetarian": "TRUE", + "vegan": "TRUE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Honestly Tasty" + }, + { + "cheese": "Blue Benedictine", + "url": "https://www.cheese.com/blue-benedictine/", + "milk": "", + "country": "Canada", + "region": "NA", + "family": "NA", + "type": "semi-soft, blue-veined, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, crumbly, smooth", + "rind": "natural", + "color": "brownish yellow", + "flavor": "buttery, creamy, earthy, grassy, herbaceous, mushroomy, salty, smooth, sweet", + "aroma": "buttery, earthy, grassy, herbal, mushroom, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Benedictine Abbey of Saint-Benoît-du-Lac, Quebec." + }, + { + "cheese": "Blue Castello", + "url": "https://www.cheese.com/blue-castello/", + "milk": "cow", + "country": "Denmark", + "region": "NA", + "family": "Blue", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "blue", + "flavor": "buttery", + "aroma": "spicy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Blue Cheese", + "url": "https://www.cheese.com/blue-vein-cheese/", + "milk": "cow, goat, sheep", + "country": "", + "region": "NA", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "blue", + "flavor": "salty, sharp, tangy", + "aroma": "stinky, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Blue cheese, Bleu cheese, Erborinato, Blue-Vein Cheese", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Blue Clouds", + "url": "https://www.cheese.com/blue-clouds/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "blue", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Blue Earth", + "url": "https://www.cheese.com/blue-earth/", + "milk": "cow", + "country": "United States", + "region": "Mankato, MN", + "family": "Brie", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, runny, smooth, soft", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "buttery, grassy, smooth", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Blue Ledge La Luna", + "url": "https://www.cheese.com/blue-ledge-la-luna/", + "milk": "goat", + "country": "United States", + "region": "Vermont", + "family": "Gouda", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, smooth", + "rind": "waxed", + "color": "white", + "flavor": "creamy, milky, tangy", + "aroma": "grassy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "La Luna", + "alt_spellings": "NA", + "producers": "Blue Ledge" + }, + { + "cheese": "Blue Lupine", + "url": "https://www.cheese.com/blue-lupine/", + "milk": "goat", + "country": "United States", + "region": "California", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense", + "rind": "natural", + "color": "NA", + "flavor": "tangy", + "aroma": "goaty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Weirauch Farm and Creamery" + }, + { + "cheese": "Blue Rathgore", + "url": "https://www.cheese.com/blue-rathgore/", + "milk": "goat", + "country": "Ireland", + "region": "County Antrim", + "family": "Blue", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "natural", + "color": "ivory", + "flavor": "buttery, spicy", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Blue Vein (Australian)", + "url": "https://www.cheese.com/blue-vein-australian/", + "milk": "cow", + "country": "Australia", + "region": "NA", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense", + "rind": "natural", + "color": "blue", + "flavor": "salty, sharp", + "aroma": "stinky, strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Blue Wensleydale", + "url": "https://www.cheese.com/blue-wensleydale/", + "milk": "cow", + "country": "England", + "region": "North Yorkshire", + "family": "Blue", + "type": "hard, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "close", + "rind": "cloth wrapped", + "color": "blue", + "flavor": "acidic, salty, savory, sharp, strong", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Wensleydale Creamery" + }, + { + "cheese": "Blue Yonder", + "url": "https://www.cheese.com/blue-yonder/", + "milk": "cow", + "country": "United States", + "region": "NY", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "white", + "flavor": "subtle", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Lively Run Goat Dairy" + }, + { + "cheese": "Bluebell", + "url": "https://www.cheese.com/bluebell/", + "milk": "cow", + "country": "Scotland", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft", + "rind": "natural", + "color": "blue-grey", + "flavor": "sweet", + "aroma": "mushroom", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Ethical Dairy" + }, + { + "cheese": "Bluebell Falls Cygnus", + "url": "https://www.cheese.com/bluebell-falls-cygnus/", + "milk": "goat", + "country": "Ireland", + "region": "Co. Cork", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "white", + "flavor": "garlicky, herbaceous, sweet", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Cygnus Goats Cheese, Cygnus Honey Garlic and Thyme Goats Cheese, Cygnus Pepper and Garlic Goats Cheese", + "alt_spellings": "NA", + "producers": "Bluebell Falls Goats Cheese" + }, + { + "cheese": "Blythedale Camembert Vermont™", + "url": "https://www.cheese.com/blythedale-camembert/", + "milk": "cow", + "country": "United States", + "region": "Vermont", + "family": "Camembert", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense", + "rind": "natural", + "color": "ivory", + "flavor": "earthy, mushroomy", + "aroma": "mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Camembert Vermont", + "alt_spellings": "NA", + "producers": "Blythedale Farm Cheeses" + }, + { + "cheese": "Bocconcini", + "url": "https://www.cheese.com/bocconcini/", + "milk": "cow, goat, water buffalo", + "country": "Italy", + "region": "NA", + "family": "Mozzarella", + "type": "semi-soft, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "rindless", + "color": "white", + "flavor": "buttery, mild, sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "bocconcino di bufala campana, bocconcini alla panna di bufala, Bocconcino Di Langa", + "alt_spellings": "NA", + "producers": "La Casa Del Formaggio" + }, + { + "cheese": "Boeren-Leidse met sleutels", + "url": "https://www.cheese.com/boeren-leidse-met-sleutels/", + "milk": "cow", + "country": "Netherlands", + "region": "Leiden", + "family": "Gouda", + "type": "hard, artisan", + "fat_content": "30-40%", + "calcium_content": "NA", + "texture": "crumbly, firm", + "rind": "waxed", + "color": "yellow", + "flavor": "fruity, spicy", + "aroma": "aromatic, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Farmers Leiden, Leidse kaas, Leyden cheese, Boeren-Leidse kaas, Boeren-Leidse, cumin cheese, Leyden, Boeren-Leidse met sleutels, Boeren Leidenkaas", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bohemian Blue", + "url": "https://www.cheese.com/bohemian-blue/", + "milk": "sheep", + "country": "United States", + "region": "Southwestern Wisconsin", + "family": "Blue", + "type": "firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, dry", + "rind": "rindless", + "color": "white", + "flavor": "piquant, sour, sweet", + "aroma": "sweet", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Hidden Springs Company" + }, + { + "cheese": "Boivin Extra Aged Cheddar", + "url": "https://www.cheese.com/boivin-extra-aged-cheddar/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Cheddar", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, smooth", + "rind": "rindless", + "color": "straw", + "flavor": "acidic, buttery", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Fromagerie Boivin" + }, + { + "cheese": "Boivin Marbled Cheddar", + "url": "https://www.cheese.com/boivin-marbled-cheddar/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Cheddar", + "type": "semi-soft, processed", + "fat_content": "31%", + "calcium_content": "NA", + "texture": "firm, smooth", + "rind": "rindless", + "color": "golden orange", + "flavor": "mild, salty, sweet", + "aroma": "buttery", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Fromagerie Boivin" + }, + { + "cheese": "Boivin Medium Cheddar", + "url": "https://www.cheese.com/boivin-medium-cheddar/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Cheddar", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, smooth", + "rind": "rindless", + "color": "pale yellow", + "flavor": "acidic, buttery", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Fromagerie Boivin" + }, + { + "cheese": "Bonchester", + "url": "https://www.cheese.com/bonchester/", + "milk": "cow", + "country": "Scotland, United Kingdom", + "region": "Roxburghshire", + "family": "NA", + "type": "soft, artisan", + "fat_content": "20%", + "calcium_content": "NA", + "texture": "close, smooth", + "rind": "natural", + "color": "yellow", + "flavor": "mild", + "aroma": "grassy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bonifaz", + "url": "https://www.cheese.com/bonifaz/", + "milk": "cow", + "country": "Germany", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "43.3 g/100g", + "calcium_content": "430 mg/100g", + "texture": "creamy, soft", + "rind": "natural", + "color": "cream", + "flavor": "creamy, garlicky, herbaceous, mild, milky, mushroomy, spicy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Bergader Privatkäserei GmbH" + }, + { + "cheese": "Bonne Bouche", + "url": "https://www.cheese.com/bonne-bouche/", + "milk": "goat", + "country": "United States", + "region": "Vermont", + "family": "NA", + "type": "soft", + "fat_content": "21%", + "calcium_content": "NA", + "texture": "creamy, fluffy, smooth", + "rind": "mold ripened", + "color": "ivory", + "flavor": "citrusy, grassy", + "aroma": "yeasty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Vermont Creamery" + }, + { + "cheese": "Boo Boo Baby Swiss", + "url": "https://www.cheese.com/boo-boo-baby-swiss/", + "milk": "cow", + "country": "United States", + "region": "Utah", + "family": "Swiss Cheese", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, firm, open", + "rind": "natural", + "color": "yellow", + "flavor": "nutty, sweet", + "aroma": "milky, pleasant", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Rockhill Creamery" + }, + { + "cheese": "Bootlegger", + "url": "https://www.cheese.com/bootlegger/", + "milk": "cow, sheep", + "country": "Canada, Italy", + "region": "Lombardy", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "fruity, full-flavored, strong", + "aroma": "floral", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fifth Town Artisan Cheese" + }, + { + "cheese": "Bossa", + "url": "https://www.cheese.com/bossa/", + "milk": "sheep", + "country": "United States", + "region": "Missouri", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm, spreadable", + "rind": "washed", + "color": "cream", + "flavor": "floral, meaty", + "aroma": "stinky", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Green Dirt Farm" + }, + { + "cheese": "Bosworth", + "url": "https://www.cheese.com/bosworth/", + "milk": "goat", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "mold ripened", + "color": "white", + "flavor": "mild, salty, sweet", + "aroma": "goaty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Bosworth Leaf, Bosworth Ash Log", + "alt_spellings": "NA", + "producers": "Highfields Farm Dairy" + }, + { + "cheese": "Bothwell Black Truffle Cheddar", + "url": "https://www.cheese.com/bothwell-black-truffle-cheddar/", + "milk": "cow", + "country": "Canada", + "region": "Manitoba", + "family": "Cheddar", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "rindless", + "color": "pale yellow", + "flavor": "earthy, fruity", + "aroma": "buttery, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Bothwell Cheese Inc." + }, + { + "cheese": "Bougon", + "url": "https://www.cheese.com/bougon/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "firm", + "rind": "bloomy", + "color": "white", + "flavor": "acidic", + "aroma": "fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Boulder Chevre", + "url": "https://www.cheese.com/boulder-chevre/", + "milk": "goat", + "country": "United States", + "region": "NA", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, firm", + "rind": "NA", + "color": "white", + "flavor": "citrusy, tangy", + "aroma": "clean, fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Haystack Mountain Creamery" + }, + { + "cheese": "Boule Du Roves", + "url": "https://www.cheese.com/boule-du-roves/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "white", + "flavor": "NA", + "aroma": "fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Boulette d'Avesnes", + "url": "https://www.cheese.com/boulette-davesnes/", + "milk": "cow", + "country": "France", + "region": "Avesnes", + "family": "NA", + "type": "fresh soft", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "NA", + "flavor": "spicy", + "aroma": "stinky", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bouncing Berry", + "url": "https://www.cheese.com/bouncing-berry/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "waxed", + "color": "pale yellow", + "flavor": "fruity", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bourdin Goat Log", + "url": "https://www.cheese.com/bourdin-goat-log/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "Cottage", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "rindless", + "color": "NA", + "flavor": "creamy, tangy", + "aroma": "fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Bourdin Chevre, Chevre by Bourdin", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Boursault", + "url": "https://www.cheese.com/boursault/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, spreadable", + "rind": "bloomy", + "color": "NA", + "flavor": "buttery", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Boursin", + "url": "https://www.cheese.com/boursin/", + "milk": "cow", + "country": "France", + "region": "Croisy-sur-Eure", + "family": "NA", + "type": "soft, processed", + "fat_content": "60%", + "calcium_content": "NA", + "texture": "creamy, crumbly, spreadable", + "rind": "rindless", + "color": "white", + "flavor": "buttery, full-flavored, herbaceous, smooth", + "aroma": "fresh, strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Gournay cheese", + "alt_spellings": "NA", + "producers": "Boursin Bel UK Ltd" + }, + { + "cheese": "Bouyguette", + "url": "https://www.cheese.com/bouyguette/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, soft", + "rind": "edible", + "color": "white", + "flavor": "lemony, milky, smooth", + "aroma": "floral, fresh, goaty, grassy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bouyssou", + "url": "https://www.cheese.com/bouyssou/", + "milk": "cow", + "country": "France", + "region": "Aveyron", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "fruity", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Boyne Valley Bán", + "url": "https://www.cheese.com/boyne-valley-ban/", + "milk": "goat", + "country": "Ireland", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "natural", + "color": "ivory", + "flavor": "earthy, full-flavored, garlicky, grassy, lemony, mushroomy, umami", + "aroma": "barnyardy, buttery, earthy, goaty, musty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Boyne Valley Ban", + "alt_spellings": "NA", + "producers": "Boyne Valley Cheese" + }, + { + "cheese": "Bra Duro DOP", + "url": "https://www.cheese.com/bra/", + "milk": "cow", + "country": "Italy", + "region": "Piedmont", + "family": "NA", + "type": "hard", + "fat_content": "35%", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "salty, savory", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Bra Duro DOP", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Braudostur", + "url": "https://www.cheese.com/braudostur/", + "milk": "cow", + "country": "Iceland", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "25%", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "sweet", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Breakfast Cheese", + "url": "https://www.cheese.com/breakfast-cheese/", + "milk": "cow", + "country": "United States", + "region": "California", + "family": "NA", + "type": "fresh firm, soft-ripened", + "fat_content": "7 g/100g", + "calcium_content": "90 mg/100g", + "texture": "dense, firm", + "rind": "rindless", + "color": "white", + "flavor": "citrusy, tangy", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Petite Breakfast", + "alt_spellings": "NA", + "producers": "Marin French Cheeese Co." + }, + { + "cheese": "Brebirousse d'Argental", + "url": "https://www.cheese.com/brebirousse-dargental/", + "milk": "sheep", + "country": "France", + "region": "NA", + "family": "Brie", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "orange", + "flavor": "creamy, sweet", + "aroma": "grassy, milky", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Brebis d'Azure", + "url": "https://www.cheese.com/brebis-dazure/", + "milk": "sheep", + "country": "Canada, Italy", + "region": "Lombardy", + "family": "Blue", + "type": "semi-hard, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft", + "rind": "natural", + "color": "pale yellow", + "flavor": "sharp", + "aroma": "aromatic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fifth Town Artisan Cheese" + }, + { + "cheese": "Brebis du Lavort", + "url": "https://www.cheese.com/brebis-du-lavort/", + "milk": "sheep", + "country": "France", + "region": "Auvergne", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "1050 mg/100g", + "texture": "creamy, open", + "rind": "natural", + "color": "ivory", + "flavor": "mild, nutty", + "aroma": "earthy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Lavort, Guillaume de Lavort", + "producers": "Fromagerie De Terre Dieu" + }, + { + "cheese": "Brebis du Puyfaucon", + "url": "https://www.cheese.com/brebis-du-puyfaucon/", + "milk": "sheep", + "country": "France", + "region": "Haute Vienne", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "natural", + "color": "NA", + "flavor": "sweet", + "aroma": "grassy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bree", + "url": "https://www.cheese.com/vegan-bree/", + "milk": "plant-based", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft-ripened", + "rind": "bloomy", + "color": "white", + "flavor": "buttery, earthy, mushroomy", + "aroma": "earthy, mild", + "vegetarian": "TRUE", + "vegan": "TRUE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Honestly Tasty" + }, + { + "cheese": "Brefu Bach", + "url": "https://www.cheese.com/brefu-bach/", + "milk": "sheep", + "country": "Wales", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft", + "rind": "NA", + "color": "golden yellow", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bresse Bleu", + "url": "https://www.cheese.com/bresse-bleu/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "Blue", + "type": "soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "white", + "flavor": "creamy", + "aroma": "milky, mushroom", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Bleu de Bresse", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Brewer's Gold", + "url": "https://www.cheese.com/brewers-gold/", + "milk": "cow", + "country": "Ireland", + "region": "Stoneyford", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "washed", + "color": "pale yellow", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Knockdrinna Farmhouse Cheese" + }, + { + "cheese": "Brick", + "url": "https://www.cheese.com/brick/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-hard, smear-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "open, smooth", + "rind": "washed", + "color": "ivory", + "flavor": "mild, nutty, sweet, tangy", + "aroma": "pungent, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Brick Lane Bree", + "url": "https://www.cheese.com/vegan-brick-lane-bree-cheese/", + "milk": "plant-based", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, gooey, soft", + "rind": "mold ripened", + "color": "cream", + "flavor": "buttery, mild, mushroomy", + "aroma": "buttery, mild, mushroom", + "vegetarian": "TRUE", + "vegan": "TRUE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Fauxmagerie" + }, + { + "cheese": "Bridgewater", + "url": "https://www.cheese.com/bridgewater/", + "milk": "cow", + "country": "United States", + "region": "Ann Arbor, Michigan", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft-ripened", + "rind": "bloomy", + "color": "ivory", + "flavor": "citrusy, mushroomy, piquant, spicy", + "aroma": "mushroom, spicy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Zingerman's Creamery" + }, + { + "cheese": "Brie", + "url": "https://www.cheese.com/brie/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "Brie", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, soft-ripened", + "rind": "bloomy", + "color": "cream", + "flavor": "mild", + "aroma": "buttery, mild", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Brie au poivre (Brie with pepper)", + "url": "https://www.cheese.com/brie-au-poivre-brie-with-pepper/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "bloomy", + "color": "NA", + "flavor": "creamy, spicy", + "aroma": "spicy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Brie Coco", + "url": "https://www.cheese.com/brie-coco/", + "milk": "cow", + "country": "Canada", + "region": "Québec", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, smooth, soft-ripened", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "acidic, buttery, creamy, salty", + "aroma": "mushroom, nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Brie d'Alexis", + "url": "https://www.cheese.com/brie-dalexis/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, supple", + "rind": "bloomy", + "color": "cream", + "flavor": "creamy, nutty", + "aroma": "nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Brie de Meaux", + "url": "https://www.cheese.com/brie-de-meaux/", + "milk": "cow", + "country": "France", + "region": "Ile de France", + "family": "Brie", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "bloomy", + "color": "straw", + "flavor": "milky", + "aroma": "buttery, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Brie de Melun", + "url": "https://www.cheese.com/brie-de-melun/", + "milk": "cow", + "country": "France", + "region": "Ile de France", + "family": "Brie", + "type": "semi-soft, soft-ripened", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "firm", + "rind": "bloomy", + "color": "yellow", + "flavor": "salty, sharp, sour, strong", + "aroma": "grassy, musty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Brie Noir", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Brie de Portneuf", + "url": "https://www.cheese.com/brie-de-portneuf/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, supple", + "rind": "bloomy", + "color": "cream", + "flavor": "creamy", + "aroma": "fruity", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Brie de Portneuf Double Cream", + "url": "https://www.cheese.com/brie-de-portneuf-double-cream/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, supple", + "rind": "bloomy", + "color": "cream", + "flavor": "creamy", + "aroma": "nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Brightwell Ash", + "url": "https://www.cheese.com/brightwell-ash/", + "milk": "goat", + "country": "United Kingdom", + "region": "South East England", + "family": "NA", + "type": "semi-firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "ash coated", + "color": "pale white", + "flavor": "citrusy, nutty, tangy", + "aroma": "mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Brillat-Savarin", + "url": "https://www.cheese.com/brillat-savarin/", + "milk": "cow", + "country": "France", + "region": "Ile de France", + "family": "NA", + "type": "soft, artisan", + "fat_content": "75%", + "calcium_content": "NA", + "texture": "creamy, dense", + "rind": "mold ripened", + "color": "white", + "flavor": "buttery, nutty, sour", + "aroma": "milky", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Brillo di Treviso", + "url": "https://www.cheese.com/brillo-di-treviso/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact", + "rind": "natural", + "color": "ivory", + "flavor": "fruity, tangy", + "aroma": "aromatic, subtle", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Brimstone", + "url": "https://www.cheese.com/brimstone/", + "milk": "cow", + "country": "United States", + "region": "Missouri", + "family": "Gouda", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "rindless", + "color": "pale yellow", + "flavor": "smooth, spicy", + "aroma": "spicy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Heartland Creamery" + }, + { + "cheese": "Brin", + "url": "https://www.cheese.com/brin/", + "milk": "cow", + "country": "France", + "region": "Rhone-Alps", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "40%", + "calcium_content": "NA", + "texture": "creamy, spreadable", + "rind": "washed", + "color": "golden orange", + "flavor": "buttery, sweet", + "aroma": "aromatic, nutty, yeasty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fromagerie GUILLOTEAU" + }, + { + "cheese": "Brin d'Amour", + "url": "https://www.cheese.com/brin-damour/", + "milk": "sheep", + "country": "France", + "region": "NA", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm", + "rind": "NA", + "color": "white", + "flavor": "citrusy, mild", + "aroma": "herbal", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Brinza - Feta style", + "url": "https://www.cheese.com/brinza---feta-style/", + "milk": "sheep", + "country": "New Zealand", + "region": "Queenstown", + "family": "Feta", + "type": "soft, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, open", + "rind": "natural", + "color": "white", + "flavor": "citrusy, salty, sweet, tangy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Briza Feta", + "alt_spellings": "NA", + "producers": "The Gibbston Valley Cheese Company" + }, + { + "cheese": "Briquette de Brebis", + "url": "https://www.cheese.com/briquette-de-brebis/", + "milk": "sheep", + "country": "France", + "region": "Averyon", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "white", + "flavor": "nutty", + "aroma": "nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Briquette du Forez", + "url": "https://www.cheese.com/briquette-du-forez/", + "milk": "cow, goat", + "country": "France", + "region": "Auvergne", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "white", + "flavor": "smooth", + "aroma": "goaty, pleasant", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Briscola", + "url": "https://www.cheese.com/briscola/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, open", + "rind": "natural", + "color": "ivory", + "flavor": "fruity, savory, spicy, strong", + "aroma": "milky, pleasant, spicy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Brise du Matin", + "url": "https://www.cheese.com/brise-du-matin/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "30%", + "calcium_content": "NA", + "texture": "buttery, creamy, runny, soft, soft-ripened", + "rind": "bloomy", + "color": "cream", + "flavor": "buttery, mushroomy, nutty, pronounced", + "aroma": "fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Légère Brise du Matin", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Brixton Blue", + "url": "https://www.cheese.com/vegan-brixton-blue-cheese/", + "milk": "plant-based", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "semi-firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, semi firm, soft-ripened", + "rind": "mold ripened", + "color": "blue", + "flavor": "creamy, full-flavored, piquant, tangy, umami", + "aroma": "earthy, fermented, pungent, strong", + "vegetarian": "TRUE", + "vegan": "TRUE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Fauxmagerie" + }, + { + "cheese": "Brocciu", + "url": "https://www.cheese.com/brocciu/", + "milk": "goat, sheep", + "country": "France", + "region": "Corsica", + "family": "Cottage", + "type": "fresh soft, whey", + "fat_content": "40-50%", + "calcium_content": "NA", + "texture": "creamy, crumbly, smooth", + "rind": "rindless", + "color": "white", + "flavor": "milky, sweet", + "aroma": "sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Brocciu AOC, Brocciu AOP", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Broncha", + "url": "https://www.cheese.com/broncha/", + "milk": "cow, goat", + "country": "United States", + "region": "California", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "mold ripened", + "color": "straw", + "flavor": "creamy, mild", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Achadinha Cheese Company" + }, + { + "cheese": "Brousse du Rove", + "url": "https://www.cheese.com/brousse-du-rove/", + "milk": "cow, goat, sheep", + "country": "France", + "region": "Bas-Languedoc, Comtat Venaissin", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "white", + "flavor": "mild, sweet", + "aroma": "milky", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Brown’s Gulch", + "url": "https://www.cheese.com/browns-gulch/", + "milk": "goat", + "country": "United States", + "region": "Oregon", + "family": "Parmesan", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "herbaceous, salty, sharp", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Pholia Farm" + }, + { + "cheese": "Bruder Basil", + "url": "https://www.cheese.com/bruder-basil/", + "milk": "cow", + "country": "Germany", + "region": "Bavaria", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, open, smooth", + "rind": "washed", + "color": "pale yellow", + "flavor": "mild, savory, smokey", + "aroma": "rich, smokey", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Bergader Private Cheese Dairy" + }, + { + "cheese": "Brunost", + "url": "https://www.cheese.com/brunost/", + "milk": "cow, goat", + "country": "Denmark, Finland, Germany, Iceland, Norway, Sweden", + "region": "NA", + "family": "NA", + "type": "semi-soft, whey", + "fat_content": "27 g/100g", + "calcium_content": "360 mg/100g", + "texture": "dense", + "rind": "natural", + "color": "brown", + "flavor": "caramel, sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "mysost, mesost, meesjuusto, mysuostur, myseost, Braunkäse, geitost, Ekte Geitost, Gudbrandsdalsost", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Brusselae Kaas (Fromage de Bruxelles)", + "url": "https://www.cheese.com/brusselae-kaas-fromage-de-bruxelles/", + "milk": "cow", + "country": "Belgium", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "washed", + "color": "pale yellow", + "flavor": "salty, sharp", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Brutal Blue", + "url": "https://www.cheese.com/brutal-blue/", + "milk": "cow", + "country": "United States", + "region": "Oregon", + "family": "Blue", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "cream", + "flavor": "creamy, spicy, strong, woody", + "aroma": "strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Rogue Creamery" + }, + { + "cheese": "Bryndza", + "url": "https://www.cheese.com/bryndza/", + "milk": "sheep", + "country": "Hungary, Poland, Slovakia", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "spreadable", + "rind": "rindless", + "color": "white", + "flavor": "mild, salty", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Slovenská bryndza, Bryndza Podhalańska, Liptauer, Brinza, brynza", + "alt_spellings": "ovčia bryndza, Slovenska bryndza, Bryndza Podhalanska", + "producers": "NA" + }, + { + "cheese": "Brânză de Burduf", + "url": "https://www.cheese.com/branza-de-burduf/", + "milk": "sheep", + "country": "Romania", + "region": "Romanian Carpathians", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "natural", + "color": "white", + "flavor": "salty, spicy", + "aroma": "woody", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Brinza (Burduf Brinza), Brânză frământată", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Buche de Chevre", + "url": "https://www.cheese.com/buche-de-chevre/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "white", + "flavor": "sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Bûche de chèvre, Buche de chèvre", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bucheret", + "url": "https://www.cheese.com/bucheret/", + "milk": "goat", + "country": "United States", + "region": "California", + "family": "Brie", + "type": "soft, artisan, soft-ripened", + "fat_content": "10%", + "calcium_content": "NA", + "texture": "buttery, chalky, dense, smooth, soft-ripened", + "rind": "bloomy", + "color": "white", + "flavor": "buttery, mushroomy, nutty, tangy", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Redwood Hill Farm & Creamery" + }, + { + "cheese": "Buchette d'Anjou", + "url": "https://www.cheese.com/buchette-danjou/", + "milk": "goat", + "country": "France", + "region": "Loire", + "family": "NA", + "type": "soft", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "firm, grainy", + "rind": "artificial", + "color": "ivory", + "flavor": "acidic, citrusy", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Various" + }, + { + "cheese": "Buchette de Manon", + "url": "https://www.cheese.com/buchette-de-manon/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "cream", + "flavor": "mild", + "aroma": "clean", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bufala Soldier", + "url": "https://www.cheese.com/bufala-soldier/", + "milk": "cow, goat, water buffalo", + "country": "United States", + "region": "Colorado", + "family": "Camembert", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "acidic, buttery, creamy, earthy, sweet", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Haystack Mountain Creamery" + }, + { + "cheese": "Bufalino", + "url": "https://www.cheese.com/bufalino/", + "milk": "buffalo", + "country": "Italy", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "NA", + "color": "white", + "flavor": "creamy, strong", + "aroma": "buttery", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Casa Madaio" + }, + { + "cheese": "Bufarolo", + "url": "https://www.cheese.com/bufarolo/", + "milk": "water buffalo", + "country": "Italy", + "region": "Lombardy", + "family": "Cottage", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "chalky, crumbly", + "rind": "rindless", + "color": "white", + "flavor": "mild, milky, subtle", + "aroma": "fresh, mild, milky, pleasant", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Azienda Agricola Gritti Bruno E Alfio S.s. Societa Agricola" + }, + { + "cheese": "Buff Blue", + "url": "https://www.cheese.com/buff-blue/", + "milk": "buffalo", + "country": "United States", + "region": "Southern California", + "family": "Blue", + "type": "firm, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "natural", + "color": "blue", + "flavor": "smokey", + "aroma": "earthy, smokey", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Bleating Heart Cheese" + }, + { + "cheese": "Burgos", + "url": "https://www.cheese.com/burgos/", + "milk": "cow, sheep", + "country": "Spain", + "region": "Castille-Leon", + "family": "NA", + "type": "fresh soft", + "fat_content": "46-60%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "rindless", + "color": "white", + "flavor": "mild, milky", + "aroma": "fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Queso de Burgos, Fromage Burgos, Burgos käse", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Burrata", + "url": "https://www.cheese.com/burrata/", + "milk": "water buffalo", + "country": "Italy, United States", + "region": "Apulia", + "family": "Mozzarella", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, stringy", + "rind": "leaf wrapped", + "color": "white", + "flavor": "buttery, milky", + "aroma": "fresh, milky", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Burwash Rose", + "url": "https://www.cheese.com/burwash-rose/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Stonegate, East Sussex", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, springy", + "rind": "washed", + "color": "cream", + "flavor": "creamy", + "aroma": "aromatic, floral", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Traditional Cheese Dairy" + }, + { + "cheese": "Burwood Bole", + "url": "https://www.cheese.com/burwood-bole/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Dorset", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "washed", + "color": "pale yellow", + "flavor": "lemony, nutty, sweet", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "James’s Cheese" + }, + { + "cheese": "Butte", + "url": "https://www.cheese.com/butte/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "washed", + "color": "yellow", + "flavor": "bitter, salty", + "aroma": "rich, ripe", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Buttercup", + "url": "https://www.cheese.com/buttercup/", + "milk": "cow, goat", + "country": "United States", + "region": "Colorado", + "family": "Monterey Jack", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm, open", + "rind": "waxed", + "color": "pale yellow", + "flavor": "buttery, creamy", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Haystack Mountain Creamery" + }, + { + "cheese": "Butterkase", + "url": "https://www.cheese.com/butterkase/", + "milk": "cow", + "country": "Austria, Germany", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "creamy, smooth, spreadable", + "rind": "natural", + "color": "pale yellow", + "flavor": "buttery, mild", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "butter cheese, Butterkäse", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Buttermilk Blue", + "url": "https://www.cheese.com/buttermilk-blue/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-hard, blue-veined", + "fat_content": "8 g/100g", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "piquant, tangy", + "aroma": "fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Emmi Roth USA" + }, + { + "cheese": "Buttermilk Blue Affinee", + "url": "https://www.cheese.com/buttermilk-blue-affinee/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "ivory", + "flavor": "earthy, piquant, strong", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Blue Affinee Cheese", + "alt_spellings": "Buttermilk Bleu Affinee", + "producers": "Emmi Roth USA" + }, + { + "cheese": "Buttermilk Gorgonzola", + "url": "https://www.cheese.com/buttermilk-gorgonzola/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "piquant, spicy", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Emmi Roth USA" + }, + { + "cheese": "Butternut", + "url": "https://www.cheese.com/butternut/", + "milk": "cow", + "country": "United States", + "region": "Vermont", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "buttery, nutty", + "aroma": "earthy, mushroom", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Willow Hill Farm" + }, + { + "cheese": "Buxton Blue", + "url": "https://www.cheese.com/buxton-blue/", + "milk": "cow", + "country": "England, United Kingdom", + "region": "Buxton, Derbyshire", + "family": "Blue", + "type": "soft, artisan, blue-veined", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "natural", + "color": "yellow", + "flavor": "tangy", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Byaslag", + "url": "https://www.cheese.com/byaslag/", + "milk": "yak", + "country": "Mongolia", + "region": "NA", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, mild, salty", + "aroma": "aromatic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Bûchette à la Sarriette", + "url": "https://www.cheese.com/buchette-la-sarriette/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, processed", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cabecou", + "url": "https://www.cheese.com/cabecou/", + "milk": "goat", + "country": "France", + "region": "Midi-Pyrenees", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "leaf wrapped", + "color": "white", + "flavor": "smooth, tangy", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cabecou Feuille D'Armagnac", + "url": "https://www.cheese.com/cabecou-feuille-darmagnac/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "natural", + "color": "white", + "flavor": "fruity, spicy, tangy", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Caboc", + "url": "https://www.cheese.com/caboc/", + "milk": "cow", + "country": "Scotland", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "white", + "flavor": "buttery, creamy", + "aroma": "buttery, fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Highland Fine Cheeses Limited" + }, + { + "cheese": "Cabot Clothbound", + "url": "https://www.cheese.com/cabot-clothbound/", + "milk": "cow", + "country": "United States", + "region": "Vermont", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, flaky", + "rind": "natural", + "color": "yellow", + "flavor": "nutty, savory, sweet, tangy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Cheddar Clothbound", + "alt_spellings": "NA", + "producers": "Cabot Creamery , Jasper Hill Farm" + }, + { + "cheese": "Cabrales", + "url": "https://www.cheese.com/cabrales/", + "milk": "cow", + "country": "Spain", + "region": "NA", + "family": "Blue", + "type": "semi-hard, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm", + "rind": "NA", + "color": "NA", + "flavor": "acidic, salty, sharp", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Cabrales DOP, Cabrales PDO", + "alt_spellings": "Queso de Cabrales", + "producers": "NA" + }, + { + "cheese": "Cachaille", + "url": "https://www.cheese.com/cachaille/", + "milk": "goat", + "country": "France", + "region": "Puimichel in Provence Alpes", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "wrestling, fuorte, toupina", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cacio De Roma®", + "url": "https://www.cheese.com/cacio-de-roma/", + "milk": "sheep", + "country": "Italy", + "region": "NA", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "20%", + "calcium_content": "NA", + "texture": "semi firm", + "rind": "NA", + "color": "ivory", + "flavor": "mild", + "aroma": "sweet", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Rustico Red Pepper Pecorino", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cacio di Bosco al Tartufo", + "url": "https://www.cheese.com/cacio-di-bosco-al-tartufo/", + "milk": "cow, sheep", + "country": "Italy", + "region": "Tuscany", + "family": "NA", + "type": "semi-firm, artisan", + "fat_content": "55%", + "calcium_content": "NA", + "texture": "crumbly, firm", + "rind": "NA", + "color": "ivory", + "flavor": "nutty, sour, sweet", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cooperativa Agricola IL FORTETO" + }, + { + "cheese": "Caciobarricato", + "url": "https://www.cheese.com/caciobarricato/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "Pasta filata", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "elastic, soft, stringy, supple", + "rind": "natural", + "color": "ivory", + "flavor": "pronounced, sharp, tangy", + "aroma": "clean, mild", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Caciobirraio", + "url": "https://www.cheese.com/caciobirraio/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact", + "rind": "natural", + "color": "straw", + "flavor": "bitter, subtle", + "aroma": "aromatic, toasty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Caciobufala", + "url": "https://www.cheese.com/caciobufala/", + "milk": "water buffalo", + "country": "Italy", + "region": "Campania", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact", + "rind": "NA", + "color": "ivory", + "flavor": "sweet", + "aroma": "aromatic, buttery, pleasant", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Casa Madaio" + }, + { + "cheese": "Caciocavallo", + "url": "https://www.cheese.com/caciocavallo/", + "milk": "cow", + "country": "Italy", + "region": "NA", + "family": "Pasta filata", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "elastic, firm", + "rind": "natural", + "color": "NA", + "flavor": "NA", + "aroma": "earthy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Caciocavallo di Bufala", + "url": "https://www.cheese.com/caciocavallo-di-bufala/", + "milk": "water buffalo", + "country": "Italy", + "region": "NA", + "family": "Pasta filata", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "NA", + "color": "NA", + "flavor": "savory", + "aroma": "earthy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Caciocavallo Podolico Vetus", + "url": "https://www.cheese.com/caciocavallo-podolico-vetus/", + "milk": "cow", + "country": "Italy", + "region": "NA", + "family": "Pasta filata", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "NA", + "flavor": "buttery, sweet", + "aroma": "earthy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Caciocavallo Vetus", + "alt_spellings": "NA", + "producers": "Casa Madaio" + }, + { + "cheese": "Cacioradicchio", + "url": "https://www.cheese.com/cacioradicchio/", + "milk": "", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "leaf wrapped", + "color": "white", + "flavor": "bitter, herbaceous, subtle", + "aroma": "aromatic, fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Caciotta", + "url": "https://www.cheese.com/caciotta/", + "milk": "cow, goat, sheep, water buffalo", + "country": "Italy", + "region": "NA", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, firm", + "rind": "NA", + "color": "NA", + "flavor": "mild", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Caciotta Al Tartufo", + "url": "https://www.cheese.com/caciotta-al-tartufo/", + "milk": "cow, sheep", + "country": "Italy", + "region": "Umbria, Lazio", + "family": "Caciotta", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "ivory", + "flavor": "spicy, tangy", + "aroma": "earthy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "Caciotta Al Tartufo with Black Truffles", + "producers": "NA" + }, + { + "cheese": "Cacow Belle", + "url": "https://www.cheese.com/cacow-belle/", + "milk": "cow", + "country": "United States", + "region": "Oregon", + "family": "Cheddar", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "pale yellow", + "flavor": "savory, spicy, sweet", + "aroma": "aromatic, spicy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Rogue Creamery" + }, + { + "cheese": "Caerphilly", + "url": "https://www.cheese.com/caerphilly/", + "milk": "cow", + "country": "United Kingdom, Wales", + "region": "Wales, London", + "family": "Cheddar", + "type": "hard", + "fat_content": "48%", + "calcium_content": "NA", + "texture": "crumbly, dense", + "rind": "natural", + "color": "white", + "flavor": "citrusy, mild, tangy", + "aroma": "fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Duckett's Caerphilly, Duckett's Aged Caerphilly", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cahill's Irish Porter Cheddar", + "url": "https://www.cheese.com/cahills-irish-porter-cheddar/", + "milk": "cow", + "country": "Ireland", + "region": "NA", + "family": "Cheddar", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "NA", + "color": "brownish yellow", + "flavor": "full-flavored, tangy", + "aroma": "rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Original Irish Porter", + "alt_spellings": "NA", + "producers": "Cahills Farm Cheese" + }, + { + "cheese": "Cahill's Whiskey Cheese", + "url": "https://www.cheese.com/cahills-whiskey-cheese/", + "milk": "cow", + "country": "Ireland", + "region": "Co Limerick", + "family": "Cheddar", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "waxed", + "color": "straw", + "flavor": "butterscotch, creamy", + "aroma": "pecan, whiskey", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Cahills Original Whiskey cheese", + "alt_spellings": "Cahill's Irish Whiskey Cheese", + "producers": "Cahills Farm Cheese" + }, + { + "cheese": "Cairnsmore", + "url": "https://www.cheese.com/cairnsmore/", + "milk": "sheep", + "country": "Scotland", + "region": "Wigtownshire", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, open, smooth", + "rind": "natural", + "color": "ivory", + "flavor": "burnt caramel, nutty, sweet", + "aroma": "aromatic", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Galloway Farmhouse Cheese" + }, + { + "cheese": "Calcagno", + "url": "https://www.cheese.com/calcagno/", + "milk": "sheep", + "country": "Italy", + "region": "Sardinia & Campania", + "family": "Pecorino", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, flaky, smooth", + "rind": "natural", + "color": "pale yellow", + "flavor": "herbaceous, savory, sweet", + "aroma": "herbal", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Calcagno Pecorino", + "producers": "Casa Madaio" + }, + { + "cheese": "Calenzana (Calinzanincu)", + "url": "https://www.cheese.com/calenzana/", + "milk": "goat, sheep", + "country": "France", + "region": "Upper Corsica", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "strong", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Calinzanincu", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "California Crottin", + "url": "https://www.cheese.com/california-crottin/", + "milk": "goat", + "country": "United States", + "region": "NA", + "family": "Brie", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, firm", + "rind": "mold ripened", + "color": "cream", + "flavor": "earthy, full-flavored, tangy", + "aroma": "mushroom", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Redwood Hill Farm & Creamery" + }, + { + "cheese": "cambazola", + "url": "https://www.cheese.com/cambazola/", + "milk": "cow", + "country": "Germany", + "region": "NA", + "family": "Blue", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cambozola Grand Noir", + "url": "https://www.cheese.com/cambozola-grand-noir/", + "milk": "cow", + "country": "Germany", + "region": "Allgäu", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "waxed", + "color": "pale yellow", + "flavor": "sharp, sweet", + "aroma": "aromatic", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Cambozola Black Label, Cambozola Classic, Cambozola Finesse, Cambozola Balance, Cambozola", + "alt_spellings": "NA", + "producers": "Käserei Champignon" + }, + { + "cheese": "Cambus o’May", + "url": "https://www.cheese.com/cambus-omay/", + "milk": "cow", + "country": "Scotland", + "region": "Aberdeenshire", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "cloth wrapped", + "color": "cream", + "flavor": "sharp", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Cambus O’May Cheese Company" + }, + { + "cheese": "Camembert", + "url": "https://www.cheese.com/camembert/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "Camembert", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth, soft-ripened", + "rind": "NA", + "color": "pale yellow", + "flavor": "sweet", + "aroma": "buttery, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Camembert Le Châtelain, Camembert St Loup, Camembert Le Chatelain", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Camembert Calvados", + "url": "https://www.cheese.com/camembert-calvados/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, springy", + "rind": "NA", + "color": "yellow", + "flavor": "savory", + "aroma": "aromatic, fruity", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Camembert de Normandie", + "url": "https://www.cheese.com/camembert-de-normandie/", + "milk": "cow", + "country": "France", + "region": "Normandy", + "family": "Camembert", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "creamy", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Camembert de Normandie AOC, Camembert de Normandie PDO", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Camembert de Portneuf", + "url": "https://www.cheese.com/camembert-de-portneuf/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Camembert", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft-ripened, supple", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "buttery, creamy", + "aroma": "aromatic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Alexis de Portneuf" + }, + { + "cheese": "Camembert des Camarades", + "url": "https://www.cheese.com/camembert-des-camarades/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Camembert", + "type": "soft, soft-ripened", + "fat_content": "30%", + "calcium_content": "NA", + "texture": "creamy, soft, soft-ripened", + "rind": "bloomy", + "color": "ivory", + "flavor": "buttery, nutty, subtle, sweet", + "aroma": "aromatic, fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Cameo", + "url": "https://www.cheese.com/cameo/", + "milk": "goat", + "country": "United States", + "region": "California", + "family": "Camembert", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, soft", + "rind": "bloomy", + "color": "white", + "flavor": "creamy, smooth", + "aroma": "floral, goaty, herbal", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Redwood Hill Farm & Creamery" + }, + { + "cheese": "Campfire", + "url": "https://www.cheese.com/campfire/", + "milk": "cow", + "country": "United States", + "region": "Port Townsend", + "family": "Monterey Jack", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, creamy, firm, open, supple", + "rind": "natural", + "color": "ivory", + "flavor": "buttery, smokey , sweet", + "aroma": "smokey", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Smoked Washington Jack", + "alt_spellings": "NA", + "producers": "Mt. Townsend Creamery" + }, + { + "cheese": "Campi", + "url": "https://www.cheese.com/campi/", + "milk": "water buffalo", + "country": "Italy", + "region": "Lombardy", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "elastic, firm", + "rind": "natural", + "color": "ivory", + "flavor": "spicy, sweet", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Azienda Agricola Gritti Bruno E Alfio S.s. Societa Agricola" + }, + { + "cheese": "Cana de Cabra", + "url": "https://www.cheese.com/cana-de-cabra/", + "milk": "goat", + "country": "Spain", + "region": "Murcia", + "family": "NA", + "type": "semi-soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "bloomy", + "color": "ivory", + "flavor": "creamy, mild", + "aroma": "mild, mushroom", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "MitiCana de Cabra, MitiCaña® de Cabra", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Canadian Cheddar", + "url": "https://www.cheese.com/canadian-cheddar/", + "milk": "cow, goat, sheep", + "country": "Canada", + "region": "Ontario", + "family": "Cheddar", + "type": "hard, artisan, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, open", + "rind": "natural", + "color": "yellow", + "flavor": "full-flavored, milky, salty, sharp", + "aroma": "fresh, rich, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Balderson Cheese Company" + }, + { + "cheese": "Canarejal", + "url": "https://www.cheese.com/canarejal/", + "milk": "sheep", + "country": "Spain", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "gooey, runny, smooth", + "rind": "NA", + "color": "pale yellow", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Canastra cheese", + "url": "https://www.cheese.com/canastra-cheese/", + "milk": "cow", + "country": "Brazil", + "region": "Serra da Canastra, Minas Gerais state", + "family": "NA", + "type": "artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "yellow", + "flavor": "spicy", + "aroma": "aromatic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Queijo Canastra", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cancoillotte (Cancoyotte)", + "url": "https://www.cheese.com/cancoillotte-cancoyotte/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Cancoyotte", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Canestrato", + "url": "https://www.cheese.com/canestrato/", + "milk": "goat, sheep", + "country": "Italy", + "region": "Moliterno", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, flaky", + "rind": "NA", + "color": "straw", + "flavor": "full-flavored", + "aroma": "spicy, strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Canestrato di Moliterno, Canestrato di Moliterno IGP", + "alt_spellings": "NA", + "producers": "Casa Madaio" + }, + { + "cheese": "Cantal", + "url": "https://www.cheese.com/cantal/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Cantal jeune, Cantal entre-deux, Cantal vieux", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cap Cressy", + "url": "https://www.cheese.com/cap-cressy/", + "milk": "goat", + "country": "Canada, Italy", + "region": "Lombardy", + "family": "NA", + "type": "semi-hard, artisan, smear-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, dense", + "rind": "washed", + "color": "pale yellow", + "flavor": "mellow, savory, sweet", + "aroma": "lactic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fifth Town Artisan Cheese" + }, + { + "cheese": "Cape Vessey", + "url": "https://www.cheese.com/cape-vessey/", + "milk": "goat", + "country": "Canada", + "region": "Prince Edward County, Ontario", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "chewy, firm", + "rind": "washed", + "color": "pale yellow", + "flavor": "acidic, creamy, subtle, sweet", + "aroma": "goaty, rich, strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Capra al Fieno", + "url": "https://www.cheese.com/capra-al-fieno/", + "milk": "goat", + "country": "Italy", + "region": "Treviso, Veneto", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "ivory", + "flavor": "strong, woody", + "aroma": "floral, grassy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Moro Latteria di Moro Sergio" + }, + { + "cheese": "Capra al Pepe", + "url": "https://www.cheese.com/capra-al-pepe/", + "milk": "goat", + "country": "Italy", + "region": "Treviso, Veneto", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "natural", + "color": "pale yellow", + "flavor": "mild, spicy", + "aroma": "spicy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Moro Latteria di Moro Sergio" + }, + { + "cheese": "Capra Nouveau", + "url": "https://www.cheese.com/capra-nouveau/", + "milk": "goat", + "country": "England", + "region": "Chelmarsh, Bridgnorth, Shropshire", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "ivory", + "flavor": "creamy, herbaceous, nutty, smooth, sweet", + "aroma": "herbal, nutty, rich, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Capra Baby", + "alt_spellings": "NA", + "producers": "Brock Hall Farm Dairy" + }, + { + "cheese": "Caprano", + "url": "https://www.cheese.com/caprano/", + "milk": "goat", + "country": "Canada", + "region": "Quebec", + "family": "NA", + "type": "hard, semi-hard", + "fat_content": "26%", + "calcium_content": "NA", + "texture": "crumbly, open, smooth", + "rind": "natural", + "color": "pale yellow", + "flavor": "pronounced", + "aroma": "goaty, strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Aged Caprano", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Capraricca", + "url": "https://www.cheese.com/capraricca/", + "milk": "goat", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, runny, supple", + "rind": "bloomy", + "color": "white", + "flavor": "sweet", + "aroma": "fresh, goaty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Caprese di Bufala", + "url": "https://www.cheese.com/caprese-di-bufala/", + "milk": "water buffalo", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "oily, smooth", + "rind": "natural", + "color": "straw", + "flavor": "herbaceous, mild, subtle, vegetal", + "aroma": "aromatic, fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Capri Blu", + "url": "https://www.cheese.com/capri-blu/", + "milk": "goat", + "country": "Canada, Italy", + "region": "Lombardy", + "family": "Blue", + "type": "soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, subtle, sweet", + "aroma": "goaty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fifth Town Artisan Cheese" + }, + { + "cheese": "Capriago", + "url": "https://www.cheese.com/capriago/", + "milk": "goat", + "country": "United States", + "region": "Sebastopol, California", + "family": "NA", + "type": "hard, artisan, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "washed", + "color": "NA", + "flavor": "nutty, sweet", + "aroma": "nutty, spicy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Bohemian Creamery" + }, + { + "cheese": "Caprice", + "url": "https://www.cheese.com/caprice/", + "milk": "goat", + "country": "Canada, Italy", + "region": "Lombardy", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "white", + "flavor": "subtle", + "aroma": "goaty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fifth Town Artisan Cheese" + }, + { + "cheese": "Caprice des Dieux", + "url": "https://www.cheese.com/caprice-des-dieux/", + "milk": "cow", + "country": "France", + "region": "Illoud (Haute-Marne)", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "60%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "bloomy", + "color": "white", + "flavor": "buttery, nutty, smooth", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Savencia Fromage & Dairy" + }, + { + "cheese": "Capricious", + "url": "https://www.cheese.com/capricious/", + "milk": "goat", + "country": "United States", + "region": "Petaluma, California", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "mold ripened", + "color": "ivory", + "flavor": "caramel, nutty", + "aroma": "nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Achadinha Cheese Company" + }, + { + "cheese": "Capricorn Somerset Goats Cheese", + "url": "https://www.cheese.com/capricorn-somerset-goats-cheese/", + "milk": "goat", + "country": "England", + "region": "Somerset", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, firm, smooth", + "rind": "bloomy", + "color": "white", + "flavor": "nutty", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Lactalis McLelland Ltd" + }, + { + "cheese": "Capriny", + "url": "https://www.cheese.com/capriny/", + "milk": "goat", + "country": "Canada", + "region": "Quebec", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "rindless", + "color": "white", + "flavor": "creamy, mild, sharp, sour", + "aroma": "goaty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "Capriny with Fine Herbs, Capriny Pepper", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Capriole Banon", + "url": "https://www.cheese.com/capriole-banon/", + "milk": "goat", + "country": "United States", + "region": "Greenville, Indiana", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense", + "rind": "leaf wrapped", + "color": "pale yellow", + "flavor": "citrusy, strong, sweet", + "aroma": "aromatic, fresh, goaty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "O'Banon", + "alt_spellings": "NA", + "producers": "Capriole Goat Cheese" + }, + { + "cheese": "Caprotto", + "url": "https://www.cheese.com/caprotto/", + "milk": "goat", + "country": "Italy", + "region": "Campania", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact", + "rind": "natural", + "color": "straw", + "flavor": "sharp, spicy", + "aroma": "floral, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Casa Madaio" + }, + { + "cheese": "Carabiner", + "url": "https://www.cheese.com/carabiner/", + "milk": "cow", + "country": "United States", + "region": "California", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, firm", + "rind": "natural", + "color": "yellow", + "flavor": "nutty, salty, sweet", + "aroma": "earthy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Weirauch Farm and Creamery" + }, + { + "cheese": "Caravane", + "url": "https://www.cheese.com/caravane/", + "milk": "camel", + "country": "Mauritania", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "22%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "bloomy", + "color": "white", + "flavor": "salty, sweet", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Camelbert", + "alt_spellings": "NA", + "producers": "Tiviski" + }, + { + "cheese": "Carboncino", + "url": "https://www.cheese.com/carboncino/", + "milk": "cow, goat, sheep", + "country": "Italy", + "region": "NA", + "family": "NA", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, gooey, runny, soft", + "rind": "NA", + "color": "white", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cardo", + "url": "https://www.cheese.com/cardo/", + "milk": "goat", + "country": "England, Scotland, Wales", + "region": "Timsbury, Somerset", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, open, runny", + "rind": "washed", + "color": "ivory", + "flavor": "floral, pungent, savory", + "aroma": "pungent", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Carlina", + "url": "https://www.cheese.com/carlina/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "bloomy", + "color": "white", + "flavor": "subtle", + "aroma": "fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Carlow", + "url": "https://www.cheese.com/carlow/", + "milk": "cow", + "country": "Ireland", + "region": "County Carlow", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, smooth", + "rind": "waxed", + "color": "golden yellow", + "flavor": "mild, savory, spicy", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Elizabeth Bradley @ Carlow Cheese" + }, + { + "cheese": "Carmody", + "url": "https://www.cheese.com/carmody/", + "milk": "cow", + "country": "United States", + "region": "California", + "family": "Gorgonzola", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "cream", + "flavor": "buttery, caramel, sweet", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Bellwether Farms" + }, + { + "cheese": "Carnia Altobut", + "url": "https://www.cheese.com/carnia-altobut/", + "milk": "cow", + "country": "Italy", + "region": "Carnia", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, elastic, firm, open", + "rind": "natural", + "color": "pale yellow", + "flavor": "pronounced, strong, subtle", + "aroma": "aromatic, floral", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Caronzola", + "url": "https://www.cheese.com/caronzola/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Blue", + "type": "soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "bloomy", + "color": "ivory", + "flavor": "mild", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Carr Valley Glacier Wildfire Blue", + "url": "https://www.cheese.com/carr-valley-glacier-wildfire-blue/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Blue", + "type": "semi-soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, soft", + "rind": "rindless", + "color": "ivory", + "flavor": "creamy", + "aroma": "clean", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Carr Valley Cheese Company" + }, + { + "cheese": "Carre de l'Est", + "url": "https://www.cheese.com/carre-de-lest/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "washed", + "color": "pale yellow", + "flavor": "smokey", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Carrick", + "url": "https://www.cheese.com/carrick/", + "milk": "cow", + "country": "Scotland", + "region": "NA", + "family": "NA", + "type": "hard, organic", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "edible", + "color": "cream", + "flavor": "citrusy", + "aroma": "earthy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Ethical Dairy" + }, + { + "cheese": "Carrot Rebel", + "url": "https://www.cheese.com/carrot-rebel/", + "milk": "cow", + "country": "Austria", + "region": "Sulzberg", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "orange", + "flavor": "creamy, fruity, nutty, sweet", + "aroma": "aromatic, fruity, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Rüblirebell", + "alt_spellings": "NA", + "producers": "Sulzberger Käserebellen Sennerei GmbH" + }, + { + "cheese": "Carrowholly", + "url": "https://www.cheese.com/carrowholly/", + "milk": "cow", + "country": "Ireland", + "region": "Co. Mayo", + "family": "Gouda", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, crystalline, firm, smooth", + "rind": "waxed", + "color": "yellow", + "flavor": "acidic, crunchy, fruity, herbaceous, mild, spicy", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Carrowholly Original, Carrowholly \"Old Russet\", Carrowholly Cheese Flavoured, Carrowholly Nettle, Carrowholly Pepper, Carrowholly Garlic & Chive", + "alt_spellings": "NA", + "producers": "Carrowholly Cheese" + }, + { + "cheese": "Casatica", + "url": "https://www.cheese.com/casatica/", + "milk": "water buffalo", + "country": "Italy", + "region": "Lombardy", + "family": "NA", + "type": "semi-soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft-ripened", + "rind": "bloomy", + "color": "white", + "flavor": "creamy, subtle", + "aroma": "aromatic, milky, pleasant, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Casatica di Bufala", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Casciotta di Urbino", + "url": "https://www.cheese.com/casciotta-di-urbino/", + "milk": "cow, sheep", + "country": "Italy", + "region": "Pesaro-Urbino", + "family": "Caciotta", + "type": "semi-soft, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, crumbly, open", + "rind": "waxed", + "color": "straw", + "flavor": "acidic, milky, nutty", + "aroma": "grassy, pleasant", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Casciotta di Urbino D.O.P, Casciotta di Urbino PDO, Casciotta d’Urbino", + "producers": "Caseificio Val D’Apsa" + }, + { + "cheese": "Cashel Blue", + "url": "https://www.cheese.com/cashel-blue/", + "milk": "cow", + "country": "Ireland", + "region": "NA", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "blue", + "flavor": "tangy", + "aroma": "sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "J&L Grubb Ltd." + }, + { + "cheese": "Cashew Nut Cream Cheese", + "url": "https://www.cheese.com/cashew-nut-cream-cheese/", + "milk": "", + "country": "United States", + "region": "Brooklyn NY", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, soft, spreadable", + "rind": "NA", + "color": "white", + "flavor": "creamy, nutty, sweet", + "aroma": "clean, fresh, nutty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Cream Cashew Nut Cheese with Chives, Cream Cashew Nut Cheese with Tomato-Turmeric-Garlic", + "alt_spellings": "Plain Cream Cashew Nut Cheese", + "producers": "Dr. Cow Tree Nut Cheese" + }, + { + "cheese": "Castelmagno", + "url": "https://www.cheese.com/castelmagno/", + "milk": "cow, goat, sheep", + "country": "Italy", + "region": "Piedmont", + "family": "Blue", + "type": "semi-hard", + "fat_content": "34.2 g/100g", + "calcium_content": "4768 mg/100g", + "texture": "crumbly, dense, grainy", + "rind": "washed", + "color": "ivory", + "flavor": "sharp, spicy, strong", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Castelmagno PDO, Castelmagno di alpeggio, Castelmagno prodotto della montagna", + "producers": "NA" + }, + { + "cheese": "Castelo Branco", + "url": "https://www.cheese.com/castelo-branco/", + "milk": "goat, sheep", + "country": "Portugal", + "region": "Castelo Branco, Fundão and Idanha-a-Nova", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "brittle, creamy, crumbly, firm, smooth", + "rind": "natural", + "color": "pale yellow", + "flavor": "sour, spicy, tangy", + "aroma": "aromatic", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Queijo de Castelo Branco", + "producers": "NA" + }, + { + "cheese": "Castigliano", + "url": "https://www.cheese.com/castigliano/", + "milk": "cow, goat, sheep", + "country": "Spain", + "region": "Castile-Leon", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "yellow", + "flavor": "acidic, salty, spicy", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Queso Castellano", + "producers": "NA" + }, + { + "cheese": "Castillon Frais", + "url": "https://www.cheese.com/castillon-frais/", + "milk": "sheep", + "country": "France", + "region": "NA", + "family": "NA", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, open", + "rind": "rindless", + "color": "white", + "flavor": "citrusy, creamy, floral, herbaceous", + "aroma": "clean, floral, fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Fresh Castillon", + "alt_spellings": "NA", + "producers": "David and Fanette Ladu" + }, + { + "cheese": "Castle Blue", + "url": "https://www.cheese.com/castle-blue/", + "milk": "cow", + "country": "Canada", + "region": "British Columbia", + "family": "Brie", + "type": "semi-soft, blue-veined, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy", + "rind": "natural", + "color": "cream", + "flavor": "creamy, piquant, sweet", + "aroma": "earthy, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Farm House Natural Cheeses" + }, + { + "cheese": "Casu marzu", + "url": "https://www.cheese.com/casu-marzu/", + "milk": "sheep", + "country": "France, Italy", + "region": "Sardinia (Italy), Southern Corsica (France)", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft-ripened", + "rind": "natural", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "casu modde, casu cundídu, casu fràzigu, formaggio marcio, Casu martzu, Casgiu merzu", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cathelain", + "url": "https://www.cheese.com/cathelain/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "NA", + "color": "NA", + "flavor": "sour", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Catupiry", + "url": "https://www.cheese.com/catupiry/", + "milk": "cow", + "country": "Brazil", + "region": "NA", + "family": "NA", + "type": "soft, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, spreadable", + "rind": "NA", + "color": "white", + "flavor": "creamy, mild, milky", + "aroma": "fresh, milky", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Catupiry Original, Catupiry Light", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cave Aged Marisa", + "url": "https://www.cheese.com/cave-aged-marisa/", + "milk": "sheep", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "sweet, tangy", + "aroma": "sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Carr Valley Cheese Company" + }, + { + "cheese": "Cave Rebel", + "url": "https://www.cheese.com/cave-rebel/", + "milk": "cow", + "country": "Austria", + "region": "Sulzberg", + "family": "NA", + "type": "hard, artisan", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "compact, crumbly, firm, open", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, grassy", + "aroma": "aromatic, nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Höhlenrebell", + "alt_spellings": "NA", + "producers": "Sulzberger Käserebellen Sennerei GmbH" + }, + { + "cheese": "Caveman Blue", + "url": "https://www.cheese.com/caveman-blue/", + "milk": "cow", + "country": "United States", + "region": "Oregon", + "family": "Blue", + "type": "semi-hard, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense", + "rind": "natural", + "color": "pale yellow", + "flavor": "buttery, mushroomy", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Rogue Creamery" + }, + { + "cheese": "Caws Cenarth Black Sheep", + "url": "https://www.cheese.com/caws-cenarth-black-sheep/", + "milk": "sheep", + "country": "Wales", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery", + "rind": "NA", + "color": "cream", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Caws Penhelyg Abaty", + "url": "https://www.cheese.com/caws-penhelyg-abaty/", + "milk": "cow", + "country": "Wales", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "gooey", + "rind": "NA", + "color": "white", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cayuga Blue", + "url": "https://www.cheese.com/cayuga-blue/", + "milk": "goat", + "country": "United States", + "region": "NY", + "family": "Blue", + "type": "semi-hard, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact", + "rind": "bloomy", + "color": "ivory", + "flavor": "creamy", + "aroma": "mild, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Lively Run Goat Dairy" + }, + { + "cheese": "Cello Thick & Smooth Mascarpone", + "url": "https://www.cheese.com/cello-thick-smooth-mascarpone/", + "milk": "cow", + "country": "United States", + "region": "NA", + "family": "NA", + "type": "fresh soft, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, firm, smooth", + "rind": "rindless", + "color": "white", + "flavor": "creamy, milky, sweet", + "aroma": "fresh, milky", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Schuman Cheese" + }, + { + "cheese": "Celtic Promise", + "url": "https://www.cheese.com/celtic-promise/", + "milk": "cow", + "country": "United Kingdom", + "region": "Ceredigion", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "washed", + "color": "yellow", + "flavor": "full-flavored", + "aroma": "pungent", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Teifi Farmhouse Cheese" + }, + { + "cheese": "Cendre d'Olivet", + "url": "https://www.cheese.com/cendre-dolivet/", + "milk": "cow", + "country": "France", + "region": "Centre-Val de Loire", + "family": "NA", + "type": "soft, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "smooth, supple", + "rind": "natural", + "color": "ivory", + "flavor": "mild, smooth", + "aroma": "earthy, pungent", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Olivet Cendre", + "producers": "NA" + }, + { + "cheese": "Cendré des Prés", + "url": "https://www.cheese.com/cendre-des-pres/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Brie", + "type": "soft, artisan, soft-ripened", + "fat_content": "27%", + "calcium_content": "NA", + "texture": "buttery, creamy, soft", + "rind": "bloomy", + "color": "ivory", + "flavor": "acidic, buttery, creamy, fruity, mushroomy", + "aroma": "aromatic, buttery, floral, lactic, mushroom, woody", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fromagerie Domaine Féodal inc." + }, + { + "cheese": "Cerney Pyramid", + "url": "https://www.cheese.com/cerney-pyramid/", + "milk": "goat", + "country": "England, Great Britain, United Kingdom", + "region": "Cotswolds", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "white", + "flavor": "citrusy, lemony, mild, sweet", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Chabichou du Poitou", + "url": "https://www.cheese.com/chabichou-du-poitou/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "white", + "flavor": "salty, sweet, tangy", + "aroma": "goaty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Chabichou du Poitou AOP, Chabichou du Poitou AOC", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Chabis de Gatine", + "url": "https://www.cheese.com/chabis-de-gatine/", + "milk": "goat", + "country": "France", + "region": "Poitou-Charentes", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, smooth", + "rind": "natural", + "color": "white", + "flavor": "salty, sharp", + "aroma": "goaty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Challerhocker", + "url": "https://www.cheese.com/challerhocker/", + "milk": "cow", + "country": "Switzerland", + "region": "St. Gallen (canton), Tufertschwil", + "family": "Swiss Cheese", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense, smooth", + "rind": "washed", + "color": "pale yellow", + "flavor": "caramel, nutty, salty, sweet", + "aroma": "nutty, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Käserei Tufertschwil" + }, + { + "cheese": "Champignon de Luxe Garlic", + "url": "https://www.cheese.com/champignon-de-luxe-garlic/", + "milk": "cow", + "country": "Germany", + "region": "Allgäu", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "cream", + "flavor": "garlicky, herbaceous", + "aroma": "herbal, spicy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Champignon de Luxe Knoblauch, Champignon Garlic", + "alt_spellings": "NA", + "producers": "Käserei Champignon" + }, + { + "cheese": "Champignon de Luxe Pepper", + "url": "https://www.cheese.com/champignon-de-luxe-pepper/", + "milk": "cow", + "country": "Germany", + "region": "Allgäu", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "cream", + "flavor": "creamy, sharp", + "aroma": "spicy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Champignon Pepper, Champignon de Luxe Pfeffer", + "alt_spellings": "NA", + "producers": "Käserei Champignon" + }, + { + "cheese": "Champignon Mushrooom", + "url": "https://www.cheese.com/champignon-mushrooom/", + "milk": "cow", + "country": "Germany", + "region": "Allgäu", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "cream", + "flavor": "creamy, mushroomy", + "aroma": "fresh, mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Champignon Mushroom Mini", + "alt_spellings": "NA", + "producers": "Käserei Champignon" + }, + { + "cheese": "Chaource", + "url": "https://www.cheese.com/chaource/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, runny", + "rind": "NA", + "color": "cream", + "flavor": "creamy", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Chapman's Pasture", + "url": "https://www.cheese.com/chapmans-pasture/", + "milk": "cow", + "country": "United States", + "region": "Vermont", + "family": "Parmesan", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "grainy", + "rind": "washed", + "color": "ivory", + "flavor": "sharp, sweet", + "aroma": "strong, sweet", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Parish Hill Creamery" + }, + { + "cheese": "Charolais", + "url": "https://www.cheese.com/charolais/", + "milk": "goat", + "country": "France", + "region": "Bourgogne", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "NA", + "color": "NA", + "flavor": "acidic, salty, sweet", + "aroma": "subtle", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Charoles", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Chaumes", + "url": "https://www.cheese.com/chaumes/", + "milk": "cow", + "country": "France", + "region": "St Antoine", + "family": "NA", + "type": "soft, semi-soft, soft-ripened", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "creamy, smooth, springy, supple", + "rind": "washed", + "color": "pale yellow", + "flavor": "full-flavored, nutty", + "aroma": "aromatic, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Chaumes la Crème", + "producers": "NA" + }, + { + "cheese": "Chavroux", + "url": "https://www.cheese.com/chavroux/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "12%", + "calcium_content": "NA", + "texture": "creamy, spreadable", + "rind": "NA", + "color": "white", + "flavor": "creamy, mild", + "aroma": "fresh, goaty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Checkerboard Cheddar", + "url": "https://www.cheese.com/checkerboard-cheddar/", + "milk": "cow", + "country": "United States", + "region": "NY", + "family": "Cheddar", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "sharp, sweet, tangy", + "aroma": "pleasant", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Muranda Cheese Company" + }, + { + "cheese": "Cheddar", + "url": "https://www.cheese.com/cheddar/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "Cheddar", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact", + "rind": "NA", + "color": "pale yellow", + "flavor": "creamy, sharp", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cheddar LaDiDa Lavender", + "url": "https://www.cheese.com/cheddar-ladida-lavender/", + "milk": "cow", + "country": "United States", + "region": "Oregon", + "family": "Cheddar", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "white", + "flavor": "herbaceous, savory, subtle", + "aroma": "earthy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "La Di Da Lavender", + "producers": "Rogue Creamery" + }, + { + "cheese": "Cheddar with Irish Porter", + "url": "https://www.cheese.com/cheddar-with-irish-porter/", + "milk": "cow", + "country": "Ireland", + "region": "Kilmallock County Limerick", + "family": "Cheddar", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "NA", + "color": "pale yellow", + "flavor": "fruity, tangy", + "aroma": "pungent, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Irish Porter", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cheddar with Red Wine", + "url": "https://www.cheese.com/cheddar-with-red-wine/", + "milk": "cow", + "country": "Ireland", + "region": "Kilmallock County Limerick", + "family": "Cheddar", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "NA", + "color": "pale yellow", + "flavor": "fruity, tangy", + "aroma": "fruity, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Red Wine Cheddar", + "alt_spellings": "NA", + "producers": "J.O.D. Foods" + }, + { + "cheese": "Cheese Curds", + "url": "https://www.cheese.com/cheese-curds/", + "milk": "", + "country": "Canada, India, United States", + "region": "NA", + "family": "Cheddar", + "type": "fresh firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, springy", + "rind": "natural", + "color": "white", + "flavor": "mild, milky", + "aroma": "fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Squeaky Cheese, cheeseballs, paneer, Boivin Cheddar Curds", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Chelsea Blue", + "url": "https://www.cheese.com/chelsea-blue/", + "milk": "", + "country": "Australia", + "region": "Mornington Peninsula, Melbourne", + "family": "Blue", + "type": "artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "NA", + "color": "NA", + "flavor": "nutty, salty, sweet", + "aroma": "nutty, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "BoatShed Cheese" + }, + { + "cheese": "Cherni Vit", + "url": "https://www.cheese.com/cherni-vit/", + "milk": "sheep", + "country": "Bulgaria", + "region": "Central Balkan Mountains", + "family": "NA", + "type": "soft, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft", + "rind": "mold ripened", + "color": "green", + "flavor": "nutty, sharp", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cherokee Rose", + "url": "https://www.cheese.com/cherokee-rose/", + "milk": "cow", + "country": "United States", + "region": "Georgia", + "family": "Raclette", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, soft", + "rind": "natural", + "color": "pale yellow", + "flavor": "buttery, nutty, sweet, tangy", + "aroma": "fresh, milky", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Nature's Harmony Farm" + }, + { + "cheese": "Cheshire", + "url": "https://www.cheese.com/cheshire/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dense", + "rind": "cloth wrapped", + "color": "orange", + "flavor": "earthy", + "aroma": "grassy, spicy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Appleby's Cheshire", + "alt_spellings": "NA", + "producers": "Appleby's" + }, + { + "cheese": "Chevre en Marinade", + "url": "https://www.cheese.com/chevre-en-marinade/", + "milk": "goat", + "country": "United States", + "region": "Colorado", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, firm, oily", + "rind": "rindless", + "color": "white", + "flavor": "garlicky, herbaceous, spicy", + "aroma": "aromatic, pungent", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Haystack Mountain Creamery" + }, + { + "cheese": "Chevre Log", + "url": "https://www.cheese.com/chevre-log/", + "milk": "goat", + "country": "United States", + "region": "California", + "family": "NA", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, smooth, spreadable", + "rind": "rindless", + "color": "white", + "flavor": "citrusy, creamy", + "aroma": "fresh, mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cypress Grove Chevre, Goat Lady Dairy" + }, + { + "cheese": "Chevrotin des Aravis", + "url": "https://www.cheese.com/chevrotin-des-aravis/", + "milk": "goat", + "country": "France", + "region": "Haute-Savoie / Upper Savoy", + "family": "NA", + "type": "soft, artisan, brined", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "pale yellow", + "flavor": "full-flavored, herbaceous, sweet", + "aroma": "aromatic, floral, goaty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Chhurpi", + "url": "https://www.cheese.com/chhurpi/", + "milk": "cow, yak", + "country": "China, Nepal, Tibet", + "region": "NA", + "family": "Cottage", + "type": "soft, hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense", + "rind": "natural", + "color": "pale yellow", + "flavor": "tangy", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Durkha, Chhur singba, Sherkam, Chhur mingba", + "alt_spellings": "Churpi", + "producers": "NA" + }, + { + "cheese": "Childwickbury", + "url": "https://www.cheese.com/childwickbury/", + "milk": "goat", + "country": "England, Great Britain, United Kingdom", + "region": "Odell, Bedfordshire", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "white", + "flavor": "citrusy, lemony, mild, milky", + "aroma": "floral, fresh, mild, milky", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Childwickbury Estate" + }, + { + "cheese": "Chile Jack", + "url": "https://www.cheese.com/chile-jack/", + "milk": "goat", + "country": "United States", + "region": "Colorado", + "family": "Monterey Jack", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "waxed", + "color": "cream", + "flavor": "creamy, spicy, subtle, tangy", + "aroma": "mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Haystack Mountain Creamery" + }, + { + "cheese": "Chilli Caciotta", + "url": "https://www.cheese.com/chile-caciotta/", + "milk": "cow, sheep", + "country": "Italy", + "region": "NA", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "NA", + "flavor": "spicy", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Caciotta Ancho Chile, Caciotta Mexican Marigold Mint, Caciotta Basil, Chile Caciotta", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Chimney Rock", + "url": "https://www.cheese.com/chimney-rock/", + "milk": "cow", + "country": "United States", + "region": "California", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "earthy, piquant, savory", + "aroma": "fruity, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cowgirl Creamery" + }, + { + "cheese": "Chiriboga Blue", + "url": "https://www.cheese.com/chiriboga-blue/", + "milk": "cow", + "country": "Germany", + "region": "Allgau", + "family": "Blue", + "type": "semi-soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense, smooth, spreadable", + "rind": "mold ripened", + "color": "cream", + "flavor": "buttery, grassy, mild, sweet", + "aroma": "mild", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Chocolate Lab", + "url": "https://www.cheese.com/chocolate-lab/", + "milk": "cow", + "country": "United States", + "region": "Fairview", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "washed", + "color": "pale yellow", + "flavor": "pungent, sharp, sweet", + "aroma": "rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Looking Glass Creamery" + }, + { + "cheese": "Chocolate Stout Cheddar", + "url": "https://www.cheese.com/chocolate-stout-cheddar/", + "milk": "cow", + "country": "United States", + "region": "Oregon", + "family": "Cheddar", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "savory, sweet, tangy", + "aroma": "buttery", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Rogue Creamery" + }, + { + "cheese": "Chontaleno", + "url": "https://www.cheese.com/chontaleno/", + "milk": "cow", + "country": "Mexico", + "region": "NA", + "family": "Parmesan", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "white", + "flavor": "salty", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Chontaleno Ahumado", + "producers": "Peluso Cheese" + }, + { + "cheese": "Chorlton Blue Cheshire", + "url": "https://www.cheese.com/chorlton-blue-cheshire/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Cheshire", + "family": "Blue", + "type": "semi-soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "citrusy, lemony, salty", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Chorlton Cheshire Cheese" + }, + { + "cheese": "Chura Kampo", + "url": "https://www.cheese.com/chura-kampo/", + "milk": "yak", + "country": "China, Tibet", + "region": "Tibet", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, dry, firm", + "rind": "natural", + "color": "NA", + "flavor": "NA", + "aroma": "aromatic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "chura loenpa , ser", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Château de Versailles", + "url": "https://www.cheese.com/chateau-de-versailles/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, runny, soft, soft-ripened", + "rind": "bloomy", + "color": "ivory", + "flavor": "buttery, creamy", + "aroma": "pungent", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Tre Stelle" + }, + { + "cheese": "Chèvre", + "url": "https://www.cheese.com/chevre/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "NA", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "white", + "flavor": "tangy", + "aroma": "goaty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Goat cheese, Chevre, Chèvre", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Chèvre des neiges", + "url": "https://www.cheese.com/chevre-des-neiges/", + "milk": "cow, goat", + "country": "Canada", + "region": "Quebec", + "family": "NA", + "type": "fresh soft", + "fat_content": "24%", + "calcium_content": "NA", + "texture": "soft, spreadable, supple", + "rind": "rindless", + "color": "white", + "flavor": "fruity, mild, nutty", + "aroma": "aromatic, fresh, fruity", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "Chèvre des neiges coconut, Chèvre des neiges fig & orange", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Cilentano ai fichi", + "url": "https://www.cheese.com/cilentano-ai-fichi/", + "milk": "buffalo, cow, sheep", + "country": "Italy", + "region": "Calabria", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "cream", + "flavor": "creamy, fruity", + "aroma": "nutty, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Casa Madaio" + }, + { + "cheese": "Cinerino", + "url": "https://www.cheese.com/cinerino/", + "milk": "sheep", + "country": "Italy", + "region": "Campania", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "flaky", + "rind": "ash coated", + "color": "ivory", + "flavor": "grassy, herbaceous", + "aroma": "herbal, nutty, woody", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Casa Madaio" + }, + { + "cheese": "Cirrus", + "url": "https://www.cheese.com/cirrus/", + "milk": "cow", + "country": "United States", + "region": "Port Townsend", + "family": "Camembert", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "bloomy", + "color": "ivory", + "flavor": "acidic, buttery, milky, nutty, salty", + "aroma": "earthy, mushroom, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Mt. Townsend Creamery" + }, + { + "cheese": "Civray", + "url": "https://www.cheese.com/civray/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "acidic, sweet", + "aroma": "pleasant", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Classic Blue Log", + "url": "https://www.cheese.com/classic-blue-log/", + "milk": "goat", + "country": "United States", + "region": "Massachusetts", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense, soft", + "rind": "mold ripened", + "color": "cream", + "flavor": "creamy, tangy", + "aroma": "clean, fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Westfield Farm" + }, + { + "cheese": "Classico Pecorino Senese", + "url": "https://www.cheese.com/classico-pecorino-senese/", + "milk": "sheep", + "country": "Italy", + "region": "Tuscany", + "family": "Pecorino", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, compact, firm", + "rind": "natural", + "color": "straw", + "flavor": "sharp", + "aroma": "aromatic, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Caseificio Pinzani Srl" + }, + { + "cheese": "Classico Riserva", + "url": "https://www.cheese.com/classico-riserva/", + "milk": "sheep", + "country": "Italy", + "region": "Tuscany", + "family": "Pecorino", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "chalky, compact, crumbly", + "rind": "natural", + "color": "straw", + "flavor": "full-flavored", + "aroma": "aromatic, strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Caseificio Pinzani Srl" + }, + { + "cheese": "Classics Fresh Mozzarella", + "url": "https://www.cheese.com/classics-fresh-mozzarella/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Mozzarella", + "type": "soft, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, elastic, smooth, soft, stringy, supple", + "rind": "rindless", + "color": "white", + "flavor": "acidic, mild, milky, spicy", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "perline, ciliegine, ovoline, marinated ciliegine", + "alt_spellings": "NA", + "producers": "Crave Brothers Farmstead Cheese" + }, + { + "cheese": "Clava Brie", + "url": "https://www.cheese.com/clava-brie/", + "milk": "cow", + "country": "Scotland", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, soft", + "rind": "bloomy", + "color": "straw", + "flavor": "mushroomy, pungent, rustic, vegetal", + "aroma": "garlicky, herbal, mushroom, pungent", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Connage Highland Dairy" + }, + { + "cheese": "Clonmore", + "url": "https://www.cheese.com/clonmore/", + "milk": "goat", + "country": "Ireland", + "region": "Co. Cork", + "family": "Gouda", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, open", + "rind": "plastic", + "color": "pale yellow", + "flavor": "earthy, mild, milky, nutty, smooth, sweet, tangy", + "aroma": "goaty, strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Tom and Lena Beggane" + }, + { + "cheese": "Coalho", + "url": "https://www.cheese.com/coalho/", + "milk": "cow", + "country": "Brazil", + "region": "Northeastern Brazil", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "elastic, firm, springy", + "rind": "natural", + "color": "yellow", + "flavor": "acidic, salty", + "aroma": "fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Queijo coalho, Queijo de coalho , Rennet Cheese", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Coastal Cheddar", + "url": "https://www.cheese.com/coastal-cheddar/", + "milk": "cow", + "country": "England", + "region": "Dorset", + "family": "Cheddar", + "type": "firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "rindless", + "color": "pale yellow", + "flavor": "crunchy, sweet", + "aroma": "nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Ford Farm" + }, + { + "cheese": "Coeur de Camembert au Calvados", + "url": "https://www.cheese.com/coeur-de-camembert-au-calvados/", + "milk": "cow", + "country": "France", + "region": "Lower Normandy", + "family": "Camembert", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "bloomy", + "color": "ivory", + "flavor": "fruity, nutty", + "aroma": "aromatic, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Calva d'Auge", + "alt_spellings": "NA", + "producers": "Isigny Sainte Mère" + }, + { + "cheese": "Coeur de Chevre", + "url": "https://www.cheese.com/coeur-de-chevre/", + "milk": "goat", + "country": "France", + "region": "Gâtinais", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "leaf wrapped", + "color": "pale yellow", + "flavor": "salty, spicy", + "aroma": "fresh, milky", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Colby", + "url": "https://www.cheese.com/colby/", + "milk": "cow", + "country": "United States", + "region": "Colby, Wisconsin", + "family": "Cheddar", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, open, springy", + "rind": "rindless", + "color": "yellow", + "flavor": "sweet", + "aroma": "mild, sweet", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Colby Swiss Cheddar", + "producers": "NA" + }, + { + "cheese": "Colby-Jack", + "url": "https://www.cheese.com/colby-jack/", + "milk": "", + "country": "United States", + "region": "NA", + "family": "Monterey Jack", + "type": "semi-soft, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "rindless", + "color": "NA", + "flavor": "creamy, sweet, tangy", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Marble jack, Cojack, Co-jack, Colby Jack", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cold Pack", + "url": "https://www.cheese.com/cold-pack/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "soft, blue-veined, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, spreadable", + "rind": "rindless", + "color": "NA", + "flavor": "full-flavored, sharp, smokey , spicy", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "club cheese, comminuted cheese, crock cheese", + "alt_spellings": "NA", + "producers": "Brunkow Cheese Factory" + }, + { + "cheese": "Colony cheese", + "url": "https://www.cheese.com/colony-cheese/", + "milk": "", + "country": "Brazil", + "region": "Rio Grande do Sul", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, open, soft, supple", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, pungent, spicy", + "aroma": "lactic, pungent, spicy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "queijo de colônia, Queijo colônia, queijo colonial", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "ColoRouge", + "url": "https://www.cheese.com/colorouge/", + "milk": "cow", + "country": "United States", + "region": "Colorado", + "family": "NA", + "type": "soft, artisan, smear-ripened", + "fat_content": "12%", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "washed", + "color": "white", + "flavor": "acidic, buttery, creamy, earthy", + "aroma": "buttery, earthy, mild, spicy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "MouCo ColoRouge", + "alt_spellings": "NA", + "producers": "MouCo Cheese Company" + }, + { + "cheese": "Colston Bassett Stilton", + "url": "https://www.cheese.com/colston-bassett-stilton/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "East Midlands", + "family": "Blue", + "type": "semi-hard, artisan", + "fat_content": "33%", + "calcium_content": "NA", + "texture": "buttery, creamy", + "rind": "natural", + "color": "cream", + "flavor": "buttery, fruity", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Colston Bassett Dairy Limited" + }, + { + "cheese": "Comox Brie", + "url": "https://www.cheese.com/comox-brie/", + "milk": "cow", + "country": "Canada", + "region": "British Columbia", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "26%", + "calcium_content": "NA", + "texture": "buttery, creamy, runny, soft, soft-ripened", + "rind": "bloomy", + "color": "ivory", + "flavor": "buttery, creamy", + "aroma": "mushroom, pungent", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Natural Pastures Cheese Company" + }, + { + "cheese": "Comox Camembert", + "url": "https://www.cheese.com/comox-camembert/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Camembert", + "type": "soft, artisan, soft-ripened", + "fat_content": "28%", + "calcium_content": "NA", + "texture": "buttery, chalky, creamy, soft, soft-ripened, supple", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "buttery, creamy, mushroomy", + "aroma": "milky, mushroom, pungent", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Natural Pastures Cheese Company" + }, + { + "cheese": "Comte", + "url": "https://www.cheese.com/comte/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Comte 12 months", + "url": "https://www.cheese.com/comte-12-months/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery", + "rind": "washed", + "color": "yellow", + "flavor": "milky", + "aroma": "nutty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Comté Grande Réserve 12-18 months", + "alt_spellings": "NA", + "producers": "JuraFlore" + }, + { + "cheese": "Comte 18 months", + "url": "https://www.cheese.com/comte-18-months/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "yellow", + "flavor": "fruity", + "aroma": "nutty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Comté Grande Réserve 18-24 months", + "alt_spellings": "NA", + "producers": "JuraFlore" + }, + { + "cheese": "Comtomme", + "url": "https://www.cheese.com/comtomme/", + "milk": "cow", + "country": "Canada", + "region": "Québec", + "family": "Tomme", + "type": "semi-soft, artisan", + "fat_content": "28%", + "calcium_content": "NA", + "texture": "firm, supple", + "rind": "washed", + "color": "golden yellow", + "flavor": "buttery, fruity", + "aroma": "buttery, fruity", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fromagerie La Station" + }, + { + "cheese": "Conciato Al Pepe", + "url": "https://www.cheese.com/conciato-al-pepe/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "sharp, spicy", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Condio", + "url": "https://www.cheese.com/condio/", + "milk": "cow", + "country": "Italy", + "region": "Piave Valley, Italy", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, soft", + "rind": "natural", + "color": "ivory", + "flavor": "herbaceous, piquant, spicy", + "aroma": "pungent, spicy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Connemara", + "url": "https://www.cheese.com/connemara/", + "milk": "cow", + "country": "United States", + "region": "Fairview", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm", + "rind": "natural", + "color": "white", + "flavor": "fruity, mild", + "aroma": "fruity, goaty, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Looking Glass Creamery" + }, + { + "cheese": "Consider Bardwell Farm Manchester", + "url": "https://www.cheese.com/consider-bardwell-farm-manchester/", + "milk": "goat", + "country": "United States", + "region": "Vermont", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, open", + "rind": "natural", + "color": "ivory", + "flavor": "nutty, tangy, woody", + "aroma": "lactic, mushroom, woody", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Consider Bardwell Farm" + }, + { + "cheese": "Coolattin Cheddar", + "url": "https://www.cheese.com/coolattin-cheddar/", + "milk": "cow", + "country": "Ireland", + "region": "Co. Carlow", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, open", + "rind": "waxed", + "color": "pale yellow", + "flavor": "fruity, nutty, sweet", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Thomas and Fiona Burgess - Coolattin Cheddar" + }, + { + "cheese": "Coolea", + "url": "https://www.cheese.com/coolea/", + "milk": "cow", + "country": "Ireland", + "region": "NA", + "family": "Gouda", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "NA", + "color": "NA", + "flavor": "sweet", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Coolea Farmhouse Cheese Limited" + }, + { + "cheese": "Cooleney", + "url": "https://www.cheese.com/cooleney/", + "milk": "cow", + "country": "Ireland", + "region": "Tipperary", + "family": "Camembert", + "type": "soft, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "mold ripened", + "color": "white", + "flavor": "bitter, buttery, mushroomy", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Cooleeney Farmhouse Cheese", + "producers": "Cooleeney Farm" + }, + { + "cheese": "Coquetdale", + "url": "https://www.cheese.com/coquetdale/", + "milk": "cow", + "country": "England", + "region": "Coquet", + "family": "NA", + "type": "semi-hard, soft-ripened", + "fat_content": "55%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "fruity", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Northumberland Cheese Company" + }, + { + "cheese": "Corleggy", + "url": "https://www.cheese.com/corleggy/", + "milk": "goat", + "country": "Ireland", + "region": "County Cavan", + "family": "NA", + "type": "hard, artisan", + "fat_content": "40%", + "calcium_content": "NA", + "texture": "", + "rind": "natural", + "color": "NA", + "flavor": "mild, nutty", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Corleggy Cheeses" + }, + { + "cheese": "Cornish Blue", + "url": "https://www.cheese.com/cornish-blue/", + "milk": "cow", + "country": "England", + "region": "Cornwall", + "family": "Blue", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, dense", + "rind": "NA", + "color": "NA", + "flavor": "creamy, mild, sweet", + "aroma": "buttery, mild, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cornish Cheese Company Ltd" + }, + { + "cheese": "Cornish Brie", + "url": "https://www.cheese.com/cornish-brie/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Cornwall", + "family": "Brie", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft-ripened", + "rind": "bloomy", + "color": "yellow", + "flavor": "creamy, mild", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cornish Cheese Company Ltd, Cornish Country Larder ltd." + }, + { + "cheese": "Cornish Crumbly", + "url": "https://www.cheese.com/cornish-crumbly/", + "milk": "cow", + "country": "England", + "region": "North Cornwall", + "family": "Cheddar", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "chalky", + "rind": "mold ripened", + "color": "ivory", + "flavor": "creamy", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Whalesborough Farm Foods" + }, + { + "cheese": "Cornish Kern", + "url": "https://www.cheese.com/cornish-kern/", + "milk": "", + "country": "", + "region": "Cornwall", + "family": "Cornish", + "type": "NA", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "washed", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Lynher Dairies" + }, + { + "cheese": "Cornish Pepper", + "url": "https://www.cheese.com/cornish-pepper/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "Cornish", + "type": "soft, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "white", + "flavor": "smooth", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Lynher Valley Dairy" + }, + { + "cheese": "Cornish Smuggler", + "url": "https://www.cheese.com/cornish-smuggler/", + "milk": "cow", + "country": "England", + "region": "North Cornwall", + "family": "Cheddar", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "mold ripened", + "color": "ivory", + "flavor": "creamy", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Whalesborough Farm Foods" + }, + { + "cheese": "Cornish Wild Garlic Yarg", + "url": "https://www.cheese.com/cornish-wild-garlic-yarg/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "NA", + "type": "semi-firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "leaf wrapped", + "color": "pale yellow", + "flavor": "garlicky", + "aroma": "garlicky, herbal", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Cornish Garlic Yarg", + "alt_spellings": "NA", + "producers": "Lynher Dairies" + }, + { + "cheese": "Cornish Yarg", + "url": "https://www.cheese.com/cornish-yarg/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "Cornish", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "leaf wrapped", + "color": "NA", + "flavor": "mushroomy", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Lynher Dairies" + }, + { + "cheese": "corra linn", + "url": "https://www.cheese.com/corra-linn/", + "milk": "sheep", + "country": "Scotland", + "region": "NA", + "family": "NA", + "type": "firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "cloth wrapped", + "color": "ivory", + "flavor": "caramel", + "aroma": "buttery", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Errington Cheese Ltd." + }, + { + "cheese": "Cote Hill Blue", + "url": "https://www.cheese.com/cote-hill-blue/", + "milk": "cow", + "country": "England, United Kingdom", + "region": "Lincolnshire", + "family": "Blue", + "type": "soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "cream", + "flavor": "buttery, salty, sharp, smokey , smooth", + "aroma": "smokey, strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cote Hill Farm" + }, + { + "cheese": "Cote Hill Snowdrop", + "url": "https://www.cheese.com/cote-hill-snowdrop/", + "milk": "cow", + "country": "", + "region": "NA", + "family": "NA", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "white", + "flavor": "savory", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cote Hill Farm" + }, + { + "cheese": "Cotherstone", + "url": "https://www.cheese.com/cotherstone/", + "milk": "cow", + "country": "England, United Kingdom", + "region": "Cotherstone", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "crumbly, open", + "rind": "waxed", + "color": "pale yellow", + "flavor": "acidic, citrusy, tangy", + "aroma": "fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cotija Cheese", + "url": "https://www.cheese.com/cotija/", + "milk": "cow", + "country": "Mexico", + "region": "NA", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dense", + "rind": "rindless", + "color": "white", + "flavor": "salty, strong", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Queso Cincho, Queso Seco", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cotswold", + "url": "https://www.cheese.com/cotswold/", + "milk": "cow", + "country": "England, United Kingdom", + "region": "Gloucestershire County", + "family": "NA", + "type": "semi-firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "NA", + "flavor": "sweet, tangy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Double Gloucester with Chives, Double Gloucester with Onion and Chives, English Cotswold", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cottage Cheese", + "url": "https://www.cheese.com/cottage-cheese/", + "milk": "cow", + "country": "United Kingdom, United States", + "region": "NA", + "family": "Cottage", + "type": "soft, artisan, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "rindless", + "color": "white", + "flavor": "sweet", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cottage Cheese (Australian)", + "url": "https://www.cheese.com/cottage-cheese-australian/", + "milk": "cow", + "country": "Australia", + "region": "NA", + "family": "Cottage", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, firm, grainy", + "rind": "rindless", + "color": "white", + "flavor": "mild, sweet", + "aroma": "lactic, milky", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cougar Gold", + "url": "https://www.cheese.com/cougar-gold/", + "milk": "cow", + "country": "United States", + "region": "Pullman, Washington", + "family": "Cheddar", + "type": "semi-soft", + "fat_content": "14%", + "calcium_content": "NA", + "texture": "creamy, crumbly, crystalline, firm, smooth", + "rind": "rindless", + "color": "white", + "flavor": "nutty, sharp", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "WSU Creamery" + }, + { + "cheese": "Coulommiers", + "url": "https://www.cheese.com/coulommiers/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "Brie", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "bloomy", + "color": "NA", + "flavor": "buttery, nutty", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Counting Sheep…and Goats...", + "url": "https://www.cheese.com/counting-sheepand-goats/", + "milk": "cow, goat, sheep", + "country": "Canada, Italy", + "region": "Lombardy", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "NA", + "color": "white", + "flavor": "creamy, subtle, sweet", + "aroma": "nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fifth Town Artisan Cheese" + }, + { + "cheese": "Country Morning", + "url": "https://www.cheese.com/country-morning/", + "milk": "cow", + "country": "Canada", + "region": "British Columbia", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "nutty, sharp", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Farm House Natural Cheeses" + }, + { + "cheese": "Coupole", + "url": "https://www.cheese.com/coupole/", + "milk": "goat", + "country": "United States", + "region": "Vermont", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, dense, fluffy", + "rind": "mold ripened", + "color": "pale yellow", + "flavor": "mild, milky", + "aroma": "fresh, mild, milky", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Vermont Creamery" + }, + { + "cheese": "Couronne Lochoise", + "url": "https://www.cheese.com/couronne-lochoise/", + "milk": "goat", + "country": "France", + "region": "Loire Valley", + "family": "NA", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, smooth, soft-ripened", + "rind": "bloomy", + "color": "ivory", + "flavor": "acidic, herbaceous, mild, salty", + "aroma": "earthy, goaty, grassy, musty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "La Couronne", + "alt_spellings": "NA", + "producers": "Fromages de chèvre FREVAL, Various" + }, + { + "cheese": "Coverdale", + "url": "https://www.cheese.com/coverdale/", + "milk": "cow", + "country": "England, United Kingdom", + "region": "North Yorkshire", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm, open", + "rind": "natural", + "color": "white", + "flavor": "buttery, lemony, mild, sharp", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Wensleydale Creamery" + }, + { + "cheese": "Cow's Milk Gouda", + "url": "https://www.cheese.com/cows-milk-gouda/", + "milk": "cow", + "country": "United States", + "region": "Maine", + "family": "Gouda", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, creamy, crumbly, dense", + "rind": "natural", + "color": "NA", + "flavor": "caramel, nutty", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fuzzy Udder Creamery" + }, + { + "cheese": "Cracked Pepper Chevre", + "url": "https://www.cheese.com/cracked-pepper-chevre/", + "milk": "goat", + "country": "United States", + "region": "Colorado", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "5 g/100g", + "calcium_content": "NA", + "texture": "creamy, crumbly, firm", + "rind": "rindless", + "color": "white", + "flavor": "savory, spicy", + "aroma": "clean, fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Haystack Mountain Creamery" + }, + { + "cheese": "Cranborne", + "url": "https://www.cheese.com/cranborne/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Dorset", + "family": "Camembert", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "creamy", + "aroma": "mushroom", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Chalke Valley Cheese Ltd" + }, + { + "cheese": "Cratloe Hills", + "url": "https://www.cheese.com/cratloe-hills/", + "milk": "sheep", + "country": "Ireland", + "region": "Brickhill, Co. Clare", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, grainy, open", + "rind": "plastic", + "color": "pale yellow", + "flavor": "mild, nutty, strong, sweet", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cratloe Hills" + }, + { + "cheese": "Cravero Parmigiano Reggiano", + "url": "https://www.cheese.com/cravero-parmigiano-reggiano/", + "milk": "cow", + "country": "Italy", + "region": "Modena", + "family": "Parmesan", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense", + "rind": "natural", + "color": "golden yellow", + "flavor": "bitter, creamy, nutty, savory, smooth, sweet", + "aroma": "aromatic, fruity", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "San Pietro, Baruffi", + "alt_spellings": "NA", + "producers": "G. Cravero Sas" + }, + { + "cheese": "Crayeux de Roncq", + "url": "https://www.cheese.com/crayeux-de-roncq/", + "milk": "cow", + "country": "France", + "region": "Roncq", + "family": "NA", + "type": "soft, artisan, soft-ripened", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, grainy", + "rind": "washed", + "color": "orange", + "flavor": "full-flavored, strong, sweet", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Carré du Vinage", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cream Cheese", + "url": "https://www.cheese.com/cream-cheese/", + "milk": "cow", + "country": "United States", + "region": "NA", + "family": "NA", + "type": "fresh soft, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, spreadable", + "rind": "rindless", + "color": "white", + "flavor": "creamy, mild, sweet", + "aroma": "fresh, pleasant", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "fruit cream", + "alt_spellings": "Fruit cream cheese", + "producers": "NA" + }, + { + "cheese": "Cream Cheesy Bliss", + "url": "https://www.cheese.com/cream-cheesy-bliss/", + "milk": "", + "country": "Canada, United States", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, spreadable", + "rind": "artificial", + "color": "white", + "flavor": "creamy, garlicky, herbaceous, sweet", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Dairy Free Cream Cheese, Dairy Free Classic Plain Cream Cheese, Dairy Free Chive & Garlic Cream Cheese, Dairy Free Strawberry Cream Cheese", + "alt_spellings": "NA", + "producers": "GO Veggie!" + }, + { + "cheese": "Cream Havarti", + "url": "https://www.cheese.com/cream-havarti/", + "milk": "cow", + "country": "Denmark", + "region": "NA", + "family": "Havarti", + "type": "semi-soft, processed", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "smooth", + "rind": "rindless", + "color": "pale yellow", + "flavor": "buttery, creamy, sweet", + "aroma": "sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Havarathi, Flødeis Havarti, Smoked Havarti", + "alt_spellings": "Flodeis Havarti", + "producers": "NA" + }, + { + "cheese": "Creamy Gouda", + "url": "https://www.cheese.com/creamy-gouda/", + "milk": "cow", + "country": "Netherlands", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "cream", + "flavor": "creamy", + "aroma": "aromatic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Extra Belegen Gouda", + "alt_spellings": "NA", + "producers": "dutchcheeseman uk" + }, + { + "cheese": "Creamy Lancashire", + "url": "https://www.cheese.com/creamy-lancashire/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "NA", + "type": "NA", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "fluffy", + "rind": "NA", + "color": "pale yellow", + "flavor": "creamy", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Crema de Blue", + "url": "https://www.cheese.com/crema-de-blue/", + "milk": "cow, sheep", + "country": "United States", + "region": "New Jersey", + "family": "Blue", + "type": "semi-soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "cream", + "flavor": "full-flavored, spicy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Valley Shepherd Creamery" + }, + { + "cheese": "Crema Mexicana", + "url": "https://www.cheese.com/crema-mexicana/", + "milk": "cow", + "country": "Mexico and Caribbean", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, spreadable", + "rind": "rindless", + "color": "white", + "flavor": "buttery, sour, tangy", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cacique Inc." + }, + { + "cheese": "Crema Mexicana Agria", + "url": "https://www.cheese.com/crema-agria/", + "milk": "cow", + "country": "Mexico and Caribbean", + "region": "NA", + "family": "NA", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, spreadable", + "rind": "rindless", + "color": "white", + "flavor": "acidic, sour, tangy", + "aroma": "aromatic, fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Crema Centroamericana, Crema Agria", + "alt_spellings": "NA", + "producers": "Cacique Inc." + }, + { + "cheese": "Cremet", + "url": "https://www.cheese.com/cremet/", + "milk": "cow, goat", + "country": "England, Great Britain, United Kingdom", + "region": "Devon", + "family": "Brie", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, soft, soft-ripened", + "rind": "bloomy", + "color": "white", + "flavor": "creamy, lemony", + "aroma": "fresh, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sharpham Wine & Cheese" + }, + { + "cheese": "Cremig Extra Würzig, Bergkäse Aus Dem Schweizer Jura", + "url": "https://www.cheese.com/cremig-extra-wurzig-bergkase-aus-dem-schweizer-jura/", + "milk": "cow", + "country": "Switzerland", + "region": "Jura", + "family": "Swiss Cheese", + "type": "hard, artisan", + "fat_content": "51%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "cream", + "flavor": "creamy, spicy", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "extra-creamy spicy mountain cheese from the Swiss Jura", + "alt_spellings": "NA", + "producers": "Walo von Mühlenen AG" + }, + { + "cheese": "Cremont", + "url": "https://www.cheese.com/cremont/", + "milk": "cow, goat", + "country": "United States", + "region": "Vermont", + "family": "NA", + "type": "soft, artisan", + "fat_content": "14%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "mold ripened", + "color": "cream", + "flavor": "creamy, nutty, smooth, yeasty", + "aroma": "nutty, yeasty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Vermont Creamery" + }, + { + "cheese": "CreNoble", + "url": "https://www.cheese.com/crenoble/", + "milk": "", + "country": "Germany", + "region": "Landshut", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, open, smooth", + "rind": "NA", + "color": "pale yellow", + "flavor": "creamy, savory", + "aroma": "aromatic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Bayerische Milchindustrie eG" + }, + { + "cheese": "Crescenza di Bufala", + "url": "https://www.cheese.com/crescenza-di-bufala/", + "milk": "water buffalo", + "country": "Italy", + "region": "Lombardy", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, spreadable", + "rind": "rindless", + "color": "white", + "flavor": "buttery, creamy, mild, sweet", + "aroma": "fresh, pleasant, rich, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Azienda Agricola Gritti Bruno E Alfio S.s. Societa Agricola" + }, + { + "cheese": "Crescenza-Stracchino", + "url": "https://www.cheese.com/crescenza/", + "milk": "cow", + "country": "Italy", + "region": "NA", + "family": "Italian Cheese", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, spreadable", + "rind": "rindless", + "color": "white", + "flavor": "creamy, mild, sweet", + "aroma": "pleasant, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Stracchino", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cressy Blu", + "url": "https://www.cheese.com/cressy-blu/", + "milk": "cow", + "country": "Canada, Italy", + "region": "Lombardy", + "family": "Blue", + "type": "semi-hard, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, savory, sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fifth Town Artisan Cheese" + }, + { + "cheese": "Criffel", + "url": "https://www.cheese.com/criffel/", + "milk": "cow", + "country": "Scotland, United Kingdom", + "region": "Dumfriesshire", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "straw", + "flavor": "smooth", + "aroma": "pungent, strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Loch Arthur Creamery" + }, + { + "cheese": "Criollo Cheese", + "url": "https://www.cheese.com/criollo-cheese/", + "milk": "cow", + "country": "Mexico", + "region": "Taxco", + "family": "NA", + "type": "semi-firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "NA", + "color": "pale yellow", + "flavor": "savory, sharp", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Criolla", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Crocodile Tear", + "url": "https://www.cheese.com/crocodile-tear/", + "milk": "goat", + "country": "United States", + "region": "Indiana", + "family": "Brie", + "type": "soft, semi-soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm", + "rind": "bloomy", + "color": "white", + "flavor": "creamy, spicy", + "aroma": "pungent", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Capriole Goat Cheese" + }, + { + "cheese": "Croghan", + "url": "https://www.cheese.com/croghan/", + "milk": "goat", + "country": "Ireland", + "region": "County Wexford", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "supple", + "rind": "washed", + "color": "white", + "flavor": "full-flavored", + "aroma": "earthy, grassy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Croghan Goat Farm" + }, + { + "cheese": "Crotonese", + "url": "https://www.cheese.com/crotonese/", + "milk": "sheep", + "country": "Italy", + "region": "Crotone", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact", + "rind": "natural", + "color": "pale yellow", + "flavor": "salty, savory, strong", + "aroma": "spicy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Pecorino Crotonese", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Crottin de Champcol", + "url": "https://www.cheese.com/crottin-de-champcol/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dense", + "rind": "NA", + "color": "white", + "flavor": "full-flavored", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Crottin de Chavignol", + "url": "https://www.cheese.com/crottin-de-chavignol/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "firm, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "natural", + "color": "white", + "flavor": "full-flavored", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Crottin Du Chavignol, Crottin", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Crowdie", + "url": "https://www.cheese.com/crowdie/", + "milk": "cow", + "country": "Scotland", + "region": "NA", + "family": "Cottage", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "natural", + "color": "white", + "flavor": "sour", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Highland Fine Cheeses Limited" + }, + { + "cheese": "Crowley", + "url": "https://www.cheese.com/crowley/", + "milk": "cow", + "country": "United States", + "region": "Vermont", + "family": "Cheddar", + "type": "semi-soft, hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, firm, smooth", + "rind": "cloth wrapped", + "color": "pale yellow", + "flavor": "buttery, full-flavored, mild, savory, smokey , spicy, sweet, tangy", + "aroma": "aromatic, fresh, mild, pleasant, smokey", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Crowley Cheese" + }, + { + "cheese": "Crozier", + "url": "https://www.cheese.com/crozier/", + "milk": "sheep", + "country": "Ireland", + "region": "Fethard, Co Tipperary", + "family": "Blue", + "type": "semi-soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, chalky, creamy, crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "acidic, creamy, mild", + "aroma": "rich, strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Croizer Blue", + "producers": "J&L Grubb Ltd." + }, + { + "cheese": "Crucolo", + "url": "https://www.cheese.com/crucolo/", + "milk": "cow", + "country": "Italy", + "region": "NA", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery", + "rind": "NA", + "color": "ivory", + "flavor": "savory, sweet", + "aroma": "mild, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Rifugio Crucolo" + }, + { + "cheese": "Crumbly Lancashire", + "url": "https://www.cheese.com/crumbly-lancashire/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "NA", + "color": "pale yellow", + "flavor": "acidic", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "CréMonté", + "url": "https://www.cheese.com/cremonte/", + "milk": "cow", + "country": "Germany", + "region": "Landshut", + "family": "Blue", + "type": "soft, blue-veined", + "fat_content": "60%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "mold ripened", + "color": "ivory", + "flavor": "creamy, mild", + "aroma": "pleasant", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Bayerische Milchindustrie eG" + }, + { + "cheese": "Cuajada", + "url": "https://www.cheese.com/cuajada/", + "milk": "cow, sheep", + "country": "Spain", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cubetto", + "url": "https://www.cheese.com/cubetto/", + "milk": "buffalo, cow", + "country": "Italy", + "region": "Campania", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, smooth", + "rind": "NA", + "color": "ivory", + "flavor": "smooth, sweet", + "aroma": "fresh, fruity", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Cubetti", + "alt_spellings": "NA", + "producers": "Casa Madaio" + }, + { + "cheese": "Cuor di burrata", + "url": "https://www.cheese.com/cuor-di-burrata/", + "milk": "", + "country": "Italy", + "region": "Campania", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "white", + "flavor": "buttery, milky, sweet", + "aroma": "fresh, herbal, nutty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Casa Madaio" + }, + { + "cheese": "Cup Cheese", + "url": "https://www.cheese.com/cup-cheese/", + "milk": "cow", + "country": "United States", + "region": "Pennsylvania", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, spreadable", + "rind": "NA", + "color": "NA", + "flavor": "sharp, sour, strong", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Cure Nantais", + "url": "https://www.cheese.com/cure-nantais/", + "milk": "cow", + "country": "France", + "region": "Anjou", + "family": "NA", + "type": "soft, artisan", + "fat_content": "40%", + "calcium_content": "NA", + "texture": "open, sticky, supple", + "rind": "NA", + "color": "straw", + "flavor": "smokey , spicy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Nantais", + "alt_spellings": "NA", + "producers": "Various" + }, + { + "cheese": "Curworthy", + "url": "https://www.cheese.com/curworthy/", + "milk": "cow", + "country": "England", + "region": "Devon", + "family": "NA", + "type": "semi-hard", + "fat_content": "48%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "cream", + "flavor": "buttery", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Rachel Stephens" + }, + { + "cheese": "Cwmtawe Pecorino", + "url": "https://www.cheese.com/cwmtawe-pecorino/", + "milk": "sheep", + "country": "Italy", + "region": "Oristano", + "family": "Pecorino", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "washed", + "color": "orange", + "flavor": "NA", + "aroma": "aromatic", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Irranca Giovanni Antonio" + }, + { + "cheese": "Cypress Grove Chevre", + "url": "https://www.cheese.com/cypress-grove-chevre/", + "milk": "goat", + "country": "United States", + "region": "California", + "family": "NA", + "type": "NA", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cypress Grove Chevre" + }, + { + "cheese": "L'Affine Au Chablis", + "url": "https://www.cheese.com/laffine-au-chablis/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "washed", + "color": "pale yellow", + "flavor": "NA", + "aroma": "floral, fruity", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "L'Amuse Brabander Goat Gouda", + "url": "https://www.cheese.com/lamuse-brabander-goat-gouda/", + "milk": "cow", + "country": "Netherlands", + "region": "Northern Holland", + "family": "Gouda", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "waxed", + "color": "brownish yellow", + "flavor": "caramel, salty", + "aroma": "buttery, nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Essex St. Cheese Co." + }, + { + "cheese": "L'Amuse Signature Gouda", + "url": "https://www.cheese.com/lamuse-signature-gouda/", + "milk": "cow", + "country": "Netherlands", + "region": "NA", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, crystalline, smooth", + "rind": "waxed", + "color": "orange", + "flavor": "burnt caramel, caramel, full-flavored, salty", + "aroma": "nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Essex St. Cheese Co." + }, + { + "cheese": "L'Aveyronnais", + "url": "https://www.cheese.com/laveyronnais/", + "milk": "cow", + "country": "France", + "region": "massif des Causses", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "leaf wrapped", + "color": "white", + "flavor": "NA", + "aroma": "grassy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "L'Ecir de l'Aubrac", + "url": "https://www.cheese.com/lecir-de-laubrac/", + "milk": "cow", + "country": "France", + "region": "Auvergne", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "natural", + "color": "white", + "flavor": "sweet", + "aroma": "pleasant", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "L'Empereur", + "url": "https://www.cheese.com/lempereur/", + "milk": "", + "country": "Canada", + "region": "Quebec", + "family": "NA", + "type": "soft, artisan", + "fat_content": "15%", + "calcium_content": "NA", + "texture": "creamy, supple", + "rind": "washed", + "color": "cream", + "flavor": "buttery, salty", + "aroma": "fruity, milky, nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Empereur allégé, L’Empereur Léger", + "alt_spellings": "NA", + "producers": "Fromagerie Fritz Kaiser" + }, + { + "cheese": "L'Étivaz", + "url": "https://www.cheese.com/letivaz/", + "milk": "cow", + "country": "Switzerland", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery", + "rind": "NA", + "color": "pale yellow", + "flavor": "NA", + "aroma": "smokey", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "L’Etivaz AOP, LEtivaz", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "L'Étoile de St-Raymond", + "url": "https://www.cheese.com/letoile-de-st-raymond/", + "milk": "", + "country": "Canada", + "region": "Quebec", + "family": "NA", + "type": "soft", + "fat_content": "35%", + "calcium_content": "NA", + "texture": "buttery, creamy", + "rind": "ash coated", + "color": "ivory", + "flavor": "buttery, grassy, milky", + "aroma": "mushroom", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "L’Étoile De Saint-Raymond", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "La Bonaparte", + "url": "https://www.cheese.com/la-bonaparte/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "28%", + "calcium_content": "NA", + "texture": "creamy, soft, soft-ripened, supple", + "rind": "bloomy", + "color": "cream", + "flavor": "creamy, mild, milky", + "aroma": "fresh, mild", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "La Casatella", + "url": "https://www.cheese.com/la-casatella/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, soft", + "rind": "natural", + "color": "white", + "flavor": "subtle, sweet", + "aroma": "lactic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "La Couronne - Fort Aged Comté", + "url": "https://www.cheese.com/la-couronne-fort-aged-comte/", + "milk": "cow", + "country": "France, Switzerland", + "region": "Franche Comté", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense", + "rind": "NA", + "color": "pale yellow", + "flavor": "caramel, nutty, sweet", + "aroma": "rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cheese Slices" + }, + { + "cheese": "La Fleurie", + "url": "https://www.cheese.com/la-fleurie/", + "milk": "cow", + "country": "United States", + "region": "Vermont", + "family": "NA", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, runny, smooth", + "rind": "mold ripened", + "color": "ivory", + "flavor": "buttery, earthy, mushroomy, nutty", + "aroma": "earthy, mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Willow Hill Farm" + }, + { + "cheese": "La Peral", + "url": "https://www.cheese.com/la-peral/", + "milk": "cow", + "country": "Spain", + "region": "NA", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm, grainy", + "rind": "NA", + "color": "pale yellow", + "flavor": "spicy, sweet", + "aroma": "buttery, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "La Peral Blue", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "La Pyramide", + "url": "https://www.cheese.com/la-pyramide/", + "milk": "goat", + "country": "Canada", + "region": "British Columbia", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense", + "rind": "ash coated", + "color": "ivory", + "flavor": "salty, tangy", + "aroma": "mild", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Farm House Natural Cheeses" + }, + { + "cheese": "La Retorta", + "url": "https://www.cheese.com/la-retorta/", + "milk": "sheep", + "country": "Spain", + "region": "NA", + "family": "NA", + "type": "soft, semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, runny", + "rind": "NA", + "color": "pale yellow", + "flavor": "creamy", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "La Rumeur", + "url": "https://www.cheese.com/la-rumeur/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, runny, supple", + "rind": "bloomy", + "color": "cream", + "flavor": "creamy, mild", + "aroma": "mild, milky", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "La Sauvagine", + "url": "https://www.cheese.com/la-sauvagine/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "NA", + "type": "soft", + "fat_content": "32%", + "calcium_content": "NA", + "texture": "buttery, creamy, runny, supple", + "rind": "washed", + "color": "ivory", + "flavor": "buttery, creamy", + "aroma": "mushroom", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "La Sauvagine Réserve", + "url": "https://www.cheese.com/la-sauvagine-reserve/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "NA", + "type": "soft", + "fat_content": "38%", + "calcium_content": "NA", + "texture": "buttery, creamy, runny, supple", + "rind": "washed", + "color": "ivory", + "flavor": "buttery, creamy, mild, milky", + "aroma": "mushroom", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "La Serena", + "url": "https://www.cheese.com/la-serena/", + "milk": "sheep", + "country": "Spain", + "region": "Extremadura", + "family": "NA", + "type": "soft", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "creamy, spreadable", + "rind": "washed", + "color": "straw", + "flavor": "bitter, full-flavored, sharp, strong", + "aroma": "pleasant, strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Torta La Serena, Queso de la Serena, Torta de la Serena", + "producers": "NA" + }, + { + "cheese": "La Taupiniere", + "url": "https://www.cheese.com/la-taupiniere/", + "milk": "goat", + "country": "France", + "region": "Poitou-Charentes", + "family": "NA", + "type": "soft, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "white", + "flavor": "sour, tangy", + "aroma": "aromatic, nutty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Taupinette", + "alt_spellings": "Taupiniere", + "producers": "Fromagerie Jousseaume" + }, + { + "cheese": "La Tur", + "url": "https://www.cheese.com/la-tur/", + "milk": "cow, goat, sheep", + "country": "Italy", + "region": "Alba", + "family": "Brie", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, fluffy, soft-ripened", + "rind": "mold ripened", + "color": "straw", + "flavor": "acidic, buttery, creamy, grassy, mushroomy", + "aroma": "earthy, lactic, yeasty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Caseificio dell'Alta Langa" + }, + { + "cheese": "La Vache Qui Rit cheese", + "url": "https://www.cheese.com/la-vache-qui-rit/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "Swiss Cheese", + "type": "semi-soft, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, spreadable", + "rind": "rindless", + "color": "pale yellow", + "flavor": "buttery, mild", + "aroma": "fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Laughing Cow Cheese", + "alt_spellings": "NA", + "producers": "BEL Group" + }, + { + "cheese": "Labneh", + "url": "https://www.cheese.com/labneh/", + "milk": "cow", + "country": "Middle East", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "rindless", + "color": "white", + "flavor": "creamy, milky, sour", + "aroma": "fresh, mild", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "labaneh, chakka, lebnah, suzma", + "alt_spellings": "labne", + "producers": "NA" + }, + { + "cheese": "Lacey Grey", + "url": "https://www.cheese.com/lacey-grey/", + "milk": "goat", + "country": "Canada", + "region": "Prince Edward County, Ontario", + "family": "NA", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "bloomy", + "color": "white", + "flavor": "acidic, bitter, nutty", + "aroma": "clean, herbal", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fifth Town Artisan Cheese" + }, + { + "cheese": "LaClare Farms Chandoka", + "url": "https://www.cheese.com/laclare-farms-chandoka/", + "milk": "cow, goat", + "country": "United States", + "region": "NA", + "family": "Cheddar", + "type": "semi-firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "ivory", + "flavor": "fruity, tangy", + "aroma": "fruity", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "LaClare Farms" + }, + { + "cheese": "LaClare Farms Cheddar", + "url": "https://www.cheese.com/laclare-farms-cheddar/", + "milk": "goat", + "country": "United States", + "region": "Wisconsin", + "family": "Cheddar", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "ivory", + "flavor": "mild, sweet, tangy", + "aroma": "fruity, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "LaClare Farms" + }, + { + "cheese": "LaClare Farms Chevre", + "url": "https://www.cheese.com/laclare-farms-chevre/", + "milk": "goat", + "country": "United States", + "region": "Wisconsin", + "family": "Cottage", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "rindless", + "color": "white", + "flavor": "mild, sweet", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "LaClare Farms" + }, + { + "cheese": "LaClare Farms Evalon", + "url": "https://www.cheese.com/laclare-farms-evalon/", + "milk": "goat", + "country": "United States", + "region": "Wisconsin", + "family": "Gouda", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "ivory", + "flavor": "mild", + "aroma": "goaty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "LaClare Farms" + }, + { + "cheese": "LaClare Farms Evalon with Cummin", + "url": "https://www.cheese.com/laclare-farms-evalon-cummin/", + "milk": "goat", + "country": "United States", + "region": "Wisconsin", + "family": "Gouda", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "ivory", + "flavor": "savory", + "aroma": "goaty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Cummin Evalon", + "alt_spellings": "NA", + "producers": "LaClare Farms" + }, + { + "cheese": "LaClare Farms Evalon with Fenugreek", + "url": "https://www.cheese.com/laclare-farms-evalon-fenugreek/", + "milk": "goat", + "country": "United States", + "region": "Wisconsin", + "family": "Gouda", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "mild", + "aroma": "goaty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Fenugreek Evalon", + "alt_spellings": "NA", + "producers": "LaClare Farms" + }, + { + "cheese": "LaClare Farms Fondry Jack", + "url": "https://www.cheese.com/laclare-farms-fondry-jack/", + "milk": "goat", + "country": "United States", + "region": "Wisconsin", + "family": "Monterey Jack", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "ivory", + "flavor": "mild", + "aroma": "fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "Pepper Jack Fondy Jack, Tomato Basil Fondy Jack", + "producers": "LaClare Farms" + }, + { + "cheese": "LaClare Farms Martone", + "url": "https://www.cheese.com/laclare-farms-martone/", + "milk": "goat", + "country": "United States", + "region": "Wisconsin", + "family": "Cottage", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "ash coated", + "color": "white", + "flavor": "sweet, tangy", + "aroma": "buttery, fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "LaClare Farms" + }, + { + "cheese": "LaClare Farms Raw Goats Milk Cheddar", + "url": "https://www.cheese.com/laclare-farms-raw-goats-milk-cheddar/", + "milk": "goat", + "country": "United States", + "region": "Wisconsin", + "family": "Cheddar", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "ivory", + "flavor": "mild, sweet, tangy", + "aroma": "fruity, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "LaClare Farms" + }, + { + "cheese": "LaClare Ziege Zacke Blue", + "url": "https://www.cheese.com/laclare-ziege-zacke-blue/", + "milk": "cow, goat", + "country": "United States", + "region": "Wisconsin", + "family": "Blue", + "type": "semi-hard, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm", + "rind": "natural", + "color": "cream", + "flavor": "creamy, spicy, sweet, tangy", + "aroma": "earthy, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Ziege Zacke Blue", + "alt_spellings": "NA", + "producers": "LaClare Farms" + }, + { + "cheese": "Lacy Swiss", + "url": "https://www.cheese.com/lacy-swiss/", + "milk": "cow", + "country": "United States", + "region": "NA", + "family": "Swiss Cheese", + "type": "semi-firm, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, open, supple", + "rind": "NA", + "color": "ivory", + "flavor": "mild, nutty", + "aroma": "mild", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "Lacey Swiss", + "producers": "NA" + }, + { + "cheese": "Lady Jane", + "url": "https://www.cheese.com/lady-jane/", + "milk": "cow", + "country": "Canada", + "region": "British Columbia", + "family": "Brie", + "type": "semi-soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense, soft-ripened", + "rind": "mold ripened", + "color": "pale yellow", + "flavor": "tangy", + "aroma": "earthy, mushroom", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Farm House Natural Cheeses" + }, + { + "cheese": "Laganory", + "url": "https://www.cheese.com/laganory/", + "milk": "cow", + "country": "Scotland", + "region": "NA", + "family": "NA", + "type": "firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "brittle, compact, dry, grainy", + "rind": "natural", + "color": "pale yellow", + "flavor": "nutty, salty, subtle", + "aroma": "earthy, grassy, raw nut, subtle", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Ethical Dairy" + }, + { + "cheese": "Laguiole", + "url": "https://www.cheese.com/laguiole/", + "milk": "cow", + "country": "France", + "region": "Aveyron, Laguiole", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm, supple", + "rind": "natural", + "color": "straw", + "flavor": "sharp, sour, tangy", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Tome de Laguiole", + "producers": "NA" + }, + { + "cheese": "Lairobell", + "url": "https://www.cheese.com/lairobell/", + "milk": "goat", + "country": "Scotland, United Kingdom", + "region": "Orkney Isles", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, open", + "rind": "natural", + "color": "pale yellow", + "flavor": "herbaceous, sweet", + "aroma": "goaty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Lajta", + "url": "https://www.cheese.com/lajta/", + "milk": "cow", + "country": "Hungary", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "creamy, open", + "rind": "washed", + "color": "yellow", + "flavor": "piquant", + "aroma": "aromatic, stinky, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Lake District Extra Mature Cheddar", + "url": "https://www.cheese.com/lake-district-extra-mature-cheddar/", + "milk": "cow", + "country": "United Kingdom", + "region": "Cumbrian", + "family": "Cheddar", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "pale yellow", + "flavor": "sweet", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Lake District Cheese Company" + }, + { + "cheese": "Lake District Mature Cheddar", + "url": "https://www.cheese.com/lake-district-mature-cheddar/", + "milk": "cow", + "country": "United Kingdom", + "region": "Cumbrian", + "family": "Cheddar", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dense", + "rind": "NA", + "color": "pale yellow", + "flavor": "savory, sweet", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Lake District Cheese Company" + }, + { + "cheese": "Lamb Chopper", + "url": "https://www.cheese.com/lamb-chopper/", + "milk": "sheep", + "country": "Netherlands, United States", + "region": "California", + "family": "Gouda", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, firm, smooth", + "rind": "waxed", + "color": "ivory", + "flavor": "buttery, caramel, creamy, nutty, sweet", + "aroma": "mild, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cypress Grove Chevre" + }, + { + "cheese": "Lanark Blue", + "url": "https://www.cheese.com/lanark-blue/", + "milk": "sheep", + "country": "Scotland", + "region": "NA", + "family": "NA", + "type": "semi-soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "brittle, grainy", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Errington Cheese Ltd." + }, + { + "cheese": "Lanark White", + "url": "https://www.cheese.com/lanark-white/", + "milk": "sheep", + "country": "Scotland", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, crumbly, flaky", + "rind": "natural", + "color": "pale white", + "flavor": "grassy, milky, nutty, salty", + "aroma": "grassy, milky, musty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Errington Cheese Ltd." + }, + { + "cheese": "Lancashire Smoked", + "url": "https://www.cheese.com/lancashire-smoked/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, crumbly", + "rind": "natural", + "color": "red", + "flavor": "acidic, nutty, smokey , tangy, woody", + "aroma": "buttery, fresh, grassy, smokey", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Mrs. Kirkham's" + }, + { + "cheese": "Landaff", + "url": "https://www.cheese.com/landaff/", + "milk": "cow", + "country": "United States", + "region": "New Hampshire", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm, open", + "rind": "natural", + "color": "straw", + "flavor": "mild, tangy", + "aroma": "aromatic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Jasper Hill Farm, Landaff Creamery, LLC" + }, + { + "cheese": "Langres", + "url": "https://www.cheese.com/langres/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, firm", + "rind": "washed", + "color": "orange", + "flavor": "NA", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Lappi", + "url": "https://www.cheese.com/lappi/", + "milk": "cow", + "country": "Finland", + "region": "Lapland", + "family": "Swiss Cheese", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm, open, smooth", + "rind": "rindless", + "color": "yellow", + "flavor": "mild, sweet", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Largo", + "url": "https://www.cheese.com/largo/", + "milk": "cow", + "country": "United States", + "region": "California", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "mushroomy, nutty, sweet", + "aroma": "pleasant, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Andante Dairy" + }, + { + "cheese": "Laruns", + "url": "https://www.cheese.com/laruns/", + "milk": "sheep", + "country": "France", + "region": "Laruns", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "brittle, firm, supple", + "rind": "natural", + "color": "straw", + "flavor": "acidic, mild, nutty, salty, sweet", + "aroma": "mild", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Latteria Navel", + "url": "https://www.cheese.com/latteria-navel/", + "milk": "cow", + "country": "Italy", + "region": "Friuli-Venezia Giulia and the Veneto", + "family": "NA", + "type": "hard, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "brittle", + "rind": "natural", + "color": "straw", + "flavor": "full-flavored", + "aroma": "aromatic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Latteria San Biagio", + "url": "https://www.cheese.com/latteria-san-biagio/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "white", + "flavor": "acidic, sweet", + "aroma": "subtle", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Laura Chenel Taupiniere", + "url": "https://www.cheese.com/laura-chenel-taupiniere/", + "milk": "goat", + "country": "United States", + "region": "Carneros, Sonoma, California", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "ash coated", + "color": "white", + "flavor": "creamy, tart", + "aroma": "aromatic, fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Laura Chenel's Chevre" + }, + { + "cheese": "Laura Chenel Tome", + "url": "https://www.cheese.com/laura-chenel-tome/", + "milk": "goat", + "country": "United States", + "region": "Sonoma, California", + "family": "Cheddar", + "type": "firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dense, firm", + "rind": "cloth wrapped", + "color": "ivory", + "flavor": "caramel, savory", + "aroma": "rich, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Laura Chenel's Chevre" + }, + { + "cheese": "Laura Chenel's Cabecou", + "url": "https://www.cheese.com/laura-chenels-cabecou/", + "milk": "goat", + "country": "United States", + "region": "California", + "family": "NA", + "type": "fresh firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense, smooth", + "rind": "rindless", + "color": "cream", + "flavor": "creamy, mild, nutty", + "aroma": "mild, nutty, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Laura Chenel's Chevre" + }, + { + "cheese": "Lavistown", + "url": "https://www.cheese.com/lavistown/", + "milk": "cow", + "country": "Ireland", + "region": "Stoneyford", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dry, firm", + "rind": "natural", + "color": "yellow", + "flavor": "creamy, mild, milky, tangy, vegetal", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Knockdrinna Farmhouse Cheese" + }, + { + "cheese": "Le Brebiou", + "url": "https://www.cheese.com/le-brebiou/", + "milk": "sheep", + "country": "France", + "region": "Pyrénées-Atlantiques", + "family": "Brie", + "type": "semi-soft, artisan, soft-ripened", + "fat_content": "26%", + "calcium_content": "NA", + "texture": "creamy, firm, smooth", + "rind": "bloomy", + "color": "white", + "flavor": "mild, milky, sweet", + "aroma": "musty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Brebiou sheep cheese", + "alt_spellings": "Brebiou ligne et plaisir", + "producers": "NA" + }, + { + "cheese": "Le Brin", + "url": "https://www.cheese.com/le-brin/", + "milk": "cow", + "country": "France", + "region": "Rhone-Alps", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "40%", + "calcium_content": "NA", + "texture": "creamy, spreadable", + "rind": "washed", + "color": "white", + "flavor": "buttery, sweet", + "aroma": "aromatic, nutty, yeasty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fromagerie GUILLOTEAU" + }, + { + "cheese": "Le Cendrillon", + "url": "https://www.cheese.com/le-cendrillon/", + "milk": "goat", + "country": "Canada", + "region": "Quebec", + "family": "NA", + "type": "soft", + "fat_content": "25%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "ash coated", + "color": "ivory", + "flavor": "acidic, pronounced, sour", + "aroma": "goaty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Le Chevrot", + "url": "https://www.cheese.com/le-chevrot/", + "milk": "goat", + "country": "France", + "region": "Loire Valley", + "family": "NA", + "type": "soft", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "creamy, dense, firm", + "rind": "mold ripened", + "color": "cream", + "flavor": "herbaceous, nutty, strong", + "aroma": "goaty, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "SEVRE & BELLE" + }, + { + "cheese": "Le Conquerant Camembert", + "url": "https://www.cheese.com/le-conquerant-camembert/", + "milk": "cow", + "country": "France", + "region": "Pays d’Auge, Normandy", + "family": "Camembert", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft-ripened", + "rind": "waxed", + "color": "white", + "flavor": "fruity, yeasty", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Le Conquerant Demi Pont L'eveque", + "url": "https://www.cheese.com/le-conquerant-demi-pont-leveque/", + "milk": "cow", + "country": "Australia, France", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "chalky, creamy, soft", + "rind": "washed", + "color": "NA", + "flavor": "creamy, mild", + "aroma": "pungent", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fromagerie Graindorge, Will Studd Enterprizes Pty Ltd" + }, + { + "cheese": "Le Double Joie", + "url": "https://www.cheese.com/le-double-joie/", + "milk": "cow, goat", + "country": "Canada", + "region": "Quebec", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "27%", + "calcium_content": "NA", + "texture": "buttery, creamy, runny", + "rind": "bloomy", + "color": "cream", + "flavor": "buttery, creamy", + "aroma": "mushroom", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Le Duc Vacherin", + "url": "https://www.cheese.com/le-duc-vacherin/", + "milk": "cow", + "country": "France", + "region": "Franche Comté", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth, soft", + "rind": "washed", + "color": "ivory", + "flavor": "buttery, creamy, lemony, mild", + "aroma": "rich, woody", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fromagerie Jean Perrin" + }, + { + "cheese": "Le Fium Orbo", + "url": "https://www.cheese.com/le-fium-orbo/", + "milk": "goat, sheep", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "soft-ripened", + "rind": "natural", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Le Gruyère AOP", + "url": "https://www.cheese.com/le-gruyere-aop/", + "milk": "cow", + "country": "Switzerland", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "49-53%", + "calcium_content": "NA", + "texture": "compact", + "rind": "NA", + "color": "NA", + "flavor": "sweet", + "aroma": "earthy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Le Lacandou", + "url": "https://www.cheese.com/le-lacandou/", + "milk": "sheep", + "country": "France", + "region": "Aveyron", + "family": "NA", + "type": "soft, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "fruity", + "aroma": "grassy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Le Marquis Chevre", + "url": "https://www.cheese.com/le-marquis-chevre/", + "milk": "goat", + "country": "France", + "region": "Rhone Valley", + "family": "Cheddar", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft", + "rind": "natural", + "color": "ivory", + "flavor": "lemony, tangy", + "aroma": "mild", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cheese Slices" + }, + { + "cheese": "Le Maréchal", + "url": "https://www.cheese.com/le-marechal/", + "milk": "cow", + "country": "Switzerland", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, smooth", + "rind": "natural", + "color": "yellow", + "flavor": "buttery, creamy, floral, herbaceous", + "aroma": "buttery, floral, grassy, herbal", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Marechal", + "alt_spellings": "NA", + "producers": "Jean-Michel Rapin" + }, + { + "cheese": "Le Moutier", + "url": "https://www.cheese.com/le-moutier/", + "milk": "goat", + "country": "Canada", + "region": "Québec", + "family": "NA", + "type": "fresh firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "white", + "flavor": "sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fromagerie de l'Abbaye Saint-Benoît" + }, + { + "cheese": "Le Reflet de Portneuf", + "url": "https://www.cheese.com/le-reflet-de-portneuf/", + "milk": "", + "country": "Canada", + "region": "Quebec", + "family": "NA", + "type": "soft", + "fat_content": "30%", + "calcium_content": "NA", + "texture": "buttery, creamy", + "rind": "washed", + "color": "cream", + "flavor": "buttery, creamy, mushroomy", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Le St-Raymond", + "url": "https://www.cheese.com/le-st-raymond/", + "milk": "", + "country": "Canada", + "region": "Quebec", + "family": "NA", + "type": "soft", + "fat_content": "20%", + "calcium_content": "NA", + "texture": "smooth, supple", + "rind": "washed", + "color": "ivory", + "flavor": "fruity, nutty, woody", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "Le Saint-Raymond", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Le Wavreumont", + "url": "https://www.cheese.com/le-wavreumont/", + "milk": "cow", + "country": "Belgium", + "region": "Wallonia", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, semi firm, smooth, soft", + "rind": "washed", + "color": "pale yellow", + "flavor": "buttery, creamy, nutty, smooth, strong", + "aroma": "buttery, fresh, grassy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fromagerie des Ardennes sprl" + }, + { + "cheese": "Leafield", + "url": "https://www.cheese.com/leafield/", + "milk": "sheep", + "country": "Great Britain", + "region": "Oxfordshire", + "family": "Brie", + "type": "hard, artisan", + "fat_content": "48%", + "calcium_content": "NA", + "texture": "chewy", + "rind": "natural", + "color": "pale yellow", + "flavor": "fruity", + "aroma": "fruity", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Lebbene", + "url": "https://www.cheese.com/lebbene/", + "milk": "goat, sheep", + "country": "Israel", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "", + "rind": "natural", + "color": "white", + "flavor": "mild", + "aroma": "mild", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Gibne", + "alt_spellings": "Lebney, Labaneh", + "producers": "NA" + }, + { + "cheese": "Leerdammer", + "url": "https://www.cheese.com/leerdammer/", + "milk": "cow", + "country": "Netherlands", + "region": "Schoonrewoerd, Leerdam", + "family": "Gouda", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, open, smooth", + "rind": "natural", + "color": "white", + "flavor": "mild, nutty, sweet", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Legacy", + "url": "https://www.cheese.com/legacy/", + "milk": "cow", + "country": "United States", + "region": "Missouri", + "family": "Gouda", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "rindless", + "color": "pale yellow", + "flavor": "creamy", + "aroma": "aromatic", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Heartland Creamery" + }, + { + "cheese": "Legato", + "url": "https://www.cheese.com/legato/", + "milk": "cow", + "country": "United States", + "region": "California", + "family": "Camembert", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft-ripened", + "rind": "mold ripened", + "color": "pale yellow", + "flavor": "full-flavored", + "aroma": "strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Andante Dairy" + }, + { + "cheese": "Lemon Fetish", + "url": "https://www.cheese.com/lemon-fetish/", + "milk": "sheep", + "country": "Canada", + "region": "Prince Edward County, Ontario", + "family": "Feta", + "type": "fresh firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dry", + "rind": "natural", + "color": "white", + "flavor": "citrusy, lemony, salty, tangy", + "aroma": "clean, lactic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fifth Town Artisan Cheese" + }, + { + "cheese": "Lemon Myrtle Chevre", + "url": "https://www.cheese.com/lemon-myrtle-chevre/", + "milk": "goat", + "country": "Australia", + "region": "South Australia", + "family": "NA", + "type": "fresh firm, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, firm, smooth", + "rind": "rindless", + "color": "white", + "flavor": "acidic, herbaceous", + "aroma": "fresh, herbal", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Woodside Cheese Wrights" + }, + { + "cheese": "Leonora®", + "url": "https://www.cheese.com/leonora/", + "milk": "goat", + "country": "Spain", + "region": "Castilla Leon", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft-ripened", + "rind": "bloomy", + "color": "white", + "flavor": "lemony, mushroomy", + "aroma": "lactic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Les Calendos", + "url": "https://www.cheese.com/les-calendos/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Camembert", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, supple", + "rind": "bloomy", + "color": "cream", + "flavor": "creamy, full-flavored", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Leyden", + "url": "https://www.cheese.com/leyden/", + "milk": "cow", + "country": "Netherlands", + "region": "Leiden", + "family": "Gouda", + "type": "semi-hard, artisan", + "fat_content": "30-40%", + "calcium_content": "NA", + "texture": "firm", + "rind": "NA", + "color": "yellow", + "flavor": "spicy, tangy", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Leidse Kaas, Cumin cheese, Boeren-Leidse, Boeren-Leidse kaas, Farmers Leiden", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Liburnski Sir", + "url": "https://www.cheese.com/liburnski-sir/", + "milk": "cow, goat, sheep", + "country": "Croatia", + "region": "old Liburnia (Dalmatia)", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, open", + "rind": "natural", + "color": "golden yellow", + "flavor": "creamy, earthy, nutty, tart", + "aroma": "buttery, clean, goaty, mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "SIRANA GLIGORA D.O.O" + }, + { + "cheese": "Lil Moo", + "url": "https://www.cheese.com/lil-moo/", + "milk": "cow", + "country": "United States", + "region": "Georgia", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense, spreadable", + "rind": "rindless", + "color": "pale yellow", + "flavor": "creamy, smooth, sweet", + "aroma": "fresh, grassy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sweet Grass Dairy" + }, + { + "cheese": "Liliputas", + "url": "https://www.cheese.com/liliputas/", + "milk": "cow", + "country": "Lithuania", + "region": "Belvederis", + "family": "NA", + "type": "semi-hard", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "elastic, firm", + "rind": "waxed", + "color": "yellow", + "flavor": "milky", + "aroma": "fresh, lactic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Limburger", + "url": "https://www.cheese.com/limburger/", + "milk": "cow", + "country": "Belgium, Germany, Netherlands", + "region": "Duchy of Limburg", + "family": "NA", + "type": "semi-soft, smear-ripened", + "fat_content": "42%", + "calcium_content": "497 mg/100g", + "texture": "crumbly, firm, smooth", + "rind": "washed", + "color": "straw", + "flavor": "grassy, mild, mushroomy", + "aroma": "stinky", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Limburger Kase", + "producers": "NA" + }, + { + "cheese": "Lincoln Log", + "url": "https://www.cheese.com/lincoln-log/", + "milk": "goat", + "country": "United States", + "region": "Ann Arbor, MI", + "family": "NA", + "type": "semi-soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense", + "rind": "mold ripened", + "color": "white", + "flavor": "citrusy, lemony, mild, mushroomy, tangy", + "aroma": "goaty, milky", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Zingerman's Creamery" + }, + { + "cheese": "Lincolnshire Poacher", + "url": "https://www.cheese.com/lincolnshire-poacher/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "Cheddar", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "yellow", + "flavor": "nutty, sweet", + "aroma": "earthy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "F.W.Read & Sons Ltd" + }, + { + "cheese": "Lindale", + "url": "https://www.cheese.com/lindale/", + "milk": "cow", + "country": "United States", + "region": "North Carolina", + "family": "Gouda", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "pale yellow", + "flavor": "buttery, sweet", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Goat Lady Dairy" + }, + { + "cheese": "Lindy Hop", + "url": "https://www.cheese.com/lindy-hop/", + "milk": "cow", + "country": "United States", + "region": "Vermont", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "straw", + "flavor": "creamy, grassy, mild", + "aroma": "rich, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Dancing Cow Farm" + }, + { + "cheese": "Lingot des Causses", + "url": "https://www.cheese.com/lingot-des-causses/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "buttery, clean, fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Lingot Saint Bousquet d'Orb", + "url": "https://www.cheese.com/lingot-saint-bousquet-dorb/", + "milk": "goat", + "country": "France", + "region": "Herault", + "family": "Brie", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "natural", + "color": "white", + "flavor": "sweet", + "aroma": "herbal", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Liptauer", + "url": "https://www.cheese.com/liptauer/", + "milk": "cow", + "country": "United States", + "region": "Ann Arbor, Michigan", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "rindless", + "color": "brown", + "flavor": "garlicky, savory, spicy, sweet", + "aroma": "garlicky, spicy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Zingerman's Creamery" + }, + { + "cheese": "Little Bloom on the Prairie", + "url": "https://www.cheese.com/little-bloom-prairie/", + "milk": "goat", + "country": "United States", + "region": "Illinois", + "family": "Camembert", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense, smooth, soft-ripened", + "rind": "mold ripened", + "color": "white", + "flavor": "citrusy, creamy, mushroomy, tangy", + "aroma": "fresh, lactic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Prairie Fruits Farm" + }, + { + "cheese": "Little Colonel", + "url": "https://www.cheese.com/little-colonel/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Dorset", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth, supple", + "rind": "washed", + "color": "pale yellow", + "flavor": "spicy", + "aroma": "pungent", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "James’s Cheese" + }, + { + "cheese": "Little Dragon", + "url": "https://www.cheese.com/little-dragon/", + "milk": "goat", + "country": "United States", + "region": "Ann Arbor, Michigan", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "white", + "flavor": "citrusy, creamy, mellow, sweet", + "aroma": "fresh, herbal", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Zingerman's Creamery" + }, + { + "cheese": "Little Napoleon", + "url": "https://www.cheese.com/little-napoleon/", + "milk": "goat", + "country": "United States", + "region": "Ann Arbor, Michigan", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "mold ripened", + "color": "pale yellow", + "flavor": "acidic, savory", + "aroma": "goaty, pungent", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Zingerman's Creamery" + }, + { + "cheese": "Little Qualicum Raclette", + "url": "https://www.cheese.com/little-qualicum-raclette/", + "milk": "cow", + "country": "Canada", + "region": "British Columbia", + "family": "Raclette", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, supple", + "rind": "washed", + "color": "ivory", + "flavor": "meaty, strong", + "aroma": "pungent, stinky", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Little Qualicum Cheeseworks" + }, + { + "cheese": "Little Rydings", + "url": "https://www.cheese.com/little-rydings/", + "milk": "sheep", + "country": "England", + "region": "North Wootton", + "family": "NA", + "type": "soft, artisan", + "fat_content": "48%", + "calcium_content": "NA", + "texture": "creamy, smooth, springy", + "rind": "mold ripened", + "color": "white", + "flavor": "mild, sweet", + "aroma": "rich, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Wootton Organic Dairy" + }, + { + "cheese": "Little Ypsi", + "url": "https://www.cheese.com/little-ypsi/", + "milk": "goat", + "country": "United States", + "region": "Ann Arbor, Michigan", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, firm", + "rind": "natural", + "color": "ivory", + "flavor": "buttery", + "aroma": "buttery", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Zingerman's Creamery" + }, + { + "cheese": "Livarot", + "url": "https://www.cheese.com/livarot/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "washed", + "color": "NA", + "flavor": "full-flavored", + "aroma": "pungent, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Llanboidy", + "url": "https://www.cheese.com/llanboidy/", + "milk": "cow", + "country": "Wales", + "region": "Carmarthenshire", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, smooth", + "rind": "natural", + "color": "white", + "flavor": "buttery, spicy", + "aroma": "grassy, sweet", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Llanboidy" + }, + { + "cheese": "Llanglofan Farmhouse", + "url": "https://www.cheese.com/llanglofan-farmhouse/", + "milk": "cow", + "country": "Great Britain, United Kingdom, Wales", + "region": "Pembrokeshire", + "family": "NA", + "type": "hard, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "crumbly, firm, smooth", + "rind": "natural", + "color": "yellow", + "flavor": "citrusy, savory, smokey , spicy", + "aroma": "lactic, smokey", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Llangloffan White Farmhouse Cheese, Llangloffan Red Farmhouse Cheese, Llangloffan Smoked Farmhouse Cheese, Llangloffan Garlic & Chive Farmhouse Cheese", + "producers": "CARMARTHENSHIRE CHEESE COMPANY" + }, + { + "cheese": "Lo Sburrato", + "url": "https://www.cheese.com/lo-sburrato/", + "milk": "sheep", + "country": "Italy", + "region": "Tuscany", + "family": "Pecorino", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, creamy", + "rind": "natural", + "color": "straw", + "flavor": "creamy, smooth, sweet", + "aroma": "aromatic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Caseificio Pinzani Srl" + }, + { + "cheese": "Lo Speziato", + "url": "https://www.cheese.com/lo-speziato/", + "milk": "cow", + "country": "Italy", + "region": "Treviso, Veneto", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact", + "rind": "natural", + "color": "ivory", + "flavor": "full-flavored, spicy", + "aroma": "fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Moro Latteria di Moro Sergio" + }, + { + "cheese": "Loch Arthur Farmhouse", + "url": "https://www.cheese.com/loch-arthur-farmhouse/", + "milk": "cow", + "country": "Scotland", + "region": "Dumfries", + "family": "Cheddar", + "type": "hard", + "fat_content": "48%", + "calcium_content": "NA", + "texture": "firm", + "rind": "NA", + "color": "NA", + "flavor": "nutty", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Loch Arthur Creamery" + }, + { + "cheese": "Loddiswell Avondale", + "url": "https://www.cheese.com/loddiswell-avondale/", + "milk": "goat", + "country": "England", + "region": "Devon", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "washed", + "color": "orange", + "flavor": "sweet", + "aroma": "goaty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Jocelyn and Bill Martin" + }, + { + "cheese": "Loma Alta", + "url": "https://www.cheese.com/loma-alta/", + "milk": "cow", + "country": "United States", + "region": "California", + "family": "Camembert", + "type": "semi-soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "mold ripened", + "color": "white", + "flavor": "buttery, nutty", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Blue Mountain", + "alt_spellings": "NA", + "producers": "Nicasio Valley Cheese Company" + }, + { + "cheese": "Longhorn", + "url": "https://www.cheese.com/longhorn/", + "milk": "cow", + "country": "United States", + "region": "Colby, Wisconsin", + "family": "Cheddar", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, open, springy", + "rind": "rindless", + "color": "orange", + "flavor": "mild, sweet", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Colby Longhorn, Longhorn Cheddar, Colby Jack Longhorn, Pepper Jack Longhorn, Low Sodium Colby Longhorn", + "producers": "Williams Cheese Company" + }, + { + "cheese": "Lord of the Hundreds", + "url": "https://www.cheese.com/lord-hundreds/", + "milk": "sheep", + "country": "United Kingdom", + "region": "East Sussex", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, grainy, open", + "rind": "natural", + "color": "golden yellow", + "flavor": "burnt caramel, nutty, savory, sweet", + "aroma": "grassy, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Traditional Cheese Dairy" + }, + { + "cheese": "Lost Lake", + "url": "https://www.cheese.com/lost-lake/", + "milk": "sheep", + "country": "Canada", + "region": "Prince Edward County, Ontario", + "family": "NA", + "type": "fresh firm, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, semi firm, soft", + "rind": "mold ripened", + "color": "white", + "flavor": "creamy, mushroomy", + "aroma": "rich, yeasty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fifth Town Artisan Cheese" + }, + { + "cheese": "Lou Bergier Pichin", + "url": "https://www.cheese.com/lou-bergier/", + "milk": "cow", + "country": "Italy", + "region": "Piemonte", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, open, smooth", + "rind": "natural", + "color": "brown", + "flavor": "creamy, floral, mushroomy", + "aroma": "grassy, milky", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Lou Bergier Pichin", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Lou Palou", + "url": "https://www.cheese.com/lou-palou/", + "milk": "cow", + "country": "France", + "region": "Pyrénées", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "elastic, smooth", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "pleasant", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Lou Pevre", + "url": "https://www.cheese.com/lou-pevre/", + "milk": "goat", + "country": "France", + "region": "Provence", + "family": "NA", + "type": "soft, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "natural", + "color": "white", + "flavor": "acidic", + "aroma": "goaty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Lunetta", + "url": "https://www.cheese.com/lunetta/", + "milk": "cow", + "country": "Canada, Italy", + "region": "Lombardy", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "white", + "flavor": "creamy, salty", + "aroma": "aromatic, fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fifth Town Artisan Cheese" + }, + { + "cheese": "Lyburn Garlic and Nettle", + "url": "https://www.cheese.com/lyburn-garlic-and-nettle/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Landford", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, open, smooth", + "rind": "washed", + "color": "pale yellow", + "flavor": "garlicky, herbaceous, pronounced, spicy, strong", + "aroma": "aromatic, rich, strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Lyburn Farm" + }, + { + "cheese": "Lyburn Gold", + "url": "https://www.cheese.com/lyburn-gold/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Landford", + "family": "Gouda", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, open, smooth", + "rind": "washed", + "color": "brownish yellow", + "flavor": "nutty", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Lyburn Farm" + }, + { + "cheese": "Lyburn Lightly Oak Smoked", + "url": "https://www.cheese.com/lyburn-lightly-oak-smoked/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Landford", + "family": "Gouda", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "washed", + "color": "pale yellow", + "flavor": "smokey , smooth, subtle", + "aroma": "smokey", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Lyburn Farm" + }, + { + "cheese": "Lyburn's Winchester", + "url": "https://www.cheese.com/lyburns-winchester/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Landford", + "family": "Gouda", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "brownish yellow", + "flavor": "creamy, nutty", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Lyburn Farm" + }, + { + "cheese": "Maasdam", + "url": "https://www.cheese.com/maasdam/", + "milk": "cow", + "country": "Netherlands", + "region": "All Holland", + "family": "Gouda", + "type": "semi-hard", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, open, supple", + "rind": "NA", + "color": "pale yellow", + "flavor": "buttery, nutty, sweet", + "aroma": "fruity", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Maasdammer", + "producers": "NA" + }, + { + "cheese": "Macadamia Nut Cheese", + "url": "https://www.cheese.com/macadamia-nut-cheese/", + "milk": "", + "country": "United States", + "region": "Brooklyn NY", + "family": "NA", + "type": "firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, spreadable", + "rind": "NA", + "color": "brown", + "flavor": "creamy, nutty, sweet", + "aroma": "nutty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Aged Macadamia Cheese", + "producers": "Dr. Cow Tree Nut Cheese" + }, + { + "cheese": "Macconais", + "url": "https://www.cheese.com/macconais/", + "milk": "cow, goat", + "country": "France", + "region": "Bourgogne", + "family": "Blue", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm, smooth", + "rind": "bloomy", + "color": "cream", + "flavor": "salty, tangy", + "aroma": "herbal", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Chevreton de Macon", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Madrona", + "url": "https://www.cheese.com/madrona/", + "milk": "goat", + "country": "United States", + "region": "Oregon", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "ivory", + "flavor": "mild", + "aroma": "fruity, herbal", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Briar Rose Creamery" + }, + { + "cheese": "Maffra Aged Rinded Cheddar", + "url": "https://www.cheese.com/maffra-aged-rinded-cheddar/", + "milk": "cow", + "country": "Australia", + "region": "Gippsland, Victoria", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, crumbly, firm", + "rind": "cloth wrapped", + "color": "straw", + "flavor": "earthy, meaty, sweet", + "aroma": "grassy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Maffra Cloth Bound Cheddar", + "alt_spellings": "NA", + "producers": "Maffra Cheese Company Pty Ltd" + }, + { + "cheese": "Maffra Cheshire", + "url": "https://www.cheese.com/maffra-cheshire/", + "milk": "cow", + "country": "Australia", + "region": "Gippsland, Victoria", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "mellow, salty, sharp, tart", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Maffra Cheese Company Pty Ltd" + }, + { + "cheese": "Maffra Dargo Walnut", + "url": "https://www.cheese.com/maffra-dargo-walnut/", + "milk": "cow", + "country": "Australia", + "region": "Gippsland, Victoria", + "family": "Cheddar", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dense, firm, flaky", + "rind": "natural", + "color": "golden yellow", + "flavor": "mild, nutty, sweet", + "aroma": "nutty, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Maffra Dargo Walnut Red Leicester", + "alt_spellings": "NA", + "producers": "Maffra Cheese Company Pty Ltd" + }, + { + "cheese": "Maffra Mature Cheddar", + "url": "https://www.cheese.com/maffra-mature-cheddar/", + "milk": "cow", + "country": "Australia", + "region": "Gippsland, Victoria", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, firm, smooth", + "rind": "waxed", + "color": "yellow", + "flavor": "acidic, salty, smooth", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Mature Cheddar Red Wax, Maffra Red Wax Cheddar", + "alt_spellings": "NA", + "producers": "Maffra Cheese Company Pty Ltd" + }, + { + "cheese": "Maffra Peppercorn Cheddar", + "url": "https://www.cheese.com/maffra-peppercorn-cheddar/", + "milk": "cow", + "country": "Australia", + "region": "Gippsland, Victoria", + "family": "Cheddar", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm", + "rind": "natural", + "color": "yellow", + "flavor": "creamy, spicy", + "aroma": "spicy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Maffra Cheese Company Pty Ltd" + }, + { + "cheese": "Maffra Red Leicester", + "url": "https://www.cheese.com/maffra-red-leicester/", + "milk": "cow", + "country": "Australia", + "region": "Gippsland, Victoria", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, dense, smooth", + "rind": "NA", + "color": "brownish yellow", + "flavor": "creamy, mellow, smooth", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Maffra Cheese Company Pty Ltd" + }, + { + "cheese": "Maffra Sage Derby", + "url": "https://www.cheese.com/maffra-sage-derby/", + "milk": "cow", + "country": "Australia", + "region": "Gippsland, Victoria", + "family": "Cheddar", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, smooth", + "rind": "NA", + "color": "pale yellow", + "flavor": "creamy, herbaceous, smooth", + "aroma": "herbal, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Maffra Cheese Company Pty Ltd" + }, + { + "cheese": "Maffra Wensleydale", + "url": "https://www.cheese.com/maffra-wensleydale/", + "milk": "cow", + "country": "Australia", + "region": "Gippsland, Victoria", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, lemony", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Maffra Cheese Company Pty Ltd" + }, + { + "cheese": "Maggie's Round", + "url": "https://www.cheese.com/maggies-round/", + "milk": "cow", + "country": "United States", + "region": "Massachusetts", + "family": "Tomme", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, smooth", + "rind": "natural", + "color": "blue-grey", + "flavor": "buttery, citrusy, nutty, sharp", + "aroma": "earthy, fruity, herbal", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cricket Creek Farm" + }, + { + "cheese": "Magna", + "url": "https://www.cheese.com/magna/", + "milk": "cow", + "country": "Sweden", + "region": "Oviken", + "family": "Blue", + "type": "firm, artisan, blue-veined", + "fat_content": "34%", + "calcium_content": "NA", + "texture": "", + "rind": "mold ripened", + "color": "ivory", + "flavor": "full-flavored, salty, sharp", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Oviken cheese" + }, + { + "cheese": "Mahoe Aged Gouda", + "url": "https://www.cheese.com/mahoe-aged-gouda/", + "milk": "cow", + "country": "Netherlands", + "region": "NA", + "family": "Gouda", + "type": "NA", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "NA", + "color": "yellow", + "flavor": "nutty", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Mahoe Farmhouse Cheese" + }, + { + "cheese": "Mahón", + "url": "https://www.cheese.com/mahon/", + "milk": "cow", + "country": "Spain", + "region": "Menorca, Balearic Islands", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dense", + "rind": "washed", + "color": "pale yellow", + "flavor": "buttery, salty", + "aroma": "nutty, sweet", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Mahon Reserva, Aged Mahon, Artesano Mahón, Artisanal Mahón, formatge de Maó, queso de Mahón", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Maida Vale", + "url": "https://www.cheese.com/maida-vale/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, soft, supple", + "rind": "washed", + "color": "pink and white", + "flavor": "grassy, meaty, nutty, savory, umami, vegetal", + "aroma": "barnyardy, earthy, grassy, stinky, yeasty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Village Maid Cheese" + }, + { + "cheese": "Maisie's Kebbuck", + "url": "https://www.cheese.com/maisies-kebbuck/", + "milk": "cow", + "country": "Great Britain, Scotland, United Kingdom", + "region": "Lanarkshire", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "29.8%", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "natural", + "color": "white", + "flavor": "NA", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Errington Cheese Ltd." + }, + { + "cheese": "Majorero", + "url": "https://www.cheese.com/majorero/", + "milk": "goat", + "country": "Spain", + "region": "Canary Islands", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy", + "rind": "natural", + "color": "pale white", + "flavor": "acidic", + "aroma": "milky, nutty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Queso Majorero, Queso Fuerteventura, Majorero PDO, Majorero DOP", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Malvarosa®", + "url": "https://www.cheese.com/malvarosa/", + "milk": "sheep", + "country": "Spain", + "region": "Valencia", + "family": "NA", + "type": "semi-firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, smooth", + "rind": "natural", + "color": "straw", + "flavor": "buttery, sweet", + "aroma": "fresh, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Malvarosa", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Malvern", + "url": "https://www.cheese.com/malvern/", + "milk": "sheep", + "country": "England, Great Britain, United Kingdom", + "region": "Severn Valley", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "creamy, dense", + "rind": "NA", + "color": "ivory", + "flavor": "butterscotch, herbaceous, sweet", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Mamirolle", + "url": "https://www.cheese.com/mamirolle/", + "milk": "cow", + "country": "Canada, France", + "region": "Plessisville, Quebec", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "23%", + "calcium_content": "NA", + "texture": "chewy, supple", + "rind": "washed", + "color": "ivory", + "flavor": "buttery, fruity, salty, sweet", + "aroma": "earthy, pungent", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Eco-Delices Inc." + }, + { + "cheese": "Manchego", + "url": "https://www.cheese.com/manchego/", + "milk": "sheep", + "country": "Spain", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, firm", + "rind": "NA", + "color": "pale yellow", + "flavor": "buttery, nutty", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Queso Manchego", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Mandolin", + "url": "https://www.cheese.com/mandolin/", + "milk": "cow", + "country": "Australia", + "region": "South Australia", + "family": "NA", + "type": "semi-hard, artisan, smear-ripened", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "crumbly, soft, supple", + "rind": "leaf wrapped", + "color": "pale yellow", + "flavor": "creamy, grassy, smooth", + "aroma": "grassy, herbal", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Woodside Cheese Wrights" + }, + { + "cheese": "Mango Rebel", + "url": "https://www.cheese.com/mango-rebel/", + "milk": "cow", + "country": "Austria", + "region": "Sulzberg", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "creamy, firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "fruity, spicy", + "aroma": "fresh, fruity", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Mangorebell", + "alt_spellings": "NA", + "producers": "Sulzberger Käserebellen Sennerei GmbH" + }, + { + "cheese": "Manon", + "url": "https://www.cheese.com/manon/", + "milk": "goat", + "country": "Australia", + "region": "South Australia", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "leaf wrapped", + "color": "white", + "flavor": "creamy, garlicky, spicy, strong", + "aroma": "aromatic, garlicky, spicy, strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Woodside Cheese Wrights" + }, + { + "cheese": "Manouri", + "url": "https://www.cheese.com/manouri/", + "milk": "goat, sheep", + "country": "Greece", + "region": "Central and Western Macedonia, Thessalia", + "family": "Feta", + "type": "semi-soft, whey", + "fat_content": "36-38%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "rindless", + "color": "white", + "flavor": "mild, milky", + "aroma": "clean, nutty, subtle", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Manoypi", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Manteca", + "url": "https://www.cheese.com/manteca/", + "milk": "cow", + "country": "Italy", + "region": "Basilicata", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, elastic, stringy", + "rind": "natural", + "color": "pale yellow", + "flavor": "buttery", + "aroma": "floral, fruity", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Butirro , Burrino, Burriello", + "alt_spellings": "NA", + "producers": "Casa Madaio" + }, + { + "cheese": "Manur", + "url": "https://www.cheese.com/manur/", + "milk": "cow, sheep", + "country": "Serbia", + "region": "NA", + "family": "NA", + "type": "hard, artisan", + "fat_content": "40%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "NA", + "flavor": "salty", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Marble Cheddar", + "url": "https://www.cheese.com/marble-cheddar/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "Cheddar", + "type": "hard, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, smooth", + "rind": "rindless", + "color": "NA", + "flavor": "creamy", + "aroma": "rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Marble Cheese", + "url": "https://www.cheese.com/marbled-cheeses/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "hard, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "rindless", + "color": "golden orange", + "flavor": "mild, smooth, sweet, tangy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Marble Cheddar, Marbled Cheese", + "producers": "NA" + }, + { + "cheese": "Marco Polo", + "url": "https://www.cheese.com/marco-polo/", + "milk": "cow", + "country": "United States", + "region": "Seattle, Washington", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "cloth wrapped", + "color": "ivory", + "flavor": "creamy", + "aroma": "clean, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Beecher's" + }, + { + "cheese": "Maredsous", + "url": "https://www.cheese.com/maredsous/", + "milk": "cow", + "country": "Belgium", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Margot", + "url": "https://www.cheese.com/margotin/", + "milk": "cow", + "country": "Italy", + "region": "Piemonte", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "cream", + "flavor": "bitter, full-flavored", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Maribo", + "url": "https://www.cheese.com/maribo/", + "milk": "cow", + "country": "Denmark", + "region": "Maribo", + "family": "Gouda", + "type": "semi-hard, artisan", + "fat_content": "35-40%", + "calcium_content": "NA", + "texture": "creamy, firm, open", + "rind": "waxed", + "color": "pale yellow", + "flavor": "tangy", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Marin French Triple Crème", + "url": "https://www.cheese.com/marin-french-triple-creme/", + "milk": "cow", + "country": "United States", + "region": "Petaluma, California", + "family": "Brie", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "fluffy, smooth", + "rind": "bloomy", + "color": "NA", + "flavor": "sweet", + "aroma": "rich, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "3 Triple Crème Brie, Truffle Brie, Triple Crème Brie with Truffles", + "alt_spellings": "NA", + "producers": "Marin French Cheese" + }, + { + "cheese": "Marisa", + "url": "https://www.cheese.com/marisa/", + "milk": "sheep", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, firm", + "rind": "NA", + "color": "white", + "flavor": "mellow, sweet", + "aroma": "pleasant", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Carr Valley Cheese Company" + }, + { + "cheese": "Maroilles", + "url": "https://www.cheese.com/maroilles/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "NA", + "flavor": "sweet", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Marolles", + "producers": "NA" + }, + { + "cheese": "Martha's Heat", + "url": "https://www.cheese.com/marthas-heat/", + "milk": "cow", + "country": "Australia", + "region": "Mornington Peninsula, Melbourne", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "brownish yellow", + "flavor": "smokey , spicy", + "aroma": "smokey, spicy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "BoatShed Cheese" + }, + { + "cheese": "Mascares", + "url": "https://www.cheese.com/mascares/", + "milk": "goat, sheep", + "country": "France", + "region": "Provencale", + "family": "Tomme", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "leaf wrapped", + "color": "white", + "flavor": "NA", + "aroma": "earthy, floral", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Mascarpone", + "url": "https://www.cheese.com/mascarpone/", + "milk": "cow", + "country": "Italy", + "region": "Lombardy", + "family": "NA", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, smooth, spreadable", + "rind": "rindless", + "color": "white", + "flavor": "buttery, creamy, mild", + "aroma": "fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Mascarpone Australian", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Mastorazio", + "url": "https://www.cheese.com/mastorazio/", + "milk": "sheep", + "country": "Italy", + "region": "Campania", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, dense", + "rind": "natural", + "color": "pale yellow", + "flavor": "herbaceous, nutty, sharp, spicy", + "aroma": "herbal, milky", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Casa Madaio" + }, + { + "cheese": "Matocq", + "url": "https://www.cheese.com/matocq/", + "milk": "cow, sheep", + "country": "France", + "region": "NA", + "family": "NA", + "type": "semi-hard, processed", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "chewy", + "rind": "NA", + "color": "cream", + "flavor": "acidic, nutty", + "aroma": "nutty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Mature Wensleydale", + "url": "https://www.cheese.com/mature-wensleydale/", + "milk": "cow", + "country": "England, United Kingdom", + "region": "North Yorkshire", + "family": "NA", + "type": "hard, artisan", + "fat_content": "48%", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "cloth wrapped", + "color": "pale yellow", + "flavor": "strong", + "aroma": "rich, ripe", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Ryp Wensleydale", + "producers": "Wensleydale Creamery" + }, + { + "cheese": "May Hill Green", + "url": "https://www.cheese.com/may-hill-green/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Gloucestershire", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "runny", + "rind": "leaf wrapped", + "color": "cream", + "flavor": "creamy, milky", + "aroma": "strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Mayhill Green", + "producers": "Charles Martell & Son Limited" + }, + { + "cheese": "Maytag Blue", + "url": "https://www.cheese.com/maytag-blue/", + "milk": "cow", + "country": "United States", + "region": "Iowa", + "family": "Blue", + "type": "semi-hard, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dense", + "rind": "rindless", + "color": "cream", + "flavor": "lemony, savory, tangy", + "aroma": "pungent, strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Maytag Dairy Farms" + }, + { + "cheese": "McLaren", + "url": "https://www.cheese.com/mclaren/", + "milk": "cow", + "country": "Australia", + "region": "South Australia", + "family": "Camembert", + "type": "soft, artisan, soft-ripened", + "fat_content": "35%", + "calcium_content": "NA", + "texture": "chalky, creamy, soft, soft-ripened", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "creamy, mushroomy, smooth", + "aroma": "mushroom, rich, strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Woodside Cheese Wrights" + }, + { + "cheese": "Medallion", + "url": "https://www.cheese.com/medallion/", + "milk": "cow", + "country": "United States", + "region": "Maine", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "mushroomy, sweet", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Lakin's Gorges Cheese LLC" + }, + { + "cheese": "Meira", + "url": "https://www.cheese.com/meira/", + "milk": "sheep", + "country": "Iraq", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Mira", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Melange", + "url": "https://www.cheese.com/melange/", + "milk": "cow, goat", + "country": "United States", + "region": "California", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, soft-ripened", + "rind": "bloomy", + "color": "cream", + "flavor": "piquant, spicy, sweet, tart", + "aroma": "goaty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Andante Dairy" + }, + { + "cheese": "Melange Brie", + "url": "https://www.cheese.com/melange-brie/", + "milk": "cow, goat", + "country": "United States", + "region": "California", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, soft-ripened", + "rind": "bloomy", + "color": "ivory", + "flavor": "buttery, creamy, mild, piquant, sweet, tangy", + "aroma": "earthy, goaty, mushroom", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Marin French Cheeese Co." + }, + { + "cheese": "Melinda Mae", + "url": "https://www.cheese.com/melinda-mae/", + "milk": "cow", + "country": "United States", + "region": "Lebanon, CT", + "family": "Brie", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, fluffy, runny, smooth, soft", + "rind": "bloomy", + "color": "ivory", + "flavor": "buttery, mild, piquant, pungent, savory, subtle, sweet", + "aroma": "fruity, musty, yeasty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Mystic Cheese Company" + }, + { + "cheese": "Melville", + "url": "https://www.cheese.com/melville/", + "milk": "goat", + "country": "United States", + "region": "Lebanon, CT", + "family": "NA", + "type": "fresh soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "elastic, oily, soft, supple", + "rind": "NA", + "color": "white", + "flavor": "acidic, buttery, mild, sweet, tart", + "aroma": "fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Mystic Cheese Company" + }, + { + "cheese": "Menage", + "url": "https://www.cheese.com/menage/", + "milk": "cow, goat, sheep", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dry, firm", + "rind": "waxed", + "color": "ivory", + "flavor": "full-flavored, strong", + "aroma": "pleasant", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Carr Valley Cheese Company" + }, + { + "cheese": "Menallack Farmhouse", + "url": "https://www.cheese.com/menallack-farmhouse/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Menonita", + "url": "https://www.cheese.com/menonita/", + "milk": "cow", + "country": "Mexico", + "region": "NA", + "family": "Cheddar", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "buttery, mild", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Queso Chihuahua, Chihuahua cheese, Queso menonita, Campresino Menonita", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Meredith Ashed Pyramids", + "url": "https://www.cheese.com/meredith-ashed-pyramids/", + "milk": "goat", + "country": "Australia", + "region": "Victoria", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "ash coated", + "color": "white", + "flavor": "creamy, smooth", + "aroma": "fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Meredith Dairy" + }, + { + "cheese": "Meredith Blue", + "url": "https://www.cheese.com/meredith-blue/", + "milk": "sheep", + "country": "Australia", + "region": "Ballarat, Victoria", + "family": "Blue", + "type": "soft, semi-soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "blue", + "flavor": "mild, mushroomy, sweet", + "aroma": "fresh, goaty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Meredith Dairy" + }, + { + "cheese": "Meredith Chevre Ash", + "url": "https://www.cheese.com/meredith-chevre-ash/", + "milk": "goat", + "country": "Australia", + "region": "Victoria", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "ash coated", + "color": "white", + "flavor": "creamy, smooth", + "aroma": "clean, fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Meredith Dairy" + }, + { + "cheese": "Meredith Chevre Dill", + "url": "https://www.cheese.com/meredith-chevre-dill/", + "milk": "goat", + "country": "Australia", + "region": "Victoria", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "rindless", + "color": "white", + "flavor": "herbaceous, smooth", + "aroma": "aromatic, clean, fresh, herbal", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Meredith Dairy" + }, + { + "cheese": "Meredith Chevre Plain", + "url": "https://www.cheese.com/meredith-chevre-plain/", + "milk": "goat", + "country": "Australia", + "region": "Victoria", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "rindless", + "color": "white", + "flavor": "acidic, smooth", + "aroma": "clean, fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Meredith Dairy" + }, + { + "cheese": "Meredith Goat Cheese in Extra Virgin Olive Oil", + "url": "https://www.cheese.com/meredith-goat-cheese-in-extra-virgin-olive-oil/", + "milk": "goat", + "country": "Australia", + "region": "Victoria", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "NA", + "color": "white", + "flavor": "garlicky, herbaceous, spicy", + "aroma": "fresh, herbal, spicy, strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Meredith Dairy" + }, + { + "cheese": "Merry Wyfe", + "url": "https://www.cheese.com/merry-wyfe/", + "milk": "cow", + "country": "United Kingdom", + "region": "South West England", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, springy", + "rind": "washed", + "color": "orange", + "flavor": "NA", + "aroma": "aromatic", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Bath Soft Cheese Co." + }, + { + "cheese": "Mersey Valley Original Vintage", + "url": "https://www.cheese.com/mersey-valley-original-vintage/", + "milk": "cow", + "country": "Australia", + "region": "Tasmania", + "family": "Cheddar", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, spreadable", + "rind": "natural", + "color": "yellow", + "flavor": "buttery, full-flavored, sharp", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "Mersey Valley Vintage", + "producers": "Mersey Valley - National Foods" + }, + { + "cheese": "Metronome", + "url": "https://www.cheese.com/metronome/", + "milk": "cow, goat", + "country": "United States", + "region": "California", + "family": "NA", + "type": "semi-soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "buttery, tart", + "aroma": "goaty, grassy, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Andante Dairy" + }, + { + "cheese": "Mettowee", + "url": "https://www.cheese.com/mettowee/", + "milk": "goat", + "country": "United States", + "region": "Vermont", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "white", + "flavor": "acidic, creamy, tangy, tart", + "aroma": "clean, fresh, subtle", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Consider Bardwell Farm" + }, + { + "cheese": "Meyer Vintage Gouda", + "url": "https://www.cheese.com/meyer-vintage-gouda/", + "milk": "cow", + "country": "New Zealand", + "region": "Hamilton", + "family": "Gouda", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "NA", + "color": "NA", + "flavor": "nutty, sharp, spicy", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "MezzaLuna Fontina", + "url": "https://www.cheese.com/mezzaluna-fontina/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "washed", + "color": "NA", + "flavor": "earthy, mild, mushroomy, yeasty", + "aroma": "rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Emmi Roth USA" + }, + { + "cheese": "Mezzo Secco", + "url": "https://www.cheese.com/mezzo-secco/", + "milk": "cow", + "country": "United States", + "region": "Sonoma, California", + "family": "Monterey Jack", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "ivory", + "flavor": "milky", + "aroma": "spicy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Oro Secco", + "alt_spellings": "NA", + "producers": "Vella Cheese Company" + }, + { + "cheese": "Mi-Ewe", + "url": "https://www.cheese.com/mi-ewe/", + "milk": "cow, sheep", + "country": "United States", + "region": "California", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "buttery, citrusy, nutty, sharp", + "aroma": "caramel, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Weirauch Farm and Creamery" + }, + { + "cheese": "Midnight Blue", + "url": "https://www.cheese.com/midnight-blue/", + "milk": "goat", + "country": "United States", + "region": "Colorado", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, dry", + "rind": "natural", + "color": "pale yellow", + "flavor": "pungent, sharp, spicy", + "aroma": "goaty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Avalanche Cheese Company" + }, + { + "cheese": "Midnight Moon®", + "url": "https://www.cheese.com/midnight-moon/", + "milk": "goat", + "country": "Holland", + "region": "NA", + "family": "Gouda", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crystalline", + "rind": "NA", + "color": "ivory", + "flavor": "caramel, sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Miette", + "url": "https://www.cheese.com/miette/", + "milk": "goat, sheep", + "country": "United States", + "region": "Missouri", + "family": "Brie", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, runny", + "rind": "bloomy", + "color": "cream", + "flavor": "mushroomy, sweet, yeasty", + "aroma": "barnyardy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Baetje Farms LLC" + }, + { + "cheese": "Mihalic Peynir", + "url": "https://www.cheese.com/mihalic-peynir/", + "milk": "sheep", + "country": "Turkey", + "region": "Bursa", + "family": "NA", + "type": "hard, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "crumbly, grainy, open", + "rind": "NA", + "color": "pale yellow", + "flavor": "salty", + "aroma": "strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Milawa Affine", + "url": "https://www.cheese.com/milawa-affine/", + "milk": "goat", + "country": "Australia", + "region": "North East Victoria", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, smooth", + "rind": "ash coated", + "color": "white", + "flavor": "acidic, creamy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Milawa Ashed Chèvre", + "alt_spellings": "NA", + "producers": "Milawa Cheese Company" + }, + { + "cheese": "Milawa Aged Blue", + "url": "https://www.cheese.com/milawa-aged-blue/", + "milk": "", + "country": "", + "region": "North East Victoria", + "family": "Blue", + "type": "NA", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "mold ripened", + "color": "blue", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Milawa Blue", + "url": "https://www.cheese.com/milawa-blue/", + "milk": "cow", + "country": "Australia", + "region": "North East Victoria", + "family": "Blue", + "type": "soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "mold ripened", + "color": "blue", + "flavor": "buttery, creamy, sweet", + "aroma": "rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Milawa Cheese Company" + }, + { + "cheese": "Milawa Brie", + "url": "https://www.cheese.com/milawa-brie/", + "milk": "cow", + "country": "Australia", + "region": "North East Victoria", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "27%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "mold ripened", + "color": "pale yellow", + "flavor": "buttery, milky", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Milawa Cheese Company" + }, + { + "cheese": "Milawa Goats Tomme", + "url": "https://www.cheese.com/milawa-goats-tomme/", + "milk": "goat", + "country": "Australia", + "region": "North East Victoria", + "family": "Tomme", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, dense", + "rind": "natural", + "color": "yellow", + "flavor": "savory, spicy", + "aroma": "earthy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Milawa Cheese Company" + }, + { + "cheese": "Milawa White", + "url": "https://www.cheese.com/milawa-white/", + "milk": "cow", + "country": "Australia", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, open", + "rind": "NA", + "color": "NA", + "flavor": "sweet", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Milawa Cheese Company" + }, + { + "cheese": "Milbenkäse", + "url": "https://www.cheese.com/milbenkase/", + "milk": "cow", + "country": "Germany", + "region": "NA", + "family": "NA", + "type": "semi-soft, smear-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "NA", + "color": "NA", + "flavor": "tangy", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Milbenkäse, Mite Cheese", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Milleens", + "url": "https://www.cheese.com/milleens/", + "milk": "cow", + "country": "Ireland", + "region": "Beara Peninsula, Co. Cork", + "family": "NA", + "type": "soft, artisan", + "fat_content": "45-50%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "pale yellow", + "flavor": "floral, herbaceous, sweet", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Milleens Cheese Ltd." + }, + { + "cheese": "Millstone", + "url": "https://www.cheese.com/millstone/", + "milk": "sheep", + "country": "England", + "region": "Somerset", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dry", + "rind": "natural", + "color": "pale yellow", + "flavor": "NA", + "aroma": "mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Wootton Organic Dairy" + }, + { + "cheese": "Mimolette (Boule de Lille)", + "url": "https://www.cheese.com/mimolette-boule-de-lille/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "orange", + "flavor": "bitter, buttery, sweet", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "vieux Hollande, Boule de Lille", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Minas cheese", + "url": "https://www.cheese.com/minas-cheese/", + "milk": "cow", + "country": "Brazil", + "region": "Minas Gerais", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "40-50%", + "calcium_content": "NA", + "texture": "grainy, open, soft, springy", + "rind": "rindless", + "color": "white", + "flavor": "bitter, mild, salty, strong", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Queijos de Minas Frescal , Queijo Minas Meia Cura, Queijo Minas Curado, Queijo Padrão", + "alt_spellings": "Queijo Minas", + "producers": "NA" + }, + { + "cheese": "Mine-Gabhar", + "url": "https://www.cheese.com/mine-gabhar/", + "milk": "goat", + "country": "Ireland", + "region": "County Wexford", + "family": "Blue", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "white", + "flavor": "acidic, sweet", + "aroma": "earthy, pungent", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Luc and Anne Van Kampen" + }, + { + "cheese": "Minger", + "url": "https://www.cheese.com/minger/", + "milk": "cow", + "country": "Scotland", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, runny", + "rind": "washed", + "color": "orange", + "flavor": "full-flavored, garlicky, meaty, pungent, strong", + "aroma": "barnyardy, ripe, stinky, yeasty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Highland Fine Cheeses Limited" + }, + { + "cheese": "Minuet", + "url": "https://www.cheese.com/minuet/", + "milk": "cow, goat", + "country": "United States", + "region": "California", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "mold ripened", + "color": "white", + "flavor": "sweet, tangy", + "aroma": "pleasant", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Andante Dairy" + }, + { + "cheese": "Mirabo Brie with Walnut", + "url": "https://www.cheese.com/mirabo-brie-with-walnut/", + "milk": "cow", + "country": "Germany", + "region": "Bavaria", + "family": "Brie", + "type": "semi-soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, soft", + "rind": "natural", + "color": "ivory", + "flavor": "nutty, savory", + "aroma": "nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Mirabo Walnut, Mirabo Brie Walnut", + "alt_spellings": "NA", + "producers": "Käserei Champignon" + }, + { + "cheese": "Miss Muffet", + "url": "https://www.cheese.com/miss-muffet/", + "milk": "cow", + "country": "England", + "region": "North Cornwall", + "family": "Cornish", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth, supple", + "rind": "washed", + "color": "ivory", + "flavor": "creamy", + "aroma": "nutty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Whalesborough Farm Foods" + }, + { + "cheese": "Mistralou", + "url": "https://www.cheese.com/mistralou/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "white", + "flavor": "creamy", + "aroma": "floral", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "MitiCaña® de Oveja", + "url": "https://www.cheese.com/miticana-de-oveja/", + "milk": "sheep", + "country": "Spain", + "region": "Murcia", + "family": "NA", + "type": "semi-soft, soft-ripened", + "fat_content": "13%", + "calcium_content": "NA", + "texture": "buttery, crumbly, flaky", + "rind": "bloomy", + "color": "white", + "flavor": "buttery, tangy", + "aroma": "buttery", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Miticana de Oveja, MitiCaña de Oveja", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Mladi Trapist", + "url": "https://www.cheese.com/mladi-trapist/", + "milk": "cow", + "country": "Croatia", + "region": "Dalmatia", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "crumbly, semi firm", + "rind": "natural", + "color": "white", + "flavor": "grassy, savory", + "aroma": "aromatic", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "SIRANA GLIGORA D.O.O" + }, + { + "cheese": "Mobay", + "url": "https://www.cheese.com/mobay/", + "milk": "goat, sheep", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft, supple", + "rind": "plastic", + "color": "ivory", + "flavor": "earthy, sweet, tangy", + "aroma": "goaty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Carr Valley Cheese Company" + }, + { + "cheese": "Molbo", + "url": "https://www.cheese.com/molbo/", + "milk": "cow", + "country": "Denmark", + "region": "Mols", + "family": "Cheddar", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "waxed", + "color": "pale yellow", + "flavor": "salty, tangy", + "aroma": "fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Mona", + "url": "https://www.cheese.com/mona/", + "milk": "cow, sheep", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, firm, supple", + "rind": "plastic", + "color": "pale yellow", + "flavor": "buttery, nutty, savory, sweet", + "aroma": "grassy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Wisconsin Sheep Dairy Coop" + }, + { + "cheese": "Monastery Cheeses", + "url": "https://www.cheese.com/monastery-cheeses/", + "milk": "cow", + "country": "Belgium, Canada, France, Switzerland, United States", + "region": "NA", + "family": "NA", + "type": "soft, semi-soft, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "chalky, creamy, firm, grainy", + "rind": "washed", + "color": "golden yellow", + "flavor": "mild, pungent", + "aroma": "pungent, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "monastery, trappist cheese, monk cheese", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Mondseer", + "url": "https://www.cheese.com/mondseer/", + "milk": "cow", + "country": "Austria", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "pale yellow", + "flavor": "spicy", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Monet", + "url": "https://www.cheese.com/monet/", + "milk": "goat", + "country": "Australia", + "region": "South Australia", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "22%", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "NA", + "color": "white", + "flavor": "floral, herbaceous", + "aroma": "floral, fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Woodside Cheese Wrights" + }, + { + "cheese": "Mont D'or", + "url": "https://www.cheese.com/mont-dor-lyonnais/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "NA", + "flavor": "NA", + "aroma": "earthy, strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Vacherin Mont D'or", + "alt_spellings": "Mont Dor", + "producers": "NA" + }, + { + "cheese": "Mont Saint-Francis", + "url": "https://www.cheese.com/mont-saint-francis/", + "milk": "goat", + "country": "United States", + "region": "Indiana", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "brittle, firm, supple", + "rind": "washed", + "color": "golden yellow", + "flavor": "earthy, full-flavored, strong", + "aroma": "pungent, stinky", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Mont St. Francis", + "alt_spellings": "NA", + "producers": "Capriole Goat Cheese" + }, + { + "cheese": "Mont St-Benoît", + "url": "https://www.cheese.com/mont-st-benoit/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Swiss Cheese", + "type": "firm, artisan", + "fat_content": "31%", + "calcium_content": "NA", + "texture": "creamy, elastic, smooth, supple", + "rind": "rindless", + "color": "NA", + "flavor": "buttery, creamy, mild, nutty", + "aroma": "fermented, mild, nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Abbey de Saint-Benoit-du-lac" + }, + { + "cheese": "Montagnolo", + "url": "https://www.cheese.com/montagnolo/", + "milk": "cow", + "country": "Germany", + "region": "NA", + "family": "Blue", + "type": "soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "NA", + "flavor": "creamy", + "aroma": "buttery, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Montagnolo Affine", + "alt_spellings": "NA", + "producers": "Käserei Champignon" + }, + { + "cheese": "Montasio", + "url": "https://www.cheese.com/montasio/", + "milk": "cow", + "country": "Italy", + "region": "Friuli Venezia Giulia and Veneto", + "family": "NA", + "type": "semi-firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "NA", + "flavor": "mild, smooth", + "aroma": "aromatic, pleasant", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Montasio Mitica® DOP, Montasio Mitica DOP", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Montasio Mezzano", + "url": "https://www.cheese.com/montasio-mezzano/", + "milk": "cow", + "country": "Italy", + "region": "Friuli Venezia Giulia and Veneto", + "family": "NA", + "type": "semi-firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "NA", + "flavor": "full-flavored, nutty, sweet", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Montasio Vecchio", + "url": "https://www.cheese.com/montasio-vecchio/", + "milk": "cow", + "country": "Italy", + "region": "Friuli Venezia Giulia and Veneto", + "family": "NA", + "type": "semi-firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "NA", + "flavor": "sharp", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Montasio Stagionato", + "producers": "NA" + }, + { + "cheese": "Montchevre Goat Cheese Log", + "url": "https://www.cheese.com/montchevre-goat-cheese-log/", + "milk": "goat", + "country": "United States", + "region": "NA", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "rindless", + "color": "white", + "flavor": "creamy, tangy", + "aroma": "fresh, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Montchevre fresh goat cheese, Fresh Chevré (Montchevré), Montchevre fresh goat cheese log", + "alt_spellings": "NA", + "producers": "Montchevre Cheese Company" + }, + { + "cheese": "Monte Enebro", + "url": "https://www.cheese.com/monte-enebro/", + "milk": "goat", + "country": "Spain", + "region": "Avila", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "NA", + "color": "NA", + "flavor": "creamy, lemony", + "aroma": "goaty, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "pata de mulo, mule’s-hoof cheese", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Monteo", + "url": "https://www.cheese.com/monteo/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "semi-firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, open", + "rind": "natural", + "color": "pale yellow", + "flavor": "buttery, milky, smooth", + "aroma": "fresh, milky", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Monterey Jack", + "url": "https://www.cheese.com/monterey-jack/", + "milk": "cow", + "country": "Mexico, United States", + "region": "Monterey, California", + "family": "Monterey Jack", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, creamy, firm, open, supple", + "rind": "NA", + "color": "pale yellow", + "flavor": "buttery, mild", + "aroma": "aromatic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Fresh Jack", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Montgomery's Cheddar", + "url": "https://www.cheese.com/montgomerys-cheddar/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "natural", + "color": "yellow", + "flavor": "NA", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Montsalvat", + "url": "https://www.cheese.com/montsalvat/", + "milk": "cow", + "country": "Germany", + "region": "Landshut", + "family": "Blue", + "type": "soft, blue-veined", + "fat_content": "60%", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "NA", + "color": "ivory", + "flavor": "creamy, mild", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Bayerische Milchindustrie eG" + }, + { + "cheese": "Moody Blue", + "url": "https://www.cheese.com/moody-blue/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Blue", + "type": "semi-soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, nutty, subtle, tangy", + "aroma": "rich, smokey", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Emmi Roth USA" + }, + { + "cheese": "Moonglo", + "url": "https://www.cheese.com/moonglo/", + "milk": "goat", + "country": "United States", + "region": "Illinois", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, firm, open", + "rind": "washed", + "color": "ivory", + "flavor": "caramel, citrusy, fruity, nutty, sharp, tangy", + "aroma": "aromatic, goaty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Prairie Fruits Farm" + }, + { + "cheese": "Moonlight Chaource", + "url": "https://www.cheese.com/moonlight-chaource/", + "milk": "cow", + "country": "United States", + "region": "New York", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, firm", + "rind": "ash coated", + "color": "white", + "flavor": "savory, tart", + "aroma": "rich, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Chaseholm Farm" + }, + { + "cheese": "Moose", + "url": "https://www.cheese.com/moose/", + "milk": "moose", + "country": "Sweden", + "region": "Bjurholm", + "family": "NA", + "type": "fresh soft", + "fat_content": "12%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "NA", + "flavor": "smooth", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Algens Hus" + }, + { + "cheese": "Morangie Brie", + "url": "https://www.cheese.com/morangie-brie/", + "milk": "cow, sheep", + "country": "Scotland", + "region": "Tain", + "family": "Brie", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "cream", + "flavor": "creamy, smooth, sweet", + "aroma": "mild, milky, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Jezebel", + "alt_spellings": "NA", + "producers": "Highland Fine Cheeses Limited" + }, + { + "cheese": "Morbier", + "url": "https://www.cheese.com/morbier/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "ivory", + "flavor": "citrusy", + "aroma": "fruity, grassy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Morbier Cru de Montagne, Morbier AOP", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Morcella", + "url": "https://www.cheese.com/morcella/", + "milk": "sheep", + "country": "United States", + "region": "Minnesota", + "family": "NA", + "type": "semi-soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "bloomy", + "color": "ivory", + "flavor": "creamy, earthy", + "aroma": "strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Shepherd's Way Farms" + }, + { + "cheese": "Morgan", + "url": "https://www.cheese.com/morgan/", + "milk": "cow", + "country": "United States", + "region": "Maine", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "ivory", + "flavor": "citrusy, salty", + "aroma": "grassy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Lakin's Gorges Cheese LLC" + }, + { + "cheese": "Morimoto Soba Ale Cheddar", + "url": "https://www.cheese.com/morimoto-soba-ale-cheddar/", + "milk": "cow", + "country": "United States", + "region": "Oregon", + "family": "Cheddar", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "buttery, smooth, strong", + "aroma": "strong, toasty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Rogue Creamery" + }, + { + "cheese": "Moringhello", + "url": "https://www.cheese.com/moringhello/", + "milk": "water buffalo", + "country": "Italy", + "region": "Lombardy", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "chalky, crumbly", + "rind": "natural", + "color": "white", + "flavor": "smooth", + "aroma": "pleasant, subtle", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Moringhello di Bufala", + "alt_spellings": "NA", + "producers": "Quattro Portoni" + }, + { + "cheese": "Morlacco", + "url": "https://www.cheese.com/morlacco/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft", + "rind": "natural", + "color": "white", + "flavor": "NA", + "aroma": "fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Morlacco del Grappa, Morlacco del Montegrappa, Morlacco del Grappa di malga", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Moses Sleeper", + "url": "https://www.cheese.com/moses-sleeper/", + "milk": "cow", + "country": "United States", + "region": "Vermont", + "family": "Brie", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft, soft-ripened", + "rind": "bloomy", + "color": "white", + "flavor": "buttery, creamy, nutty", + "aroma": "milky, mushroom", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Jasper Hill Farm" + }, + { + "cheese": "Mossfield Organic", + "url": "https://www.cheese.com/mossfield-organic/", + "milk": "cow", + "country": "Ireland", + "region": "Co. Offaly", + "family": "Cheddar", + "type": "hard, semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dry, flaky", + "rind": "natural", + "color": "brownish yellow", + "flavor": "nutty, tangy", + "aroma": "fresh, lactic, mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Mossfield Organic Farm" + }, + { + "cheese": "Mothais a la Feuille", + "url": "https://www.cheese.com/mothais-a-la-feuille/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "NA", + "color": "NA", + "flavor": "lemony, woody", + "aroma": "mushroom", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Le Mothais sur Feuille, Mothais", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "MouCo Camembert", + "url": "https://www.cheese.com/mouco-camembert/", + "milk": "cow", + "country": "United States", + "region": "Colorado", + "family": "Camembert", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "bloomy", + "color": "ivory", + "flavor": "creamy, milky", + "aroma": "caramel, clean, grassy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "MouCo Cheese Company" + }, + { + "cheese": "MouCo Truffello", + "url": "https://www.cheese.com/truffello/", + "milk": "cow", + "country": "United States", + "region": "Colorado", + "family": "NA", + "type": "soft, artisan, soft-ripened", + "fat_content": "12%", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "washed", + "color": "white", + "flavor": "buttery, creamy, earthy", + "aroma": "earthy, fruity", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Truffello", + "alt_spellings": "NA", + "producers": "MouCo Cheese Company" + }, + { + "cheese": "Mountain Goat", + "url": "https://www.cheese.com/mountain-goat/", + "milk": "goat", + "country": "Australia", + "region": "Mornington Peninsula, Melbourne", + "family": "Tomme", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "ivory", + "flavor": "NA", + "aroma": "subtle", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "BoatShed Cheese" + }, + { + "cheese": "Mountain Herbs Rebel", + "url": "https://www.cheese.com/mountain-herbs-rebel/", + "milk": "cow", + "country": "Austria", + "region": "Sulzberg", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, nutty, spicy", + "aroma": "aromatic, grassy, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Bergkräuterrebell", + "alt_spellings": "NA", + "producers": "Sulzberger Käserebellen Sennerei GmbH" + }, + { + "cheese": "Mountain Rebel", + "url": "https://www.cheese.com/mountain-rebel/", + "milk": "cow", + "country": "Austria", + "region": "Sulzberg", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "compact, creamy", + "rind": "natural", + "color": "yellow", + "flavor": "creamy, fruity", + "aroma": "aromatic, spicy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Bergrebell", + "alt_spellings": "NA", + "producers": "Sulzberger Käserebellen Sennerei GmbH" + }, + { + "cheese": "Mountaineer", + "url": "https://www.cheese.com/mountaineer/", + "milk": "cow", + "country": "United States", + "region": "Galax, Virginia", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, supple", + "rind": "washed", + "color": "yellow", + "flavor": "full-flavored, mellow", + "aroma": "caramel, fruity, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Meadow Creek Dairy" + }, + { + "cheese": "Mouse House Chilli Cheddar", + "url": "https://www.cheese.com/mouse-house-chilli-cheddar/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "waxed", + "color": "golden orange", + "flavor": "spicy", + "aroma": "spicy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Lymn Bank Farm" + }, + { + "cheese": "Mouse House Garlic & Chive Cheddar", + "url": "https://www.cheese.com/mouse-house-garlic-chive-cheddar/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "waxed", + "color": "green", + "flavor": "garlicky", + "aroma": "garlicky", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Lymn Bank Farm" + }, + { + "cheese": "Mouse House Smoked Cheddar", + "url": "https://www.cheese.com/mouse-house-smoked-cheddar/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "waxed", + "color": "golden yellow", + "flavor": "smokey", + "aroma": "smokey", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Lymn Bank Farm" + }, + { + "cheese": "Mozzarella", + "url": "https://www.cheese.com/mozzarella/", + "milk": "cow, goat, sheep, water buffalo", + "country": "Italy", + "region": "NA", + "family": "NA", + "type": "semi-soft, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "elastic, stringy", + "rind": "rindless", + "color": "white", + "flavor": "mild, sweet", + "aroma": "fresh, milky", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "mozerrela", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Mozzarella (Australian)", + "url": "https://www.cheese.com/mozzarella-australian/", + "milk": "cow, water buffalo", + "country": "Australia", + "region": "NA", + "family": "Pasta filata", + "type": "semi-soft, brined", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "springy, stringy, supple", + "rind": "rindless", + "color": "white", + "flavor": "milky", + "aroma": "fresh, milky", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Australian Mozzarella", + "producers": "NA" + }, + { + "cheese": "Mozzarella di Bufala DOP", + "url": "https://www.cheese.com/mozzarella-di-bufala/", + "milk": "water buffalo", + "country": "Italy", + "region": "Campania, Paestum, Foggia", + "family": "Pasta filata", + "type": "soft, brined", + "fat_content": "21%", + "calcium_content": "NA", + "texture": "creamy, smooth, springy", + "rind": "NA", + "color": "white", + "flavor": "floral, mild, milky, sour", + "aroma": "fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Buffalo mozzarella, Mozzarella di Bufala Campana", + "alt_spellings": "NA", + "producers": "Casa Madaio" + }, + { + "cheese": "Mozzarellissima", + "url": "https://www.cheese.com/mozzarellissima/", + "milk": "cow", + "country": "United States", + "region": "NA", + "family": "Pasta filata", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "elastic, springy, stringy, supple", + "rind": "rindless", + "color": "pale yellow", + "flavor": "buttery, mild, milky", + "aroma": "mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Italiano 4 Formaggi Shredded Cheese", + "alt_spellings": "Lite Mozzarellissima, Mozzarellissima Shredded Cheese", + "producers": "Saputo Dairy Products Canada G.P." + }, + { + "cheese": "Ms. Natural", + "url": "https://www.cheese.com/ms-natural/", + "milk": "goat", + "country": "United States", + "region": "California", + "family": "NA", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, smooth, spreadable", + "rind": "rindless", + "color": "white", + "flavor": "citrusy, creamy", + "aroma": "fresh, mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cypress Grove Chevre" + }, + { + "cheese": "Mt Scott", + "url": "https://www.cheese.com/mt-scott/", + "milk": "cow", + "country": "New Zealand", + "region": "Queenstown", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth, supple", + "rind": "natural", + "color": "yellow", + "flavor": "buttery, sharp, sweet", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Mt Scott Havarti", + "alt_spellings": "NA", + "producers": "The Gibbston Valley Cheese Company" + }, + { + "cheese": "Mt Tam", + "url": "https://www.cheese.com/mt-tam/", + "milk": "cow", + "country": "United States", + "region": "California", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "buttery, earthy", + "aroma": "grassy, mushroom, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cowgirl Creamery" + }, + { + "cheese": "Mt. Mazama Cheddar", + "url": "https://www.cheese.com/mt-mazama-cheddar/", + "milk": "cow, goat", + "country": "United States", + "region": "Oregon", + "family": "Cheddar", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, crystalline, dense", + "rind": "natural", + "color": "pale yellow", + "flavor": "acidic, caramel, nutty, sweet, tangy", + "aroma": "pleasant, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Mount Mazama", + "alt_spellings": "NA", + "producers": "Rogue Creamery" + }, + { + "cheese": "Muddlewell", + "url": "https://www.cheese.com/muddlewell/", + "milk": "cow, sheep", + "country": "England", + "region": "North Wootton", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "natural", + "color": "ivory", + "flavor": "mild", + "aroma": "strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Wootton Organic Dairy" + }, + { + "cheese": "Muenster", + "url": "https://www.cheese.com/muenster/", + "milk": "cow", + "country": "United States", + "region": "NA", + "family": "NA", + "type": "soft, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "NA", + "color": "pale yellow", + "flavor": "mild", + "aroma": "pungent, strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "American Muenster", + "producers": "NA" + }, + { + "cheese": "Muffato", + "url": "https://www.cheese.com/muffato/", + "milk": "cow", + "country": "Italy", + "region": "Treviso, Veneto", + "family": "Blue", + "type": "semi-firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "flaky", + "rind": "NA", + "color": "ivory", + "flavor": "full-flavored, grassy, herbaceous", + "aroma": "herbal", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Moro Latteria di Moro Sergio" + }, + { + "cheese": "Mun-chee", + "url": "https://www.cheese.com/mun-chee/", + "milk": "cow", + "country": "United States", + "region": "Richfield, Wisconsin", + "family": "NA", + "type": "semi-soft, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "pale yellow", + "flavor": "mild, sweet", + "aroma": "mild", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Munchee, Sweet Munchee", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Munster", + "url": "https://www.cheese.com/munster/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "washed", + "color": "NA", + "flavor": "savory, spicy, sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Munster-géromé, Minschterkaas", + "alt_spellings": "Munster gerome", + "producers": "NA" + }, + { + "cheese": "Muranda Blue", + "url": "https://www.cheese.com/muranda-blue/", + "milk": "cow", + "country": "United States", + "region": "NY", + "family": "Blue", + "type": "semi-hard, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "salty, sharp, strong", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Muranda Cheese Company" + }, + { + "cheese": "Murazzano DOP", + "url": "https://www.cheese.com/murazzano-dop/", + "milk": "cow, goat", + "country": "Italy", + "region": "Murazzano", + "family": "NA", + "type": "fresh soft, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft", + "rind": "rindless", + "color": "white", + "flavor": "spicy", + "aroma": "mild", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casera srl" + }, + { + "cheese": "Murol", + "url": "https://www.cheese.com/murol/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, firm, springy", + "rind": "washed", + "color": "ivory", + "flavor": "mild, milky, savory, sweet", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "murolait, trou de murol", + "producers": "La Fromagerie du Grand Murols" + }, + { + "cheese": "Mycella", + "url": "https://www.cheese.com/mycella/", + "milk": "cow", + "country": "Denmark", + "region": "Bornholm", + "family": "NA", + "type": "soft, artisan, blue-veined", + "fat_content": "50-60%", + "calcium_content": "NA", + "texture": "crystalline", + "rind": "rindless", + "color": "pale yellow", + "flavor": "mild", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Danish Gorgonzola", + "alt_spellings": "NA", + "producers": "Various" + }, + { + "cheese": "Myzithra", + "url": "https://www.cheese.com/myzithra/", + "milk": "goat, sheep", + "country": "Greece", + "region": "NA", + "family": "Cottage", + "type": "soft, whey", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, spreadable", + "rind": "NA", + "color": "white", + "flavor": "mild", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Xinomizythra, Sour Mizythra, Mizythra, Fresh Mizythra, Mizithra, Dry Mizythra", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Météorite", + "url": "https://www.cheese.com/meteorite/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Blue", + "type": "soft, blue-veined", + "fat_content": "37%", + "calcium_content": "NA", + "texture": "creamy, supple", + "rind": "ash coated", + "color": "straw", + "flavor": "mild", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "P'tit Basque", + "url": "https://www.cheese.com/ptit-basque/", + "milk": "sheep", + "country": "France", + "region": "Basque, Pyrenees Mountains", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, dry, smooth", + "rind": "natural", + "color": "ivory", + "flavor": "earthy, mild, nutty, pungent, subtle, sweet", + "aroma": "fresh, lactic, pleasant", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "Petit Basque", + "producers": "NA" + }, + { + "cheese": "P'tit Berrichon", + "url": "https://www.cheese.com/ptit-berrichon/", + "milk": "goat", + "country": "France", + "region": "Berry", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft-ripened", + "rind": "leaf wrapped", + "color": "white", + "flavor": "sweet", + "aroma": "goaty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pacific Rock", + "url": "https://www.cheese.com/pacific-rock/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "NA", + "type": "hard", + "fat_content": "30%", + "calcium_content": "NA", + "texture": "crumbly, firm", + "rind": "washed", + "color": "orange", + "flavor": "buttery, earthy, nutty, subtle", + "aroma": "fruity, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Pack Square", + "url": "https://www.cheese.com/pack-square/", + "milk": "cow", + "country": "United States", + "region": "Fairview", + "family": "Brie", + "type": "semi-soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, soft, soft-ripened", + "rind": "bloomy", + "color": "white", + "flavor": "buttery, creamy, earthy, spicy", + "aroma": "grassy, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Looking Glass Creamery" + }, + { + "cheese": "Paesanella Bocconcini", + "url": "https://www.cheese.com/paesanella-bocconcin/", + "milk": "cow", + "country": "Australia", + "region": "NA", + "family": "Mozzarella", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "elastic", + "rind": "rindless", + "color": "white", + "flavor": "creamy, salty, sweet", + "aroma": "milky, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Paesanella Cheese Manufacturers" + }, + { + "cheese": "Paesanella Buffalo Mozzarella", + "url": "https://www.cheese.com/paesanella-buffalo-mozzarella/", + "milk": "buffalo, cow", + "country": "Australia", + "region": "New South Wales", + "family": "Mozzarella", + "type": "NA", + "fat_content": "25.8 g/100g", + "calcium_content": "NA", + "texture": "", + "rind": "rindless", + "color": "white", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Bufala Mozzarella", + "alt_spellings": "NA", + "producers": "Paesanella Cheese Manufacturers" + }, + { + "cheese": "Paesanella Buffalo Ricotta", + "url": "https://www.cheese.com/paesanella-buffalo-ricotta/", + "milk": "buffalo", + "country": "Australia", + "region": "NA", + "family": "NA", + "type": "fresh soft, whey", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "NA", + "color": "white", + "flavor": "creamy", + "aroma": "milky, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Paesanella Cheese Manufacturers" + }, + { + "cheese": "Paesanella Burrata", + "url": "https://www.cheese.com/paesanella-burrata/", + "milk": "cow", + "country": "Australia", + "region": "NA", + "family": "Mozzarella", + "type": "fresh soft, artisan", + "fat_content": "25.4 g/100g", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "NA", + "color": "white", + "flavor": "buttery, milky, smooth", + "aroma": "fresh, milky, rich, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Paesanella Cheese Manufacturers" + }, + { + "cheese": "Paesanella Caciotta", + "url": "https://www.cheese.com/paesanella-caciotta/", + "milk": "cow", + "country": "Australia", + "region": "NA", + "family": "Caciotta", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, soft", + "rind": "rindless", + "color": "cream", + "flavor": "mild, milky", + "aroma": "buttery, milky", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Paesanella Cheese Manufacturers" + }, + { + "cheese": "Paesanella Caciotta with Rocket & Chilli", + "url": "https://www.cheese.com/paesanella-caciotta-with-rocket-chilli/", + "milk": "cow", + "country": "Australia", + "region": "NA", + "family": "Caciotta", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, soft", + "rind": "NA", + "color": "ivory", + "flavor": "herbaceous, spicy", + "aroma": "herbal", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Paesanella Cheese Manufacturers" + }, + { + "cheese": "Paesanella Cherry Bocconcini", + "url": "https://www.cheese.com/paesanella-cherry-bocconcin/", + "milk": "cow", + "country": "Australia", + "region": "NA", + "family": "Mozzarella", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "elastic", + "rind": "rindless", + "color": "white", + "flavor": "creamy, salty, sweet", + "aroma": "milky, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Cherry Bocconcini", + "alt_spellings": "NA", + "producers": "Paesanella Cheese Manufacturers" + }, + { + "cheese": "Paesanella Dry Ricotta", + "url": "https://www.cheese.com/paesanella-dry-ricotta/", + "milk": "cow", + "country": "Australia", + "region": "NA", + "family": "NA", + "type": "soft, whey", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "NA", + "color": "white", + "flavor": "creamy, salty", + "aroma": "sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Paesanella Cheese Manufacturers" + }, + { + "cheese": "Paesanella Fresco", + "url": "https://www.cheese.com/paesanella-fresco/", + "milk": "cow", + "country": "Australia", + "region": "NA", + "family": "Pecorino", + "type": "semi-hard, artisan", + "fat_content": "18.4 g/100g", + "calcium_content": "NA", + "texture": "chewy, firm", + "rind": "rindless", + "color": "pale yellow", + "flavor": "mild, tangy", + "aroma": "mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Pecorino Fresco", + "alt_spellings": "Fresco Fresh Pecorino style", + "producers": "Paesanella Cheese Manufacturers" + }, + { + "cheese": "Paesanella Fresh Ricotta", + "url": "https://www.cheese.com/paesanella-fresh-ricotta/", + "milk": "cow", + "country": "Australia", + "region": "NA", + "family": "NA", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "NA", + "color": "white", + "flavor": "creamy", + "aroma": "fresh, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Paesanella Fresh Pure Milk Ricotta", + "alt_spellings": "NA", + "producers": "Paesanella Cheese Manufacturers" + }, + { + "cheese": "Paglierino", + "url": "https://www.cheese.com/paglierino/", + "milk": "sheep", + "country": "Italy", + "region": "Campania", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, elastic", + "rind": "natural", + "color": "pale yellow", + "flavor": "citrusy, spicy, sweet", + "aroma": "grassy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Casa Madaio" + }, + { + "cheese": "Paillot de Chèvre", + "url": "https://www.cheese.com/paillot-de-chevre/", + "milk": "goat", + "country": "Canada", + "region": "Quebec", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "26%", + "calcium_content": "NA", + "texture": "firm, runny, smooth, soft-ripened", + "rind": "bloomy", + "color": "white", + "flavor": "acidic, nutty, tangy", + "aroma": "goaty, lactic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Palet de Babligny", + "url": "https://www.cheese.com/palet-de-babligny/", + "milk": "cow", + "country": "France", + "region": "Burgundy", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "washed", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pallone di Gravina", + "url": "https://www.cheese.com/pallone-di-gravina/", + "milk": "cow", + "country": "Italy", + "region": "Gravina in Puglia, Murgia", + "family": "Italian Cheese", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "NA", + "color": "golden yellow", + "flavor": "spicy, strong", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Ball of Gravina", + "alt_spellings": "NA", + "producers": "Caseificio Artigianale dei Fratelli Derosa" + }, + { + "cheese": "Paneer", + "url": "https://www.cheese.com/paneer/", + "milk": "cow, water buffalo", + "country": "Bangladesh, India", + "region": "NA", + "family": "Cottage", + "type": "fresh firm", + "fat_content": "20.8 g/100g", + "calcium_content": "208 mg/100g", + "texture": "crumbly, firm", + "rind": "rindless", + "color": "white", + "flavor": "milky", + "aroma": "fresh, milky", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Chhena, Chhana", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Panela", + "url": "https://www.cheese.com/panela/", + "milk": "cow", + "country": "Mexico", + "region": "NA", + "family": "Cottage", + "type": "fresh firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "NA", + "color": "white", + "flavor": "NA", + "aroma": "fresh, mild", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Queso Panela", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Paniolo", + "url": "https://www.cheese.com/paniolo/", + "milk": "cow", + "country": "United States", + "region": "Vermont", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, runny", + "rind": "washed", + "color": "pale yellow", + "flavor": "buttery, creamy, meaty", + "aroma": "mushroom", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Willow Hill Farm" + }, + { + "cheese": "Pannerone", + "url": "https://www.cheese.com/pannerone/", + "milk": "cow", + "country": "Italy", + "region": "Lodi", + "family": "NA", + "type": "soft, semi-soft, artisan", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "creamy, grainy, open", + "rind": "natural", + "color": "ivory", + "flavor": "bitter, buttery, smooth, sweet", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Panquehue", + "url": "https://www.cheese.com/panquehue/", + "milk": "cow", + "country": "Chile", + "region": "Aconcagua", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "open, smooth", + "rind": "natural", + "color": "cream", + "flavor": "creamy, nutty, savory, spicy", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Andes Cheese" + }, + { + "cheese": "Pant ys Gawn", + "url": "https://www.cheese.com/pant-ys-gawn/", + "milk": "goat", + "country": "Wales", + "region": "NA", + "family": "NA", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "rindless", + "color": "white", + "flavor": "lemony, salty", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Pant-Ys-Gawn, Pant-Ysgawn", + "alt_spellings": "NA", + "producers": "Abergavenny Fine Foods" + }, + { + "cheese": "Paprika Rebel", + "url": "https://www.cheese.com/paprika-rebel/", + "milk": "cow", + "country": "Austria", + "region": "Sulzberg", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "smokey , spicy", + "aroma": "smokey, spicy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Paprikarebell", + "alt_spellings": "NA", + "producers": "Sulzberger Käserebellen Sennerei GmbH" + }, + { + "cheese": "Parmesan", + "url": "https://www.cheese.com/parmesan/", + "milk": "cow", + "country": "Italy", + "region": "NA", + "family": "Parmesan", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, grainy", + "rind": "natural", + "color": "straw", + "flavor": "salty, savory", + "aroma": "nutty, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Parmigiano Reggiano, Parmesan Regiano, Parmesan Reggiano, Parmesan Parmigiano", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Parrano", + "url": "https://www.cheese.com/parrano/", + "milk": "cow", + "country": "Netherlands", + "region": "Het Groene Hart", + "family": "Gouda", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm, open, smooth", + "rind": "plastic", + "color": "pale yellow", + "flavor": "buttery, creamy, nutty, savory, sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Parrano Originale, Parrano Robusto, Parrano Olifesta", + "alt_spellings": "NA", + "producers": "Uniekaas Nederland B.V." + }, + { + "cheese": "Pas de l'Escalette", + "url": "https://www.cheese.com/pas-de-lescalette/", + "milk": "cow", + "country": "France", + "region": "Larzac", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "straw", + "flavor": "sweet", + "aroma": "fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Passendale", + "url": "https://www.cheese.com/passendale/", + "milk": "cow", + "country": "Belgium", + "region": "Passendale", + "family": "NA", + "type": "semi-soft, soft-ripened", + "fat_content": "28%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "golden orange", + "flavor": "mild", + "aroma": "sweet", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pastoral", + "url": "https://www.cheese.com/pastoral/", + "milk": "goat", + "country": "United States", + "region": "California", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "NA", + "color": "white", + "flavor": "creamy, herbaceous", + "aroma": "fresh, goaty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Andante Dairy" + }, + { + "cheese": "Pate de Fromage", + "url": "https://www.cheese.com/pate-de-fromage/", + "milk": "goat, sheep", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Pâte de fromage, Pâte fromage", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Patefine Fort", + "url": "https://www.cheese.com/patefine-fort/", + "milk": "cow", + "country": "France", + "region": "Isere", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "natural", + "color": "white", + "flavor": "sour", + "aroma": "fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pave d'Affinois", + "url": "https://www.cheese.com/pave-daffinois/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "fresh soft, soft-ripened", + "fat_content": "60%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "bloomy", + "color": "ivory", + "flavor": "grassy, mild, milky, sweet", + "aroma": "fresh, milky, pleasant", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Fromager D'Affinois", + "alt_spellings": "Pave Affinois", + "producers": "Fromagerie GUILLOTEAU" + }, + { + "cheese": "Pave d'Auge", + "url": "https://www.cheese.com/pave-dauge/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "smooth", + "rind": "washed", + "color": "pale yellow", + "flavor": "buttery, smooth", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "pavé de Moyaux, pavé du Plessis, Trouville", + "alt_spellings": "NA", + "producers": "Various" + }, + { + "cheese": "Pave de Chirac", + "url": "https://www.cheese.com/pave-de-chirac/", + "milk": "goat", + "country": "France", + "region": "Chirac", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "ivory", + "flavor": "mild", + "aroma": "fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pawlet", + "url": "https://www.cheese.com/pawlet/", + "milk": "cow", + "country": "United States", + "region": "Vermont", + "family": "Swiss Cheese", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, meaty, mushroomy, nutty", + "aroma": "herbal, mushroom, stinky", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Consider Bardwell Farm" + }, + { + "cheese": "Paški Sir (PDO)", + "url": "https://www.cheese.com/paski-sir/", + "milk": "sheep", + "country": "Croatia", + "region": "Island of Pag", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, flaky, grainy", + "rind": "natural", + "color": "yellow", + "flavor": "salty, savory, tangy", + "aroma": "pleasant", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Pag Cheese, Pag Island Cheese", + "alt_spellings": "Paski Sir", + "producers": "NA" + }, + { + "cheese": "Peau Rouge", + "url": "https://www.cheese.com/peau-rouge/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "NA", + "type": "hard", + "fat_content": "25%", + "calcium_content": "NA", + "texture": "crumbly, firm", + "rind": "washed", + "color": "pale yellow", + "flavor": "caramel, nutty, woody", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Les Dépendances" + }, + { + "cheese": "Pecorino", + "url": "https://www.cheese.com/pecorino/", + "milk": "sheep", + "country": "Italy", + "region": "NA", + "family": "Pecorino", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "pale yellow", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pecorino a Latte Crudo", + "url": "https://www.cheese.com/pecorino-a-latte-crudo/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, crumbly", + "rind": "natural", + "color": "straw", + "flavor": "piquant, savory, sharp, smooth", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino al Pepe", + "url": "https://www.cheese.com/pecorino-al-pepe/", + "milk": "sheep", + "country": "Italy", + "region": "Tuscany", + "family": "Pecorino", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, crumbly", + "rind": "natural", + "color": "cream", + "flavor": "sharp, spicy, strong", + "aroma": "pleasant, strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Caseificio Pinzani Srl" + }, + { + "cheese": "Pecorino al Tartufo", + "url": "https://www.cheese.com/pecorino-al-tartufo/", + "milk": "sheep", + "country": "Italy", + "region": "NA", + "family": "Pecorino", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "NA", + "color": "cream", + "flavor": "sharp, spicy", + "aroma": "grassy, nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Truffle Pecorino", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pecorino alla Canapa", + "url": "https://www.cheese.com/pecorino-all-canapa/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia Romagna", + "family": "Pecorino", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "leaf wrapped", + "color": "white", + "flavor": "herbaceous, smooth", + "aroma": "aromatic, herbal", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Pecorino Canapa", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pecorino allo Zafferano", + "url": "https://www.cheese.com/pecorino-allo-zafferano/", + "milk": "sheep", + "country": "Italy", + "region": "Tuscany", + "family": "Pecorino", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, compact, smooth", + "rind": "natural", + "color": "yellow", + "flavor": "creamy, floral, mild, sweet", + "aroma": "aromatic, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Caseificio Pinzani Srl , Romaniae Terrae" + }, + { + "cheese": "Pecorino Barba Del Passatore", + "url": "https://www.cheese.com/pecorino-barba-del-passatore/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, smooth, soft", + "rind": "natural", + "color": "white", + "flavor": "buttery, smooth", + "aroma": "pronounced, strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino Boccondilatte", + "url": "https://www.cheese.com/pecorino-boccondilatte/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "natural", + "color": "white", + "flavor": "subtle, sweet", + "aroma": "pronounced", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino Camomilla", + "url": "https://www.cheese.com/pecorino-camomilla/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, soft", + "rind": "natural", + "color": "white", + "flavor": "creamy, smooth", + "aroma": "aromatic, floral", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pecorino Con Caglio Vegetale", + "url": "https://www.cheese.com/pecorino-con-caglio-vegetale/", + "milk": "sheep", + "country": "Italy", + "region": "Tuscany", + "family": "Pecorino", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, creamy", + "rind": "natural", + "color": "white", + "flavor": "bitter, subtle, vegetal", + "aroma": "earthy, pleasant", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Caseificio Pinzani Srl" + }, + { + "cheese": "Pecorino dei Malatesta al Sangiovese", + "url": "https://www.cheese.com/pecorino-dei-malatesta-al-sangiovese/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "natural", + "color": "white", + "flavor": "acidic, smooth, subtle, sweet", + "aroma": "pleasant", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino Dei Malatesta Sotto Cenere", + "url": "https://www.cheese.com/pecorino-dei-malatesta-sotto-cenere/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "ash coated", + "color": "white", + "flavor": "smooth, subtle, sweet", + "aroma": "fresh, milky", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino dei Monaci", + "url": "https://www.cheese.com/pecorino-dei-monaci/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "white", + "flavor": "milky, smooth, sweet", + "aroma": "milky, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino di Sogliano", + "url": "https://www.cheese.com/pecorino-di-sogliano/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, grainy", + "rind": "washed", + "color": "white", + "flavor": "earthy, meaty, strong", + "aroma": "pungent, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino di Talamello", + "url": "https://www.cheese.com/pecorino-di-talamello/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, crumbly, grainy", + "rind": "washed", + "color": "white", + "flavor": "earthy, meaty, strong", + "aroma": "pungent, rich, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino di Vigna", + "url": "https://www.cheese.com/pecorino-di-vigna/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth, soft", + "rind": "leaf wrapped", + "color": "straw", + "flavor": "herbaceous, smooth", + "aroma": "aromatic, herbal", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino Erica", + "url": "https://www.cheese.com/pecorino-erica/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, smooth", + "rind": "natural", + "color": "white", + "flavor": "milky, subtle, sweet", + "aroma": "aromatic, floral, strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino Fiordaliso", + "url": "https://www.cheese.com/pecorino-fiordaliso/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact", + "rind": "natural", + "color": "ivory", + "flavor": "smooth, subtle", + "aroma": "aromatic, floral, pronounced", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino Foglie Noci", + "url": "https://www.cheese.com/pecorino-foglie-noci/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, grainy", + "rind": "leaf wrapped", + "color": "white", + "flavor": "earthy, milky, nutty, sweet", + "aroma": "fresh, nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino Gelsomino", + "url": "https://www.cheese.com/pecorino-gelsomino/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, flaky", + "rind": "natural", + "color": "ivory", + "flavor": "creamy, milky", + "aroma": "aromatic, floral", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino Ginepro", + "url": "https://www.cheese.com/pecorino-ginepro/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "chalky, grainy", + "rind": "natural", + "color": "pale white", + "flavor": "fruity, savory", + "aroma": "fruity, woody", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pecorino Gran Riserva Del Passatore", + "url": "https://www.cheese.com/pecorino-gran-riserva-del-passatore/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "natural", + "color": "white", + "flavor": "smooth, sweet", + "aroma": "fresh, milky, pleasant", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino in Walnut Leaves", + "url": "https://www.cheese.com/pecorino-in-walnut-leaves/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "hard, artisan", + "fat_content": "40%", + "calcium_content": "NA", + "texture": "dense, firm", + "rind": "leaf wrapped", + "color": "white", + "flavor": "buttery, herbaceous, nutty, sweet", + "aroma": "earthy, herbal", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Pecorino Foglie De Noce, Pecorino Aged in Walnut Leaves", + "alt_spellings": "Walnut tree leaf Pecorino cheese", + "producers": "NA" + }, + { + "cheese": "Pecorino Mallo di Noce", + "url": "https://www.cheese.com/pecorino-mallo-di-noce/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, grainy", + "rind": "natural", + "color": "white", + "flavor": "milky, nutty, subtle, sweet", + "aroma": "nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino nel fieno", + "url": "https://www.cheese.com/pecorino-nel-fieno/", + "milk": "sheep", + "country": "Italy", + "region": "Pienza", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft", + "rind": "natural", + "color": "pale yellow", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casera srl" + }, + { + "cheese": "Pecorino Nel Granaio", + "url": "https://www.cheese.com/pecorino-nel-granaio/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, smooth, soft", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy", + "aroma": "rich, strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino Nero", + "url": "https://www.cheese.com/pecorino-nero/", + "milk": "sheep", + "country": "Italy", + "region": "Tuscany", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "ivory", + "flavor": "pungent, subtle", + "aroma": "mild, milky", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Caseificio Pinzani Srl" + }, + { + "cheese": "Pecorino Ortica", + "url": "https://www.cheese.com/pecorino-ortica/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, smooth, soft", + "rind": "leaf wrapped", + "color": "straw", + "flavor": "herbaceous, piquant, savory, sharp", + "aroma": "aromatic, strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Pecorino Ortica a latte Crudo", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino Papavero", + "url": "https://www.cheese.com/pecorino-papavero/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, flaky", + "rind": "natural", + "color": "straw", + "flavor": "floral, herbaceous, smooth", + "aroma": "aromatic, floral, herbal", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino Pepato Mitica® Aged", + "url": "https://www.cheese.com/pecorino-pepato/", + "milk": "sheep", + "country": "Italy", + "region": "Sardegna", + "family": "NA", + "type": "semi-firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, flaky", + "rind": "natural", + "color": "ivory", + "flavor": "spicy, tangy", + "aroma": "spicy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Pepato, Pecorino Pepato Mitica® Aged", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pecorino Pera", + "url": "https://www.cheese.com/pecorino-pera/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, smooth", + "rind": "natural", + "color": "ivory", + "flavor": "fruity, smooth, subtle, sweet", + "aroma": "fruity, milky, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino Querciaiolo", + "url": "https://www.cheese.com/pecorino-querciaiolo/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "natural", + "color": "white", + "flavor": "smooth, subtle", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino Romagnolo", + "url": "https://www.cheese.com/pecorino-romagnolo/", + "milk": "sheep", + "country": "Italy", + "region": "Emilia-Romagna", + "family": "Pecorino", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, crumbly", + "rind": "natural", + "color": "ivory", + "flavor": "smooth, subtle", + "aroma": "pronounced", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Romaniae Terrae" + }, + { + "cheese": "Pecorino Romano", + "url": "https://www.cheese.com/pecorino-romano/", + "milk": "sheep", + "country": "Italy", + "region": "Lazio, Sardinia", + "family": "Pecorino", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, grainy", + "rind": "natural", + "color": "pale yellow", + "flavor": "salty, sharp", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Pecorino Romano PDO", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pecorino Toscanello", + "url": "https://www.cheese.com/toscanello/", + "milk": "sheep", + "country": "Italy", + "region": "Tuscany", + "family": "Pecorino", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "pale yellow", + "flavor": "mild", + "aroma": "nutty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Pecorino Toscano, Pecorino Toscano DOP, Tuscan Pecorino, Pecorino Toscanello", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Peekskill Pyramid", + "url": "https://www.cheese.com/peekskill-pyramid/", + "milk": "cow", + "country": "United States", + "region": "Peekskill", + "family": "Brie", + "type": "soft, artisan", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "rindless", + "color": "pale yellow", + "flavor": "buttery, sour, sweet", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Egg Farm Dairy" + }, + { + "cheese": "Pelardon des Cevennes", + "url": "https://www.cheese.com/pelardon-des-cevennes/", + "milk": "goat", + "country": "France", + "region": "Languedoc", + "family": "Tomme", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "white", + "flavor": "acidic, fruity", + "aroma": "goaty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pelardon des Corbieres", + "url": "https://www.cheese.com/pelardon-des-corbieres/", + "milk": "goat", + "country": "France", + "region": "Languedoc-Roussillon", + "family": "NA", + "type": "soft", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "acidic, sweet", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pembrokeshire Extra Mature Cheddar", + "url": "https://www.cheese.com/pembrokeshire-extra-mature-cheddar/", + "milk": "cow", + "country": "United Kingdom", + "region": "Pembrokeshire", + "family": "Cheddar", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dense", + "rind": "NA", + "color": "yellow", + "flavor": "strong, tangy", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Extra Mature Welsh Cheddar", + "alt_spellings": "NA", + "producers": "Pembrokeshire Cheese Company" + }, + { + "cheese": "Pembrokeshire Mature Cheddar", + "url": "https://www.cheese.com/pembrokeshire-mature-cheddar/", + "milk": "cow", + "country": "United Kingdom", + "region": "Pembrokeshire", + "family": "Cheddar", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense", + "rind": "NA", + "color": "pale yellow", + "flavor": "smooth, tangy", + "aroma": "strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Mature Welsh Cheddar", + "alt_spellings": "NA", + "producers": "Pembrokeshire Cheese Company" + }, + { + "cheese": "Penamellera", + "url": "https://www.cheese.com/penamellera/", + "milk": "cow, goat, sheep", + "country": "Spain", + "region": "Asturias", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense, supple", + "rind": "natural", + "color": "pale yellow", + "flavor": "acidic, bitter, herbaceous", + "aroma": "aromatic, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "CUAYAU de Penamellera", + "producers": "NA" + }, + { + "cheese": "Penbryn", + "url": "https://www.cheese.com/penbryn/", + "milk": "cow", + "country": "Great Britain, United Kingdom, Wales", + "region": "NA", + "family": "Gouda", + "type": "hard", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "buttery, fruity, grassy, nutty, sweet", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pencarreg", + "url": "https://www.cheese.com/pencarreg/", + "milk": "cow", + "country": "Great Britain", + "region": "Wales", + "family": "Brie", + "type": "soft, blue-veined", + "fat_content": "40%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "smooth", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pepato", + "url": "https://www.cheese.com/pepato/", + "milk": "sheep", + "country": "Italy", + "region": "NA", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, flaky", + "rind": "natural", + "color": "straw", + "flavor": "salty, spicy", + "aroma": "spicy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Pecorino Pepato", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "PepBert", + "url": "https://www.cheese.com/pepbert/", + "milk": "cow", + "country": "United States", + "region": "Colorado", + "family": "Camembert", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft-ripened", + "rind": "NA", + "color": "ivory", + "flavor": "creamy, spicy", + "aroma": "buttery, strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "MouCo PepBert", + "alt_spellings": "NA", + "producers": "MouCo Cheese Company" + }, + { + "cheese": "Pepper Jack", + "url": "https://www.cheese.com/pepper-jack/", + "milk": "cow", + "country": "United States", + "region": "Monterey, California", + "family": "Monterey Jack", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "cream", + "flavor": "herbaceous, spicy", + "aroma": "aromatic, herbal", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pepper Rebel", + "url": "https://www.cheese.com/pepper-rebel/", + "milk": "cow", + "country": "Austria", + "region": "Sulzberg", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "yellow", + "flavor": "creamy, spicy", + "aroma": "grassy, spicy, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Pfefferrebell", + "alt_spellings": "NA", + "producers": "Sulzberger Käserebellen Sennerei GmbH" + }, + { + "cheese": "Peppercorn Gouda", + "url": "https://www.cheese.com/peppercorn-gouda/", + "milk": "cow", + "country": "United States", + "region": "Utah", + "family": "Gouda", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, crumbly, dense", + "rind": "natural", + "color": "yellow", + "flavor": "mild, nutty, sharp, spicy", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Rockhill Creamery" + }, + { + "cheese": "Perl Las Blue", + "url": "https://www.cheese.com/perl-las-blue/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "golden yellow", + "flavor": "creamy, salty", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Perl Wen", + "url": "https://www.cheese.com/perl-wen/", + "milk": "cow", + "country": "United Kingdom, Wales", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, soft", + "rind": "NA", + "color": "white", + "flavor": "citrusy", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Perlagrigia Sotto Cenere", + "url": "https://www.cheese.com/perlagrigia-sotto-cenere/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact", + "rind": "ash coated", + "color": "pale yellow", + "flavor": "sharp, spicy", + "aroma": "aromatic, smokey", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Perroche", + "url": "https://www.cheese.com/perroche/", + "milk": "goat", + "country": "United Kingdom", + "region": "Herefordshire, West Midlands", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "white", + "flavor": "lemony, mild", + "aroma": "aromatic, fresh, herbal", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Neal's Yard Creamery" + }, + { + "cheese": "Petida", + "url": "https://www.cheese.com/petida/", + "milk": "cow", + "country": "Germany", + "region": "NA", + "family": "NA", + "type": "soft, brined", + "fat_content": "55%", + "calcium_content": "190 mg/100g", + "texture": "creamy", + "rind": "artificial", + "color": "white", + "flavor": "mild, milky", + "aroma": "clean, fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Bergader Privatkäserei GmbH" + }, + { + "cheese": "Petit Blaja", + "url": "https://www.cheese.com/petit-blaja/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft", + "rind": "NA", + "color": "golden yellow", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Petit Pardou", + "url": "https://www.cheese.com/petit-pardou/", + "milk": "cow", + "country": "France", + "region": "Laruns", + "family": "NA", + "type": "semi-hard", + "fat_content": "50%", + "calcium_content": "NA", + "texture": "", + "rind": "natural", + "color": "NA", + "flavor": "NA", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Petit-Suisse", + "url": "https://www.cheese.com/petit-suisse/", + "milk": "cow", + "country": "France", + "region": "Normandy, Auvilliers", + "family": "NA", + "type": "fresh soft", + "fat_content": "40%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "rindless", + "color": "white", + "flavor": "mild, sweet", + "aroma": "fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "double Suisse, double Petit-Suisse, Suisse double", + "producers": "Danone" + }, + { + "cheese": "Petite Swiss", + "url": "https://www.cheese.com/petite-swiss/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact", + "rind": "natural", + "color": "pale yellow", + "flavor": "mild, nutty, sweet", + "aroma": "fresh, fruity", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Emmi Roth USA" + }, + { + "cheese": "Phoebe", + "url": "https://www.cheese.com/phoebe/", + "milk": "goat, sheep", + "country": "United States", + "region": "Tieton, Washington", + "family": "Feta", + "type": "fresh soft, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft", + "rind": "rindless", + "color": "white", + "flavor": "milky, salty", + "aroma": "fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Tieton Farm & Creamery" + }, + { + "cheese": "Pianoforte", + "url": "https://www.cheese.com/pianoforte/", + "milk": "cow", + "country": "United States", + "region": "California", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "natural", + "color": "pale yellow", + "flavor": "acidic, mushroomy, nutty", + "aroma": "pleasant", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Andante Dairy" + }, + { + "cheese": "Piave", + "url": "https://www.cheese.com/piave/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crystalline, dense, flaky", + "rind": "natural", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Piave Fresco", + "url": "https://www.cheese.com/piave-fresco/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "Parmesan", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "ivory", + "flavor": "mild, milky, smooth", + "aroma": "mild, milky, pleasant", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Piave Mezzano", + "url": "https://www.cheese.com/piave-mezzano/", + "milk": "cow", + "country": "", + "region": "Veneto", + "family": "Parmesan", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "full-flavored, salty, sharp, strong", + "aroma": "milky, pleasant", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Piave Vecchio DOP", + "url": "https://www.cheese.com/piave-vecchio/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "Parmesan", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, firm, flaky", + "rind": "natural", + "color": "golden yellow", + "flavor": "nutty, strong, sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Piave Stravecchio", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Piave Vecchio Selezione Oro", + "url": "https://www.cheese.com/piave-vecchio-selezione-oro/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "Parmesan", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dense, flaky, grainy", + "rind": "natural", + "color": "yellow", + "flavor": "fruity, full-flavored, mild, sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Piave Vecchio Gold Selection", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Picobello", + "url": "https://www.cheese.com/picobello/", + "milk": "cow", + "country": "Netherlands", + "region": "Huizen", + "family": "Gouda", + "type": "hard", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "crumbly, open", + "rind": "waxed", + "color": "golden yellow", + "flavor": "caramel, nutty, sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "Picobello Fino, Picobello Maturo", + "producers": "Westland Kaasexport B.V." + }, + { + "cheese": "Picodon de Chevre", + "url": "https://www.cheese.com/picodon-de-chevre/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, smooth", + "rind": "natural", + "color": "white", + "flavor": "sour, sweet", + "aroma": "goaty, pungent", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Picodon AOC, Picodon PDO, Picodon AOP", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Picolo", + "url": "https://www.cheese.com/picolo/", + "milk": "cow", + "country": "United States", + "region": "California", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft-ripened", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "mushroomy, nutty, sweet", + "aroma": "sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Andante Dairy" + }, + { + "cheese": "Picos de Europa", + "url": "https://www.cheese.com/picos-de-europa/", + "milk": "cow", + "country": "Spain", + "region": "NA", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "blue", + "flavor": "spicy, strong", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Picos Blue", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pied-de-vent", + "url": "https://www.cheese.com/pied-de-vent/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Blue", + "type": "semi-soft, blue-veined", + "fat_content": "27%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "cream", + "flavor": "mushroomy, nutty", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fromagerie du Pied-De-Vent" + }, + { + "cheese": "Pierce Pt", + "url": "https://www.cheese.com/pierce-pt/", + "milk": "cow", + "country": "United States", + "region": "California", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "savory, tangy", + "aroma": "floral, herbal", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Pierce Point", + "alt_spellings": "NA", + "producers": "Cowgirl Creamery" + }, + { + "cheese": "Pigouille", + "url": "https://www.cheese.com/pigouille/", + "milk": "sheep", + "country": "France", + "region": "Charentes", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, grainy", + "rind": "mold ripened", + "color": "ivory", + "flavor": "acidic, salty, sweet, tangy", + "aroma": "barnyardy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "Pigouille des Charentes", + "producers": "NA" + }, + { + "cheese": "Pimento", + "url": "https://www.cheese.com/pimento/", + "milk": "cow", + "country": "United States", + "region": "Ann Arbor, Michigan", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "rindless", + "color": "brown", + "flavor": "spicy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Zingerman's Creamery" + }, + { + "cheese": "Pinconning", + "url": "https://www.cheese.com/pinconning/", + "milk": "cow", + "country": "United States", + "region": "Pinconning, Michigan", + "family": "Cheddar", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, open", + "rind": "natural", + "color": "yellow", + "flavor": "mild, sharp", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Pinconning Cheese Co." + }, + { + "cheese": "Piora", + "url": "https://www.cheese.com/piora/", + "milk": "cow", + "country": "Switzerland", + "region": "Piora Valley", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "aromatic, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Piper's Pyramide", + "url": "https://www.cheese.com/pipers-pyramide/", + "milk": "goat", + "country": "United States", + "region": "Indiana", + "family": "Brie", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense, fluffy, soft-ripened", + "rind": "bloomy", + "color": "white", + "flavor": "buttery, milky, sweet", + "aroma": "lactic, musty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Capriole Goat Cheese" + }, + { + "cheese": "Pistol Point Cheddar", + "url": "https://www.cheese.com/pistol-point-cheddar/", + "milk": "cow", + "country": "United States", + "region": "Oregon", + "family": "Cheddar", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "smokey , spicy", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Rogue Creamery" + }, + { + "cheese": "Pitchfork Cheddar", + "url": "https://www.cheese.com/pitchfork-cheddar/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, creamy, firm", + "rind": "cloth wrapped", + "color": "pale yellow", + "flavor": "acidic, fruity, grassy, nutty, tangy", + "aroma": "buttery, fruity, grassy, nutty, subtle", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Trethowan Brothers" + }, + { + "cheese": "Pithtiviers au Foin", + "url": "https://www.cheese.com/pithtiviers-au-foin/", + "milk": "cow", + "country": "France", + "region": "Centre , the department of Loiret", + "family": "Camembert", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "natural", + "color": "pale yellow", + "flavor": "burnt caramel, fruity", + "aroma": "grassy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Bondaroy au foin", + "alt_spellings": "NA", + "producers": "Kraft Foods Company" + }, + { + "cheese": "Pizy", + "url": "https://www.cheese.com/pizy/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Tomme", + "type": "soft, artisan, soft-ripened", + "fat_content": "27%", + "calcium_content": "NA", + "texture": "creamy, smooth, soft", + "rind": "bloomy", + "color": "ivory", + "flavor": "bitter, buttery, mild, milky, salty", + "aroma": "mushroom", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fromagerie La Suisse Normande" + }, + { + "cheese": "Plancherin d'Arêches", + "url": "https://www.cheese.com/plancherin-d-areches/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, soft", + "rind": "natural", + "color": "white", + "flavor": "creamy, floral, herbaceous, mild, nutty, woody", + "aroma": "floral, fresh, herbal, perfumed, woody", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Plancherin d'Areches", + "producers": "Caroline Jouguet" + }, + { + "cheese": "Pleasant Creek", + "url": "https://www.cheese.com/pleasant-creek/", + "milk": "goat", + "country": "United States", + "region": "Oregon", + "family": "Swiss Cheese", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "open, smooth", + "rind": "natural", + "color": "yellow", + "flavor": "buttery, mild, nutty", + "aroma": "fruity, grassy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Pholia Farm" + }, + { + "cheese": "Pleasant Ridge Reserve", + "url": "https://www.cheese.com/pleasant-ridge-reserve/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crystalline, firm, smooth", + "rind": "washed", + "color": "golden yellow", + "flavor": "creamy, full-flavored, grassy, nutty", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Uplands Pleasant Ridge", + "alt_spellings": "NA", + "producers": "Uplands Cheese Company" + }, + { + "cheese": "Plymouth Cheese", + "url": "https://www.cheese.com/plymouth-cheese/", + "milk": "cow", + "country": "United States", + "region": "Vermont", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, flaky, grainy", + "rind": "waxed", + "color": "yellow", + "flavor": "buttery, fruity, full-flavored, nutty, smokey , spicy, tangy", + "aroma": "rich, smokey, strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Plymouth Artisan Cheese" + }, + { + "cheese": "Podhalanski", + "url": "https://www.cheese.com/podhalanski/", + "milk": "cow, sheep", + "country": "Poland", + "region": "NA", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "40%", + "calcium_content": "NA", + "texture": "creamy, open", + "rind": "natural", + "color": "pale yellow", + "flavor": "smokey", + "aroma": "smokey", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Point Reyes Bay Blue", + "url": "https://www.cheese.com/point-reyes-bay-blue/", + "milk": "cow", + "country": "United States", + "region": "California", + "family": "Blue", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "buttery, caramel, creamy, salty, sweet", + "aroma": "earthy, strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Point Reyes Farmstead Cheese Co" + }, + { + "cheese": "Point Reyes Original Blue", + "url": "https://www.cheese.com/point-reyes-original-blue/", + "milk": "cow", + "country": "United States", + "region": "California", + "family": "Blue", + "type": "semi-soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy", + "rind": "natural", + "color": "white", + "flavor": "creamy, milky, strong, sweet", + "aroma": "fresh, milky, strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Original Blue", + "alt_spellings": "NA", + "producers": "Point Reyes Farmstead Cheese Co" + }, + { + "cheese": "Point Reyes Toma", + "url": "https://www.cheese.com/point-reyes-toma/", + "milk": "cow", + "country": "United States", + "region": "California", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy", + "rind": "waxed", + "color": "ivory", + "flavor": "buttery, creamy", + "aroma": "buttery", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Point Reyes Farmstead Cheese Co" + }, + { + "cheese": "Poivre d'Ane", + "url": "https://www.cheese.com/poivre-dane/", + "milk": "cow, goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "natural", + "color": "white", + "flavor": "herbaceous", + "aroma": "herbal", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pokolbin", + "url": "https://www.cheese.com/pokolbin/", + "milk": "cow", + "country": "Australia", + "region": "Hunter Valley", + "family": "NA", + "type": "semi-soft, smear-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "washed", + "color": "NA", + "flavor": "sharp, spicy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Hunter Valley Cheese Company" + }, + { + "cheese": "Pompeii", + "url": "https://www.cheese.com/pompeii/", + "milk": "cow", + "country": "Australia", + "region": "South Australia", + "family": "NA", + "type": "semi-hard, artisan, smear-ripened", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "crumbly, soft, supple", + "rind": "washed", + "color": "cream", + "flavor": "herbaceous, sweet", + "aroma": "herbal", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Woodside Cheese Wrights" + }, + { + "cheese": "Pong's Extraordinary... Cheddar", + "url": "https://www.cheese.com/pongs-extraordinary-cheddar/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "hard, semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "NA", + "color": "yellow", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pont l'Eveque", + "url": "https://www.cheese.com/pont-leveque/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "washed", + "color": "pale yellow", + "flavor": "creamy, full-flavored", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Pont-l'Évêque", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Port Nicholson", + "url": "https://www.cheese.com/port-nicholson/", + "milk": "cow", + "country": "New Zealand", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "40%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "orange", + "flavor": "sour, sweet", + "aroma": "smokey", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Kapiti Port Nicholson", + "alt_spellings": "NA", + "producers": "Kapiti Brands NZ Ltd" + }, + { + "cheese": "Port-Salut", + "url": "https://www.cheese.com/port-salut/", + "milk": "cow", + "country": "France", + "region": "Brittany", + "family": "NA", + "type": "semi-soft", + "fat_content": "72.7%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "pale yellow", + "flavor": "acidic, mellow", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Port du Salut, Port Salut", + "producers": "NA" + }, + { + "cheese": "Postel", + "url": "https://www.cheese.com/postel/", + "milk": "cow", + "country": "Belgium", + "region": "Postel", + "family": "NA", + "type": "NA", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "washed", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pouligny-Saint-Pierre", + "url": "https://www.cheese.com/pouligny-saint-pierre/", + "milk": "goat", + "country": "France", + "region": "Berry", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "natural", + "color": "ivory", + "flavor": "acidic, sweet", + "aroma": "goaty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pourly", + "url": "https://www.cheese.com/pourly/", + "milk": "goat", + "country": "France", + "region": "Burgund", + "family": "NA", + "type": "soft, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "smooth", + "rind": "natural", + "color": "pale yellow", + "flavor": "sweet", + "aroma": "fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Prairie Breeze Cheddar", + "url": "https://www.cheese.com/prairie-breeze-cheddar/", + "milk": "cow", + "country": "United States", + "region": "Iowa", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, grainy", + "rind": "natural", + "color": "yellow", + "flavor": "nutty, sharp, sweet", + "aroma": "grassy, mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Milton Creamery LLC" + }, + { + "cheese": "Prairie Rose", + "url": "https://www.cheese.com/prairie-rose/", + "milk": "", + "country": "United States", + "region": "Iowa", + "family": "Swiss Cheese", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, open", + "rind": "natural", + "color": "yellow", + "flavor": "creamy, full-flavored, smooth", + "aroma": "grassy, mild, nutty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Milton Creamery LLC" + }, + { + "cheese": "Prairie Tomme", + "url": "https://www.cheese.com/prairie-tomme/", + "milk": "sheep", + "country": "United States", + "region": "Missouri", + "family": "Tomme", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, smooth", + "rind": "natural", + "color": "cream", + "flavor": "buttery, nutty", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Green Dirt Farm" + }, + { + "cheese": "Prastost", + "url": "https://www.cheese.com/prastost/", + "milk": "cow", + "country": "Sweden", + "region": "NA", + "family": "Cheddar", + "type": "semi-soft", + "fat_content": "45-50%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "yellow", + "flavor": "salty, spicy, strong", + "aroma": "aromatic, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Priest Cheese, Saaland Pfarr, VODCheese", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "President Brie", + "url": "https://www.cheese.com/president-brie/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "Brie", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, runny, spreadable", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "buttery, creamy, subtle", + "aroma": "rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "President Lingot Brie, President Wee Brie", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "President Camembert", + "url": "https://www.cheese.com/president-camembert/", + "milk": "cow", + "country": "United States", + "region": "New York", + "family": "Camembert", + "type": "semi-soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm, soft", + "rind": "bloomy", + "color": "cream", + "flavor": "creamy, earthy", + "aroma": "rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "President Cheese" + }, + { + "cheese": "President Fat Free Feta", + "url": "https://www.cheese.com/president-fat-free-feta/", + "milk": "cow", + "country": "France, United States", + "region": "New York", + "family": "Feta", + "type": "firm, artisan, brined", + "fat_content": "0 g/100g", + "calcium_content": "30 mg/100g", + "texture": "crumbly", + "rind": "natural", + "color": "white", + "flavor": "herbaceous, salty, tangy", + "aroma": "fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Fat Free Feta Crumbles, Fat Free Feta Chunk", + "alt_spellings": "NA", + "producers": "President Cheese" + }, + { + "cheese": "President Light Brie", + "url": "https://www.cheese.com/president-light-brie/", + "milk": "cow", + "country": "France", + "region": "New York", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, runny, smooth", + "rind": "bloomy", + "color": "white", + "flavor": "creamy, mild, nutty, tangy", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "President Cheese" + }, + { + "cheese": "President Madrigal", + "url": "https://www.cheese.com/president-madrigal/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "Swiss Cheese", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth, soft", + "rind": "natural", + "color": "straw", + "flavor": "nutty, sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "President Cheese" + }, + { + "cheese": "Prima Donna", + "url": "https://www.cheese.com/prima-donna/", + "milk": "cow", + "country": "Netherlands", + "region": "NA", + "family": "Parmesan", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, crystalline, firm, grainy", + "rind": "natural", + "color": "yellow", + "flavor": "full-flavored, nutty, sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Vandersterre Groep International B.V." + }, + { + "cheese": "Prima Donna fino", + "url": "https://www.cheese.com/prima-donna-fino/", + "milk": "cow", + "country": "Netherlands", + "region": "NA", + "family": "Parmesan", + "type": "hard", + "fat_content": "30.5 g/100g", + "calcium_content": "921 mg/100g", + "texture": "crumbly, crystalline, firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "full-flavored, nutty, sweet", + "aroma": "rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Vandersterre Groep International B.V." + }, + { + "cheese": "Prima Donna forte", + "url": "https://www.cheese.com/prima-donna-forte/", + "milk": "", + "country": "Netherlands", + "region": "NA", + "family": "Parmesan", + "type": "hard", + "fat_content": "33 g/100g", + "calcium_content": "990 mg/100g", + "texture": "crumbly, crystalline, flaky, grainy", + "rind": "natural", + "color": "yellow", + "flavor": "nutty, strong, sweet", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Vandersterre Groep International B.V." + }, + { + "cheese": "Prima Donna leggero", + "url": "https://www.cheese.com/prima-donna-leggero/", + "milk": "cow", + "country": "Netherlands", + "region": "NA", + "family": "Parmesan", + "type": "hard", + "fat_content": "18.3 g/100g", + "calcium_content": "1071 mg/100g", + "texture": "crumbly, crystalline, firm", + "rind": "natural", + "color": "yellow", + "flavor": "savory, sharp", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Vandersterre Groep International B.V." + }, + { + "cheese": "Prima Donna maturo", + "url": "https://www.cheese.com/prima-donna-maturo/", + "milk": "cow", + "country": "Netherlands", + "region": "NA", + "family": "Parmesan", + "type": "hard", + "fat_content": "32.3 g/100g", + "calcium_content": "749 mg/100g", + "texture": "crumbly, crystalline, firm, grainy", + "rind": "natural", + "color": "yellow", + "flavor": "sharp", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Vandersterre Groep International B.V." + }, + { + "cheese": "Primo Fresco", + "url": "https://www.cheese.com/primo-fresco/", + "milk": "sheep", + "country": "United States", + "region": "California", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, fluffy, spreadable", + "rind": "natural", + "color": "white", + "flavor": "salty, savory, subtle, tangy", + "aroma": "fresh, mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Weirauch Farm and Creamery" + }, + { + "cheese": "Prince-Jean", + "url": "https://www.cheese.com/prince-jean/", + "milk": "cow", + "country": "Belgium", + "region": "NA", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "white", + "flavor": "buttery", + "aroma": "fresh, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Prix de Diane", + "url": "https://www.cheese.com/prix-de-diane/", + "milk": "cow", + "country": "United States", + "region": "Maine", + "family": "Brie", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft, soft-ripened", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "buttery, citrusy, creamy, subtle", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Lakin's Gorges Cheese LLC" + }, + { + "cheese": "Processed Cheddar", + "url": "https://www.cheese.com/processed-cheddar/", + "milk": "cow", + "country": "", + "region": "NA", + "family": "Cheddar", + "type": "semi-hard, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "NA", + "flavor": "sharp", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Processed Cheese", + "url": "https://www.cheese.com/pasteurized-processed/", + "milk": "cow", + "country": "", + "region": "NA", + "family": "NA", + "type": "soft, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, spreadable, springy", + "rind": "plastic", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "cheese spread, cheese food, singles", + "alt_spellings": "NA", + "producers": "Various" + }, + { + "cheese": "Processed Smoked Gouda", + "url": "https://www.cheese.com/processed-smoked-gouda/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Gouda", + "type": "semi-hard, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "straw", + "flavor": "creamy, mild, smokey", + "aroma": "smokey", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Emmi Roth USA" + }, + { + "cheese": "Promontory", + "url": "https://www.cheese.com/promontory/", + "milk": "cow", + "country": "United States", + "region": "Utah", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm", + "rind": "NA", + "color": "pale yellow", + "flavor": "buttery, citrusy", + "aroma": "fruity, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Beehive Cheese Company" + }, + { + "cheese": "Provel", + "url": "https://www.cheese.com/provel/", + "milk": "cow", + "country": "United States", + "region": "St. Louis, Missouri", + "family": "Cheddar", + "type": "soft, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, gooey", + "rind": "plastic", + "color": "white", + "flavor": "buttery", + "aroma": "smokey", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Providence", + "url": "https://www.cheese.com/providence/", + "milk": "goat", + "country": "United States", + "region": "North Carolina", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, crumbly", + "rind": "washed", + "color": "pale yellow", + "flavor": "creamy", + "aroma": "yeasty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Goat Lady Dairy" + }, + { + "cheese": "Provoleta", + "url": "https://www.cheese.com/provoleta/", + "milk": "water buffalo", + "country": "Argentina", + "region": "NA", + "family": "Pasta filata", + "type": "semi-hard, artisan", + "fat_content": "45%", + "calcium_content": "316 mg/100g", + "texture": "creamy, smooth, springy", + "rind": "NA", + "color": "pale yellow", + "flavor": "mild, smokey", + "aroma": "fresh", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Spinning Argentine provolone cheese", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Provolone", + "url": "https://www.cheese.com/provolone/", + "milk": "cow", + "country": "Italy", + "region": "Po valley region", + "family": "Pasta filata", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "NA", + "color": "pale yellow", + "flavor": "tangy", + "aroma": "pleasant", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Provolone del Monaco", + "url": "https://www.cheese.com/provolone-del-monaco/", + "milk": "cow", + "country": "Italy", + "region": "Naples", + "family": "Pasta filata", + "type": "semi-hard, artisan", + "fat_content": "40.5%", + "calcium_content": "157 mg/100g", + "texture": "firm, grainy", + "rind": "NA", + "color": "pale yellow", + "flavor": "buttery, sweet", + "aroma": "pleasant", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Provolone delmonaco", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Provolone Mandarino Gran Riserva", + "url": "https://www.cheese.com/provolone-mandarino-gran-riserva/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "Pasta filata", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "elastic, stringy, supple", + "rind": "natural", + "color": "white", + "flavor": "pronounced, spicy, subtle", + "aroma": "spicy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Provolone Valpadana", + "url": "https://www.cheese.com/provolone-valpadana/", + "milk": "cow", + "country": "Italy", + "region": "Valpadana", + "family": "Pasta filata", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "NA", + "color": "pale yellow", + "flavor": "full-flavored", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Président Fresh Goat Cheese", + "url": "https://www.cheese.com/president-fresh-goat-cheese/", + "milk": "goat", + "country": "France", + "region": "Poitou-Charentes", + "family": "NA", + "type": "fresh firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, smooth", + "rind": "natural", + "color": "white", + "flavor": "herbaceous, mild, sharp, smooth, tangy", + "aroma": "fresh, goaty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Président plain goat log, Président herb goat log", + "alt_spellings": "NA", + "producers": "President Cheese" + }, + { + "cheese": "PsycheDillic", + "url": "https://www.cheese.com/psychedillic/", + "milk": "goat", + "country": "United States", + "region": "California", + "family": "NA", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, spreadable", + "rind": "rindless", + "color": "white", + "flavor": "creamy, full-flavored, herbaceous", + "aroma": "aromatic", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cypress Grove Chevre" + }, + { + "cheese": "Pule", + "url": "https://www.cheese.com/pule/", + "milk": "donkey", + "country": "Serbia", + "region": "Zasavica", + "family": "NA", + "type": "artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "NA", + "color": "white", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "magareći sir", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Purple Haze", + "url": "https://www.cheese.com/purple-haze/", + "milk": "goat", + "country": "United States", + "region": "California", + "family": "NA", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, smooth, spreadable", + "rind": "rindless", + "color": "white", + "flavor": "earthy, herbaceous", + "aroma": "aromatic", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cypress Grove Chevre" + }, + { + "cheese": "Purple's a Must", + "url": "https://www.cheese.com/purples-must/", + "milk": "cow, goat", + "country": "Canada, Italy", + "region": "Lombardy", + "family": "Blue", + "type": "semi-hard, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "mold ripened", + "color": "pale yellow", + "flavor": "full-flavored, strong", + "aroma": "rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fifth Town Artisan Cheese" + }, + { + "cheese": "Pyengana Cheddar", + "url": "https://www.cheese.com/pyengana-cheddar/", + "milk": "cow", + "country": "Australia", + "region": "Tasmania", + "family": "Cheddar", + "type": "hard, semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, smooth", + "rind": "natural", + "color": "pale yellow", + "flavor": "acidic, full-flavored, herbaceous, savory, spicy", + "aroma": "grassy, herbal", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Pyengana Dairy Company" + }, + { + "cheese": "Pyramide", + "url": "https://www.cheese.com/pyramide/", + "milk": "goat", + "country": "France", + "region": "Loire Valley", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "natural", + "color": "ivory", + "flavor": "NA", + "aroma": "pungent", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Pérail de Brebis", + "url": "https://www.cheese.com/perail-de-brebis/", + "milk": "sheep", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "pale yellow", + "flavor": "full-flavored, strong", + "aroma": "goaty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Perail, Pérail", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Saaland Pfarr", + "url": "https://www.cheese.com/saaland-pfarr/", + "milk": "cow", + "country": "Sweden", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "45-50%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "yellow", + "flavor": "salty, spicy, strong", + "aroma": "aromatic, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "VODCheese", + "alt_spellings": "NA", + "producers": "Norrmejerier" + }, + { + "cheese": "Saanen Silk", + "url": "https://www.cheese.com/saanen-silk/", + "milk": "goat", + "country": "Canada", + "region": "Ontario", + "family": "NA", + "type": "semi-soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, fluffy, runny, soft-ripened", + "rind": "bloomy", + "color": "white", + "flavor": "mild, mushroomy", + "aroma": "floral, pleasant", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cross Wind Farm" + }, + { + "cheese": "Saanenkaese", + "url": "https://www.cheese.com/saanenkaese/", + "milk": "cow", + "country": "Switzerland", + "region": "NA", + "family": "Parmesan", + "type": "hard, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "brittle, firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "fruity", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Saga", + "url": "https://www.cheese.com/saga/", + "milk": "cow", + "country": "Denmark", + "region": "NA", + "family": "Brie", + "type": "soft, blue-veined, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "bloomy", + "color": "white", + "flavor": "creamy, mild", + "aroma": "mild", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Saga Classic Blue Brie, Saga Blue Brie", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Sage Derby", + "url": "https://www.cheese.com/sage-derby/", + "milk": "cow", + "country": "England, United Kingdom", + "region": "East Midlands", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "firm", + "rind": "NA", + "color": "green", + "flavor": "herbaceous, mild", + "aroma": "herbal", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Saint Agur", + "url": "https://www.cheese.com/saint-agur/", + "milk": "cow", + "country": "France", + "region": "Auvergne", + "family": "Blue", + "type": "soft, blue-veined", + "fat_content": "60%", + "calcium_content": "NA", + "texture": "creamy, smooth, spreadable", + "rind": "NA", + "color": "blue", + "flavor": "fruity, mellow, sharp", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Saint Agur Coupe, Saint Agur Crème", + "producers": "Savencia Fromage & Dairy" + }, + { + "cheese": "Saint Albray", + "url": "https://www.cheese.com/saint-albray/", + "milk": "cow", + "country": "France", + "region": "Aquitaine", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "NA", + "flavor": "mild, sweet", + "aroma": "buttery, mild", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "St. Albray, Saint-Albray, St Albray", + "producers": "NA" + }, + { + "cheese": "Saint André", + "url": "https://www.cheese.com/saint-andre/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense", + "rind": "bloomy", + "color": "ivory", + "flavor": "buttery, tangy", + "aroma": "rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "St. Andre, Saint Andre, St André", + "producers": "NA" + }, + { + "cheese": "Saint Felicien", + "url": "https://www.cheese.com/saint-felicien/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "white", + "flavor": "creamy", + "aroma": "nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Saint Félicien", + "alt_spellings": "St Felicien", + "producers": "NA" + }, + { + "cheese": "Saint Honoré", + "url": "https://www.cheese.com/saint-honore/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Brie", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, soft, soft-ripened, supple", + "rind": "bloomy", + "color": "cream", + "flavor": "creamy, mild", + "aroma": "mild", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "Saint-Honoré, St Honoré, St. Honoré", + "producers": "La Maison Alexis de Portneuf Inc." + }, + { + "cheese": "Saint Marcellin", + "url": "https://www.cheese.com/saint-marcellin/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "white", + "flavor": "mild, tangy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "St Marcellin, Saint-Marcellin", + "producers": "NA" + }, + { + "cheese": "Saint Nectaire", + "url": "https://www.cheese.com/saint-nectaire/", + "milk": "cow", + "country": "France", + "region": "Auvergne", + "family": "Tomme", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "ivory", + "flavor": "pungent", + "aroma": "grassy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "St. Nectaire, Saint-Nectaire, St Nectaire", + "producers": "NA" + }, + { + "cheese": "Saint Paulin", + "url": "https://www.cheese.com/saint-paulin/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "Saint-Paulin", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm", + "rind": "washed", + "color": "NA", + "flavor": "buttery, sweet", + "aroma": "milky", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "Saint-Paulin", + "producers": "Fromagerie Fritz Kaiser" + }, + { + "cheese": "Saint Rose", + "url": "https://www.cheese.com/saint-rose/", + "milk": "sheep", + "country": "United States", + "region": "California", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "citrusy, floral, nutty, sharp", + "aroma": "grassy, mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "St. Rose", + "producers": "Weirauch Farm and Creamery" + }, + { + "cheese": "Sainte-Maure de Touraine AOC", + "url": "https://www.cheese.com/sainte-maure-de-touraine-aoc/", + "milk": "goat", + "country": "France", + "region": "Loire", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, fluffy, soft", + "rind": "NA", + "color": "white", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Saint ​​Maure de Touraine, St ​​Maure de Touraine, Sainte Maure de Touraine", + "producers": "NA" + }, + { + "cheese": "Salemville Amish Blue", + "url": "https://www.cheese.com/salemville-amish-blue/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Blue", + "type": "semi-soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "NA", + "color": "ivory", + "flavor": "creamy, earthy", + "aroma": "earthy, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Salemville Reserve", + "alt_spellings": "NA", + "producers": "DCI Cheese Company, Inc" + }, + { + "cheese": "Salemville Amish Gorgonzola", + "url": "https://www.cheese.com/salemville-amish-gorgonzola/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Blue", + "type": "semi-soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "NA", + "color": "ivory", + "flavor": "creamy, earthy, piquant", + "aroma": "earthy, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "DCI Cheese Company, Inc" + }, + { + "cheese": "Salemville Smokehaus Blue", + "url": "https://www.cheese.com/salemville-smokehaus-blue/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Blue", + "type": "semi-soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "ivory", + "flavor": "creamy, smokey", + "aroma": "earthy, rich, smokey", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "DCI Cheese Company, Inc" + }, + { + "cheese": "Salers", + "url": "https://www.cheese.com/salers/", + "milk": "cow", + "country": "France", + "region": "Auvergne, Salers", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "red", + "flavor": "fruity, spicy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Salsa Asiago", + "url": "https://www.cheese.com/salsa-asiago/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, firm, open, smooth", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, garlicky, nutty, sharp, spicy", + "aroma": "aromatic, nutty, pungent", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Saltbush Chevre", + "url": "https://www.cheese.com/saltbush_chevre/", + "milk": "goat", + "country": "Australia", + "region": "South Australia", + "family": "NA", + "type": "fresh firm, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy", + "rind": "rindless", + "color": "white", + "flavor": "acidic, grassy, herbaceous, salty", + "aroma": "goaty, grassy, herbal", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Woodside Cheese Wrights" + }, + { + "cheese": "Samso", + "url": "https://www.cheese.com/samso/", + "milk": "cow", + "country": "Denmark", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "30-45%", + "calcium_content": "NA", + "texture": "supple", + "rind": "waxed", + "color": "yellow", + "flavor": "nutty, sour, sweet", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "San Andreas", + "url": "https://www.cheese.com/san-andreas/", + "milk": "sheep", + "country": "United States", + "region": "California", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm, open, smooth", + "rind": "natural", + "color": "straw", + "flavor": "butterscotch, nutty, sweet", + "aroma": "clean, mild, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Bellwether Farms" + }, + { + "cheese": "San Geronimo", + "url": "https://www.cheese.com/san-geronimo/", + "milk": "cow", + "country": "United States", + "region": "Nicasio", + "family": "NA", + "type": "semi-soft, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "washed", + "color": "white", + "flavor": "acidic, meaty, mellow, mild, tangy, tart", + "aroma": "earthy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Nicasio Valley Cheese Company" + }, + { + "cheese": "San Simón DOP", + "url": "https://www.cheese.com/san-simon/", + "milk": "cow", + "country": "Spain", + "region": "Galicia", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy", + "rind": "natural", + "color": "cream", + "flavor": "buttery", + "aroma": "smokey, woody", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Sancerre", + "url": "https://www.cheese.com/sancerre/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "40%", + "calcium_content": "NA", + "texture": "", + "rind": "natural", + "color": "NA", + "flavor": "nutty, strong", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Sandy Creek", + "url": "https://www.cheese.com/sandy-creek/", + "milk": "goat", + "country": "United States", + "region": "North Carolina", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "runny, smooth", + "rind": "mold ripened", + "color": "ivory", + "flavor": "citrusy, lemony, mushroomy, tangy", + "aroma": "earthy, grassy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Goat Lady Dairy" + }, + { + "cheese": "Santa Gadea", + "url": "https://www.cheese.com/santa-gadea/", + "milk": "goat", + "country": "Spain", + "region": "NA", + "family": "NA", + "type": "soft, semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, soft", + "rind": "NA", + "color": "white", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Sao Jorge", + "url": "https://www.cheese.com/sao-jorge/", + "milk": "cow", + "country": "Portugal", + "region": "Azores", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "chalky, crumbly, firm", + "rind": "natural", + "color": "golden yellow", + "flavor": "spicy, tangy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "S. Jorge cheese, Queijo São Jorge, St. George", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Sap Sago", + "url": "https://www.cheese.com/sap-sago/", + "milk": "cow", + "country": "Switzerland", + "region": "Canton of Glarus", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dry", + "rind": "natural", + "color": "green", + "flavor": "NA", + "aroma": "herbal", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Schabziger, Swiss Green Cheese", + "alt_spellings": "sapsago", + "producers": "NA" + }, + { + "cheese": "Saporito", + "url": "https://www.cheese.com/saporito/", + "milk": "cow", + "country": "Italy", + "region": "Treviso, Veneto", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "ivory", + "flavor": "creamy, mild", + "aroma": "herbal", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Moro Latteria di Moro Sergio" + }, + { + "cheese": "Sardo", + "url": "https://www.cheese.com/sardo/", + "milk": "cow", + "country": "Argentina", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, firm, flaky", + "rind": "natural", + "color": "pale yellow", + "flavor": "full-flavored, salty, sharp", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Argentine Sardo, Sardo Argentino", + "producers": "NA" + }, + { + "cheese": "Sarró de Cabra", + "url": "https://www.cheese.com/sarro-de-cabra/", + "milk": "goat", + "country": "Spain", + "region": "Barcelona", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery", + "rind": "cloth wrapped", + "color": "white", + "flavor": "citrusy, strong, tangy", + "aroma": "mild, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Sarro", + "alt_spellings": "NA", + "producers": "Formatgeries Montbrú" + }, + { + "cheese": "Sartori Classic Cheese Asiago", + "url": "https://www.cheese.com/sartori-classic-cheese-asiago/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, crumbly, open, smooth", + "rind": "natural", + "color": "NA", + "flavor": "creamy, mild, nutty", + "aroma": "pungent", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Classic Cheese Fontina", + "url": "https://www.cheese.com/sartori-classic-cheese-fontina/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, nutty, smooth, sweet", + "aroma": "aromatic, lactic", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Classic Cheese Parmesan", + "url": "https://www.cheese.com/sartori-classic-cheese-parmesan/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Parmesan", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dry, grainy", + "rind": "natural", + "color": "yellow", + "flavor": "mellow, nutty, sweet", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Classic Cheese Romano", + "url": "https://www.cheese.com/sartori-classic-cheese-romano/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "brittle, crumbly, dense, flaky", + "rind": "natural", + "color": "straw", + "flavor": "nutty, savory, tangy", + "aroma": "spicy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Classic MontAmore", + "url": "https://www.cheese.com/sartori-classic-montamore/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Parmesan", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, firm", + "rind": "rindless", + "color": "pale yellow", + "flavor": "creamy, fruity, sweet, tangy", + "aroma": "fresh, fruity, pleasant", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Limited Edition Cannella BellaVitano", + "url": "https://www.cheese.com/sartori-limited-edition-cannella-bellavitano/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "pale yellow", + "flavor": "buttery, fruity, mild, sweet", + "aroma": "fresh, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Limited Edition Cognac BellaVitano", + "url": "https://www.cheese.com/sartori-limited-edition-cognac-bellavitano/", + "milk": "cow", + "country": "United States", + "region": "Northern Wisconsin", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "NA", + "flavor": "buttery, mild, smokey , sweet", + "aroma": "nutty, smokey", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Limited Edition Extra-Aged Goat", + "url": "https://www.cheese.com/sartori-limited-edition-extra-aged-goat/", + "milk": "goat", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "NA", + "flavor": "mild, savory", + "aroma": "mild, pleasant", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Limited Edition Family Heirloom BellaVitano", + "url": "https://www.cheese.com/sartori-limited-edition-family-heirloom-bellavitano/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dry", + "rind": "natural", + "color": "pale yellow", + "flavor": "full-flavored, strong, sweet", + "aroma": "fermented, grassy, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Limited Edition Family Heirloom Parmesan", + "url": "https://www.cheese.com/sartori-limited-edition-family-heirloom-parmesan/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Parmesan", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, flaky, grainy", + "rind": "natural", + "color": "golden yellow", + "flavor": "caramel, fruity, nutty, piquant, sweet", + "aroma": "buttery, nutty, woody", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Limited Edition Pastorale Blend", + "url": "https://www.cheese.com/sartori-limited-edition-pastorale-blend/", + "milk": "cow, sheep", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "nutty, sweet", + "aroma": "earthy, nutty, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Reserve Balsamic BellaVitano", + "url": "https://www.cheese.com/sartori-reserve-balsamic-bellavitano/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "NA", + "color": "NA", + "flavor": "fruity, nutty, sweet, tangy", + "aroma": "earthy, fruity, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Reserve Basil & Olive Oil Asiago", + "url": "https://www.cheese.com/sartori-reserve-basil-olive-oil-asiago/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "pale yellow", + "flavor": "herbaceous, savory, sweet", + "aroma": "herbal, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Reserve BellaVitano Gold", + "url": "https://www.cheese.com/sartori-reserve-bellavitano-gold/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "fruity, nutty, sweet", + "aroma": "fruity, nutty, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Reserve Black Pepper BellaVitano", + "url": "https://www.cheese.com/sartori-reserve-black-pepper-bellavitano/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, nutty, salty, spicy", + "aroma": "nutty, rich, spicy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Reserve Chai BellaVitano", + "url": "https://www.cheese.com/sartori-reserve-chai-bellavitano/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, sweet", + "aroma": "rich, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Reserve Cheese Mediterranean Fontina", + "url": "https://www.cheese.com/sartori-reserve-cheese-mediterranean-fontina/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "cream", + "flavor": "garlicky, piquant, spicy, sweet", + "aroma": "earthy, herbal", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Reserve Dolcina Gorgonzola", + "url": "https://www.cheese.com/sartori-reserve-dolcina-gorgonzola/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Blue", + "type": "semi-firm, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "natural", + "color": "ivory", + "flavor": "mild, smooth, sweet", + "aroma": "rich, spicy", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Reserve Espresso BellaVitano", + "url": "https://www.cheese.com/sartori-reserve-espresso-bellavitano/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "smokey , sweet", + "aroma": "smokey, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Reserve Extra Aged Fontina", + "url": "https://www.cheese.com/sartori-reserve-extra-aged-fontina/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "yellow", + "flavor": "buttery, fruity, mild, tangy", + "aroma": "lactic, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Reserve Extra-Aged Asiago", + "url": "https://www.cheese.com/sartori-reserve-extra-aged-asiago/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "NA", + "color": "pale yellow", + "flavor": "creamy, nutty", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Reserve Merlot BellaVitano", + "url": "https://www.cheese.com/sartori-reserve-merlot-bellavitano/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crystalline", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, fruity", + "aroma": "fruity, pleasant, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Reserve Raspberry BellaVitano", + "url": "https://www.cheese.com/sartori-reserve-raspberry-bellavitano/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "buttery, creamy, fruity, nutty, sweet", + "aroma": "fruity, nutty, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Reserve Rosemary & Olive Oil Asiago", + "url": "https://www.cheese.com/sartori-reserve-rosemary-olive-oil-asiago/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "pale yellow", + "flavor": "fruity, nutty", + "aroma": "fruity, nutty, rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sartori Reserve SarVecchio Parmesan", + "url": "https://www.cheese.com/sartori-reserve-sarvecchio-parmesan/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Parmesan", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, crystalline, dry, flaky, grainy", + "rind": "natural", + "color": "yellow", + "flavor": "caramel, fruity, nutty", + "aroma": "fruity, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Sbrinz", + "url": "https://www.cheese.com/sbrinz/", + "milk": "cow", + "country": "Switzerland", + "region": "Lucerne, Schwyz, Unterwald, and Zoug, and the following additional places: Muri district in d'Argovi", + "family": "Swiss Cheese", + "type": "hard, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "dense, flaky", + "rind": "natural", + "color": "yellow", + "flavor": "butterscotch, full-flavored, nutty, spicy, strong", + "aroma": "aromatic, spicy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Sbronzo", + "url": "https://www.cheese.com/sbronzo/", + "milk": "water buffalo", + "country": "Italy", + "region": "Campania", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense", + "rind": "natural", + "color": "ivory", + "flavor": "buttery, creamy, fruity, sweet", + "aroma": "fruity", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Casa Madaio" + }, + { + "cheese": "Scallion Onion Cheddar", + "url": "https://www.cheese.com/scallion-onion-cheddar/", + "milk": "cow", + "country": "United States", + "region": "NY", + "family": "Cheddar", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "full-flavored, spicy", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Muranda Cheese Company" + }, + { + "cheese": "Scamorza", + "url": "https://www.cheese.com/scamorza/", + "milk": "cow", + "country": "Italy", + "region": "NA", + "family": "Pasta filata", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "elastic, smooth, springy", + "rind": "natural", + "color": "white", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Smoked Scamorza", + "alt_spellings": "Scamorza Affumicata", + "producers": "NA" + }, + { + "cheese": "Schloss", + "url": "https://www.cheese.com/schloss/", + "milk": "cow", + "country": "United States", + "region": "NA", + "family": "NA", + "type": "semi-soft, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "chalky, creamy, smooth", + "rind": "washed", + "color": "straw", + "flavor": "citrusy, earthy, fruity, full-flavored, meaty, pungent", + "aroma": "pungent, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Marin French Cheeese Co." + }, + { + "cheese": "Scotch Bonnet Cheddar", + "url": "https://www.cheese.com/scotch-bonnet-cheddar/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "Cheddar", + "type": "hard, processed", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "plastic", + "color": "pale yellow", + "flavor": "creamy, spicy, strong", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Tesco" + }, + { + "cheese": "Sea Change", + "url": "https://www.cheese.com/sea-change/", + "milk": "cow", + "country": "United States", + "region": "Lebanon, CT", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "elastic, smooth", + "rind": "natural", + "color": "cream", + "flavor": "buttery, mild, milky", + "aroma": "fruity, lactic, yeasty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "The Mystic Cheese Company" + }, + { + "cheese": "Seahive", + "url": "https://www.cheese.com/seahive/", + "milk": "cow", + "country": "United States", + "region": "Utah", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dry, firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "salty, sweet", + "aroma": "floral", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Beehive Cheese Company" + }, + { + "cheese": "Seascape", + "url": "https://www.cheese.com/seascape/", + "milk": "cow, goat", + "country": "United States", + "region": "California", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "8 g/100g", + "calcium_content": "NA", + "texture": "crumbly, smooth", + "rind": "natural", + "color": "pale yellow", + "flavor": "buttery, caramel, tangy", + "aroma": "pleasant", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Central Coast Creamery" + }, + { + "cheese": "Seastack", + "url": "https://www.cheese.com/seastack/", + "milk": "cow", + "country": "United States", + "region": "Port Townsend", + "family": "NA", + "type": "soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm, runny, soft", + "rind": "ash coated", + "color": "white", + "flavor": "citrusy, earthy, garlicky, tangy", + "aroma": "fresh, milky", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Mt. Townsend Creamery" + }, + { + "cheese": "Seator's Orkney", + "url": "https://www.cheese.com/seators-orkney/", + "milk": "cow", + "country": "Great Britain, Scotland, United Kingdom", + "region": "Orkney Islands", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "NA", + "color": "cream", + "flavor": "acidic", + "aroma": "lactic", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Grimbister Farm" + }, + { + "cheese": "Selles sur Cher", + "url": "https://www.cheese.com/selles-sur-cher/", + "milk": "goat", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "ash coated", + "color": "NA", + "flavor": "tangy", + "aroma": "lactic, nutty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Selva", + "url": "https://www.cheese.com/selva/", + "milk": "cow", + "country": "Spain", + "region": "Fornells de la Selva, Gironès", + "family": "NA", + "type": "soft, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "smooth, supple", + "rind": "natural", + "color": "pale yellow", + "flavor": "bitter, buttery, salty", + "aroma": "pleasant", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Queso De La Selva", + "producers": "NA" + }, + { + "cheese": "Serat", + "url": "https://www.cheese.com/serat/", + "milk": "sheep", + "country": "Afghanistan", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Seriously Strong Cheddar", + "url": "https://www.cheese.com/seriously-strong-cheddar/", + "milk": "cow", + "country": "England, Scotland, United Kingdom", + "region": "Stranraer", + "family": "Cheddar", + "type": "hard", + "fat_content": "34.4%", + "calcium_content": "740 mg/100g", + "texture": "crumbly, dense, firm, flaky", + "rind": "natural", + "color": "yellow", + "flavor": "full-flavored, savory, smokey , spicy, tangy", + "aroma": "rich, smokey, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Seriously Strong Spreadable, Seriously Strong Vintage Cheddar, Seriously Strong Grated Cheddar", + "producers": "Lactalis McLelland Ltd" + }, + { + "cheese": "Serra da Estrela DOP", + "url": "https://www.cheese.com/serra-da-estrela-dop/", + "milk": "sheep", + "country": "Portugal", + "region": "Serra da Estrela", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "ivory", + "flavor": "NA", + "aroma": "pungent", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Serra da Estrela, Queijo Serra da Estrela", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Sgt. Pepper", + "url": "https://www.cheese.com/sgt-pepper/", + "milk": "goat", + "country": "United States", + "region": "California", + "family": "NA", + "type": "fresh soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, spreadable", + "rind": "rindless", + "color": "white", + "flavor": "full-flavored, spicy", + "aroma": "fresh, spicy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cypress Grove Chevre" + }, + { + "cheese": "Shaker Blue", + "url": "https://www.cheese.com/shaker-blue/", + "milk": "sheep", + "country": "United States", + "region": "New York", + "family": "Blue", + "type": "semi-firm, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "rindless", + "color": "ivory", + "flavor": "acidic, creamy, full-flavored, sweet", + "aroma": "rich, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Shaker Blue", + "alt_spellings": "NA", + "producers": "Old Chatham Sheepherding Company" + }, + { + "cheese": "Shamembert", + "url": "https://www.cheese.com/vegan-shamembert/", + "milk": "plant-based", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft, soft-ripened", + "rind": "mold ripened", + "color": "white", + "flavor": "earthy, full-flavored, mushroomy, savory, strong", + "aroma": "earthy", + "vegetarian": "TRUE", + "vegan": "TRUE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Honestly Tasty" + }, + { + "cheese": "Shanklish", + "url": "https://www.cheese.com/shanklish/", + "milk": "cow, sheep", + "country": "Egypt, Lebanon, Syria", + "region": "NA", + "family": "Feta", + "type": "fresh firm, hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, firm", + "rind": "mold ripened", + "color": "white", + "flavor": "sharp, spicy, strong", + "aroma": "pungent, strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Grandpa's dairy" + }, + { + "cheese": "Sharon Hollow Garlic and Chive", + "url": "https://www.cheese.com/sharon-hollow-garlic-and-chive/", + "milk": "cow", + "country": "United States", + "region": "Ann Arbor, Michigan", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "flaky", + "rind": "rindless", + "color": "ivory", + "flavor": "garlicky, milky", + "aroma": "fresh, garlicky", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Sharon Hollow Garlic and Pepper", + "alt_spellings": "NA", + "producers": "Zingerman's Creamery" + }, + { + "cheese": "Sharp Cheddar", + "url": "https://www.cheese.com/sharp-cheddar/", + "milk": "cow", + "country": "United States", + "region": "NA", + "family": "Cheddar", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "NA", + "flavor": "sharp, strong, tangy", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Sharpham", + "url": "https://www.cheese.com/sharpham/", + "milk": "cow", + "country": "England, United Kingdom", + "region": "Devon", + "family": "Brie", + "type": "soft, artisan", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "mold ripened", + "color": "white", + "flavor": "buttery", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sharpham Wine & Cheese" + }, + { + "cheese": "Sharpham Elmhirst", + "url": "https://www.cheese.com/sharpham-elmhirst/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Devon", + "family": "NA", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, soft, soft-ripened, spreadable", + "rind": "bloomy", + "color": "white", + "flavor": "creamy, full-flavored, milky, smooth", + "aroma": "fresh, mild, milky, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sharpham Wine & Cheese" + }, + { + "cheese": "Sharpham Rustic", + "url": "https://www.cheese.com/sharpham-rustic/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Devon", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "white", + "flavor": "lemony, nutty", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sharpham Wine & Cheese" + }, + { + "cheese": "Sharpham Rustic Chive & Garlic", + "url": "https://www.cheese.com/sharpham-rustic-chive-garlic/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Devon", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "white", + "flavor": "creamy, garlicky, savory", + "aroma": "garlicky, nutty, strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sharpham Wine & Cheese" + }, + { + "cheese": "Sharpham Savour", + "url": "https://www.cheese.com/sharpham-savour/", + "milk": "cow, goat", + "country": "England, Great Britain, United Kingdom", + "region": "Devon", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "close, creamy, supple", + "rind": "natural", + "color": "cream", + "flavor": "smooth, sweet", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sharpham Wine & Cheese" + }, + { + "cheese": "Sheep Gouda", + "url": "https://www.cheese.com/sheep-gouda/", + "milk": "sheep", + "country": "United States", + "region": "Maine", + "family": "Gouda", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, crumbly, dense", + "rind": "natural", + "color": "pale yellow", + "flavor": "caramel, nutty", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fuzzy Udder Creamery" + }, + { + "cheese": "Shelburne Cheddar", + "url": "https://www.cheese.com/shelburne-cheddar/", + "milk": "cow", + "country": "United States", + "region": "Shelburne Farms", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "51%", + "calcium_content": "NA", + "texture": "firm", + "rind": "rindless", + "color": "pale yellow", + "flavor": "strong", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Shelburne Farms" + }, + { + "cheese": "Shepherd's Crook", + "url": "https://www.cheese.com/shepherds-crook/", + "milk": "sheep", + "country": "England", + "region": "Somerset", + "family": "NA", + "type": "soft, artisan", + "fat_content": "48%", + "calcium_content": "NA", + "texture": "creamy, smooth, springy", + "rind": "mold ripened", + "color": "white", + "flavor": "mild, sweet", + "aroma": "rich, sweet", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Wootton Organic Dairy" + }, + { + "cheese": "Shepherd's Hope", + "url": "https://www.cheese.com/shepherds-hope/", + "milk": "sheep", + "country": "United States", + "region": "Minnesota", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm, soft", + "rind": "rindless", + "color": "white", + "flavor": "citrusy, garlicky, herbaceous, mild, milky", + "aroma": "aromatic, fresh, herbal", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Shepherd's Way Farms" + }, + { + "cheese": "Shepherdista Crush", + "url": "https://www.cheese.com/shepherdista-crush/", + "milk": "sheep", + "country": "United States", + "region": "California", + "family": "NA", + "type": "firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact", + "rind": "natural", + "color": "ivory", + "flavor": "tangy", + "aroma": "grassy, woody", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Shepherdista", + "alt_spellings": "NA", + "producers": "Bleating Heart Cheese" + }, + { + "cheese": "Shepsog", + "url": "https://www.cheese.com/shepsog/", + "milk": "cow, sheep", + "country": "United States", + "region": "Vermont", + "family": "NA", + "type": "semi-firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery", + "rind": "natural", + "color": "yellow", + "flavor": "nutty, sweet", + "aroma": "earthy, nutty, rich, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Grafton Village Cheese Company" + }, + { + "cheese": "Ships Wheel Brie", + "url": "https://www.cheese.com/ships-wheel-brie/", + "milk": "cow", + "country": "Australia", + "region": "Mornington Peninsula, Melbourne", + "family": "Brie", + "type": "artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "NA", + "flavor": "mild, nutty", + "aroma": "mild, nutty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "BoatShed Cheese" + }, + { + "cheese": "Shoreditch Smoked", + "url": "https://www.cheese.com/vegan-shoreditch-smoked-cheese/", + "milk": "plant-based", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "semi-firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, semi firm, soft, spreadable", + "rind": "rindless", + "color": "pale yellow", + "flavor": "nutty, smokey , umami, yeasty", + "aroma": "mild, nutty, smokey, yeasty", + "vegetarian": "TRUE", + "vegan": "TRUE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Fauxmagerie" + }, + { + "cheese": "Shorrock's Lancashire Bomb", + "url": "https://www.cheese.com/shorrocks-lancashire-bomb/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "NA", + "color": "yellow", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Shredded Bliss", + "url": "https://www.cheese.com/shredded-bliss/", + "milk": "", + "country": "Canada, United States", + "region": "NA", + "family": "Mozzarella", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "elastic, smooth, springy, stringy", + "rind": "plastic", + "color": "pale yellow", + "flavor": "mild, milky", + "aroma": "fresh, mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Lactose Free Mozzarella Shreds, Dairy Free Mozzarella Shreds, Lactose & Soy Free Mozzarella Shreds", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Shropshire Blue", + "url": "https://www.cheese.com/shropshire-blue/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "Blue", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "orange", + "flavor": "creamy", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Blue Shropshire, Blue Stuart, Inverness-shire Blue", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Shtayburne Farm Cheddar", + "url": "https://www.cheese.com/shtayburne-farm-cheddar/", + "milk": "cow", + "country": "United States", + "region": "NY", + "family": "Cheddar", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "yellow", + "flavor": "creamy, garlicky, sharp, smokey , smooth, spicy", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Shtayburne Farm" + }, + { + "cheese": "Shtayburne Farm Monterey Jack", + "url": "https://www.cheese.com/shtayburne-farm-monterey-jack/", + "milk": "cow", + "country": "United States", + "region": "NY", + "family": "Monterey Jack", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, creamy, soft, supple", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, garlicky, herbaceous, smooth, spicy, sweet, tangy", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Shtayburne Farm" + }, + { + "cheese": "Sicilian Blend", + "url": "https://www.cheese.com/sicilian-blend/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Parmesan", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dry, firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "piquant, savory, sharp, spicy", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Sartori" + }, + { + "cheese": "Siltcoos", + "url": "https://www.cheese.com/siltcoos/", + "milk": "goat", + "country": "United States", + "region": "Coast of Oregon", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft", + "rind": "ash coated", + "color": "ivory", + "flavor": "spicy, strong", + "aroma": "clean, fresh", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Rivers Edge Chèvre" + }, + { + "cheese": "Sinodun Hill", + "url": "https://www.cheese.com/sinodun-hill/", + "milk": "goat", + "country": "England", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "fluffy", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy", + "aroma": "clean", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Norton & Yarrow Cheese" + }, + { + "cheese": "Sirene", + "url": "https://www.cheese.com/sirene/", + "milk": "cow, goat, sheep", + "country": "Albania, Bulgaria, Croatia, Greece, Israel, Macedonia, Romania, Serbia", + "region": "Trakia", + "family": "Feta", + "type": "fresh soft, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, grainy, smooth", + "rind": "natural", + "color": "white", + "flavor": "lemony, salty, sharp, tangy", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Sirenje", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Sleightlett", + "url": "https://www.cheese.com/sleightlett/", + "milk": "goat", + "country": "England, Great Britain, United Kingdom", + "region": "Timsbury, Somerset", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, fluffy, smooth", + "rind": "mold ripened", + "color": "white", + "flavor": "citrusy, lemony, nutty", + "aroma": "goaty, lactic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Slices Of Bliss", + "url": "https://www.cheese.com/slices-of-bliss/", + "milk": "", + "country": "Canada, United States", + "region": "NA", + "family": "Cheddar", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "plastic", + "color": "yellow", + "flavor": "creamy, savory, sharp, spicy", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Lactose Free Slices, Dairy Free Slices, Lactose & Soy Free Slices", + "alt_spellings": "NA", + "producers": "GO Veggie!" + }, + { + "cheese": "Smoked Fior Di Latte", + "url": "https://www.cheese.com/smoked-fior-di-latte/", + "milk": "cow", + "country": "Italy", + "region": "NA", + "family": "Mozzarella", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "elastic, smooth", + "rind": "NA", + "color": "brownish yellow", + "flavor": "smokey , tangy", + "aroma": "smokey", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Smoked Gouda", + "url": "https://www.cheese.com/smoked-gouda/", + "milk": "cow, goat, sheep", + "country": "Netherlands", + "region": "NA", + "family": "Gouda", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, crumbly", + "rind": "waxed", + "color": "brownish yellow", + "flavor": "NA", + "aroma": "smokey", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Smoked Lincolnshire Poacher", + "url": "https://www.cheese.com/smoked-lincolnshire-poacher/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "NA", + "color": "pale yellow", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Smoked Sulguni", + "url": "https://www.cheese.com/smoked-sulguni/", + "milk": "buffalo, cow", + "country": "Georgia", + "region": "Svaneti, Samegrelo", + "family": "NA", + "type": "semi-firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, elastic", + "rind": "NA", + "color": "yellow", + "flavor": "salty, smokey , sour", + "aroma": "smokey", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "smoked suluguni, Georgian smoked suluguni", + "alt_spellings": "Shebolili Megruli Sulguni", + "producers": "NA" + }, + { + "cheese": "Smokey Jalapeño", + "url": "https://www.cheese.com/smokey-jalapeno/", + "milk": "", + "country": "Canada", + "region": "Ontario", + "family": "NA", + "type": "semi-firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, firm", + "rind": "NA", + "color": "golden orange", + "flavor": "creamy, mild, spicy", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Zengarry Vegetarian Cuisine" + }, + { + "cheese": "Smokey Mountain Round", + "url": "https://www.cheese.com/smokey-mountain-round/", + "milk": "goat", + "country": "United States", + "region": "North Carolina", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact", + "rind": "natural", + "color": "white", + "flavor": "savory, woody", + "aroma": "aromatic, lactic", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Goat Lady Dairy" + }, + { + "cheese": "Smokey Oregon Blue", + "url": "https://www.cheese.com/smokey-oregon-blue/", + "milk": "cow", + "country": "United States", + "region": "Oregon", + "family": "Blue", + "type": "semi-hard, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "caramel, earthy, savory, sharp, sweet", + "aroma": "milky, nutty, smokey", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Rogue Creamery" + }, + { + "cheese": "Smokey Touvelle", + "url": "https://www.cheese.com/smokey-touvelle/", + "milk": "cow", + "country": "United States", + "region": "Oregon", + "family": "Cheddar", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "nutty, sweet, tangy", + "aroma": "mild, smokey", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Rogue Creamery" + }, + { + "cheese": "Snow Camp", + "url": "https://www.cheese.com/snow-camp/", + "milk": "cow, goat", + "country": "United States", + "region": "North Carolina", + "family": "NA", + "type": "semi-firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "soft", + "rind": "bloomy", + "color": "ivory", + "flavor": "buttery, creamy", + "aroma": "buttery", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Goat Lady Dairy" + }, + { + "cheese": "Sofia", + "url": "https://www.cheese.com/sofia/", + "milk": "goat", + "country": "United States", + "region": "Indiana", + "family": "NA", + "type": "soft, artisan, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "close, creamy, dense, soft, soft-ripened", + "rind": "mold ripened", + "color": "cream", + "flavor": "citrusy, creamy, sweet, tangy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Capriole Goat Cheese" + }, + { + "cheese": "Somerset Brie", + "url": "https://www.cheese.com/somerset-brie/", + "milk": "cow", + "country": "England, United Kingdom", + "region": "Somerset", + "family": "Brie", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "white", + "flavor": "mild", + "aroma": "fresh, grassy, mushroom", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Somerset Organic Cheddar", + "url": "https://www.cheese.com/somerset-organic-cheddar/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "hard, organic", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "NA", + "color": "pale yellow", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Somerset Cheddar", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Sonnet", + "url": "https://www.cheese.com/sonnet/", + "milk": "goat, sheep", + "country": "United States", + "region": "Tieton, Washington", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth, spreadable", + "rind": "bloomy", + "color": "NA", + "flavor": "lemony, smooth", + "aroma": "rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Tieton Farm & Creamery" + }, + { + "cheese": "Sonoma Jack", + "url": "https://www.cheese.com/sonoma-jack/", + "milk": "cow", + "country": "United States", + "region": "Sonoma, California", + "family": "Monterey Jack", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "brittle, creamy, crumbly, firm, open, supple", + "rind": "natural", + "color": "pale white", + "flavor": "buttery, herbaceous, mild, mushroomy, nutty, sharp, spicy", + "aroma": "aromatic, earthy, herbal, mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Vella Cheese Company" + }, + { + "cheese": "Sosha", + "url": "https://www.cheese.com/sosha/", + "milk": "goat, yak", + "country": "China, Nepal, Tibet", + "region": "Tibet", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "white", + "flavor": "pungent, strong", + "aroma": "pungent, strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Churul", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Sottocenere® al Tartufo", + "url": "https://www.cheese.com/sottocenere-al-tartufo/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, smooth", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, salty, savory", + "aroma": "aromatic, spicy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Italian Truffle Cheese", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Soumaintrain", + "url": "https://www.cheese.com/soumaintrain/", + "milk": "cow", + "country": "France", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "NA", + "flavor": "creamy", + "aroma": "rich", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Soumaintrain AOC", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Sourire Lozerien", + "url": "https://www.cheese.com/sourire-lozerien/", + "milk": "cow", + "country": "France", + "region": "Cevenes", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "25%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "natural", + "color": "white", + "flavor": "mild, sweet", + "aroma": "musty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "SARL LAITERIE RISSOAN" + }, + { + "cheese": "Sparkenhoe Red Leicester", + "url": "https://www.cheese.com/sparkenhoe-red-leicester/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "brittle, close, creamy, crumbly, flaky", + "rind": "NA", + "color": "orange", + "flavor": "nutty", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Spenwood", + "url": "https://www.cheese.com/spenwood/", + "milk": "sheep", + "country": "England", + "region": "NA", + "family": "Parmesan", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "nutty", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Speziato", + "url": "https://www.cheese.com/speziato/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact", + "rind": "natural", + "color": "ivory", + "flavor": "earthy, spicy", + "aroma": "aromatic", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Tartufino Speziato", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Squaquerone di Bufala", + "url": "https://www.cheese.com/squaquerone-di-bufala/", + "milk": "water buffalo", + "country": "Italy", + "region": "Lombardy", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft, spreadable", + "rind": "rindless", + "color": "white", + "flavor": "acidic, piquant, subtle, sweet", + "aroma": "pleasant, subtle", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Azienda Agricola Gritti Bruno E Alfio S.s. Societa Agricola" + }, + { + "cheese": "St Andrews Farmhouse Cheddar", + "url": "https://www.cheese.com/st-andrews-farmhouse-cheddar/", + "milk": "cow", + "country": "Scotland", + "region": "NA", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, crumbly, dry", + "rind": "waxed", + "color": "pale yellow", + "flavor": "fruity, grassy, nutty, tangy", + "aroma": "buttery, grassy, subtle", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "St. Andrews Farmhouse Cheddar", + "producers": "St. Andrews Farmhouse Cheese" + }, + { + "cheese": "St Cera", + "url": "https://www.cheese.com/st-cera/", + "milk": "cow", + "country": "England", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy", + "rind": "washed", + "color": "yellow", + "flavor": "full-flavored, pronounced", + "aroma": "pungent", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "St. Cera", + "alt_spellings": "NA", + "producers": "Julie Cheyney" + }, + { + "cheese": "St Fidèle Swiss", + "url": "https://www.cheese.com/st-fidele-swiss/", + "milk": "cow", + "country": "Canada", + "region": "Quebec", + "family": "Swiss Cheese", + "type": "semi-hard", + "fat_content": "17%", + "calcium_content": "NA", + "texture": "elastic, firm, open", + "rind": "rindless", + "color": "ivory", + "flavor": "nutty, sweet", + "aroma": "aromatic, sweet", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "La Belle Brune", + "alt_spellings": "St-Fidele Swiss, Suisse St-Fidèle, Saint Fidele Swiss", + "producers": "Fromagerie St-Fidèle" + }, + { + "cheese": "St Gall", + "url": "https://www.cheese.com/st-gall/", + "milk": "cow", + "country": "Ireland", + "region": "Co. Cork", + "family": "Swiss Cheese", + "type": "hard, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth, soft, springy", + "rind": "natural", + "color": "yellow", + "flavor": "fruity, mild, milky, nutty, smooth, yeasty", + "aroma": "fruity, mild, milky, nutty, rich, yeasty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "CAIS Cheesemakers Association Ltd" + }, + { + "cheese": "St James", + "url": "https://www.cheese.com/st-james/", + "milk": "sheep", + "country": "England", + "region": "NA", + "family": "NA", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "close", + "rind": "washed", + "color": "pink and white", + "flavor": "meaty", + "aroma": "barnyardy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "St. James", + "producers": "Martin Gott" + }, + { + "cheese": "St Jude", + "url": "https://www.cheese.com/st-jude/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, fluffy", + "rind": "mold ripened", + "color": "cream", + "flavor": "NA", + "aroma": "buttery, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "St. Jude, Saint Jude", + "producers": "NA" + }, + { + "cheese": "St Killian", + "url": "https://www.cheese.com/st-killian/", + "milk": "cow", + "country": "Ireland", + "region": "Adamstown, Co Wexford", + "family": "Brie", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "mushroomy, salty", + "aroma": "aromatic, mushroom", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "St. Killian, Saint Killian", + "producers": "Carrigbyrne House, Adamstown, Co. Wexford" + }, + { + "cheese": "St Mang Original Allgäuer Limburger", + "url": "https://www.cheese.com/st-mang-original-allgauer-limburger/", + "milk": "cow", + "country": "Germany", + "region": "Allgäu", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "spicy", + "aroma": "mild, spicy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "St. Mang original Allgaeuer Romadur, St. Mang Masterpiec", + "alt_spellings": "NA", + "producers": "Käserei Champignon" + }, + { + "cheese": "St Pat", + "url": "https://www.cheese.com/st-pat/", + "milk": "cow", + "country": "United States", + "region": "California", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "bloomy", + "color": "pale yellow", + "flavor": "full-flavored, mellow", + "aroma": "rich, smokey", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Cowgirl Creamery" + }, + { + "cheese": "St Tola Ash Log", + "url": "https://www.cheese.com/st-tola-ash-log/", + "milk": "goat", + "country": "Ireland", + "region": "NA", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "ash coated", + "color": "NA", + "flavor": "full-flavored", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Inagh Farmhouse Cheese Ltd" + }, + { + "cheese": "St Tola Cranberry", + "url": "https://www.cheese.com/st-tola-cranberry/", + "milk": "goat", + "country": "Ireland", + "region": "Inagh, Co Clare", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "18.2 g/100g", + "calcium_content": "NA", + "texture": "compact, creamy, smooth, soft", + "rind": "mold ripened", + "color": "white", + "flavor": "creamy, fruity, full-flavored, sweet", + "aroma": "fresh, fruity", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Inagh Farmhouse Cheese Ltd" + }, + { + "cheese": "St Tola Crottin", + "url": "https://www.cheese.com/st-tola-crottin/", + "milk": "goat", + "country": "Ireland", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "NA", + "color": "white", + "flavor": "lemony, sweet", + "aroma": "clean, floral", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Inagh Farmhouse Cheese Ltd" + }, + { + "cheese": "St Tola Divine", + "url": "https://www.cheese.com/st-tola-divine/", + "milk": "goat", + "country": "", + "region": "Inagh, Co Clare", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "14 g/100g", + "calcium_content": "NA", + "texture": "creamy, soft, spreadable", + "rind": "rindless", + "color": "white", + "flavor": "lemony, mild, milky", + "aroma": "floral, mild, milky", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Inagh Farmhouse Cheese Ltd" + }, + { + "cheese": "St Tola Greek Style", + "url": "https://www.cheese.com/st-tola-greek-style/", + "milk": "goat", + "country": "Ireland", + "region": "Co Clare", + "family": "Feta", + "type": "firm, brined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "smooth", + "rind": "rindless", + "color": "white", + "flavor": "creamy, salty", + "aroma": "goaty", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Inagh Farmhouse Cheese Ltd" + }, + { + "cheese": "St Tola Hard Cheese", + "url": "https://www.cheese.com/st-tola-hard-cheese/", + "milk": "goat", + "country": "Ireland", + "region": "Inagh, Co Clare", + "family": "Gouda", + "type": "hard, artisan", + "fat_content": "36 g/100g", + "calcium_content": "NA", + "texture": "compact, crumbly, dense, smooth", + "rind": "waxed", + "color": "cream", + "flavor": "nutty, sweet, tangy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Inagh Farmhouse Cheese Ltd" + }, + { + "cheese": "St Tola Log", + "url": "https://www.cheese.com/st-tola-log/", + "milk": "goat", + "country": "Ireland", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "NA", + "flavor": "citrusy", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "St Tola", + "alt_spellings": "NA", + "producers": "Inagh Farmhouse Cheese Ltd" + }, + { + "cheese": "Staffordshire Organic", + "url": "https://www.cheese.com/staffordshire-organic/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Staffordshire", + "family": "NA", + "type": "hard, artisan", + "fat_content": "48%", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "NA", + "color": "yellow", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "Staffordshire Organic Cheese", + "producers": "Staffordshire Dairy" + }, + { + "cheese": "Stawley", + "url": "https://www.cheese.com/stawley/", + "milk": "goat", + "country": "England, Great Britain, United Kingdom", + "region": "Stawley, near Wellington, Somerset", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, firm, smooth", + "rind": "mold ripened", + "color": "pale yellow", + "flavor": "caramel, floral, milky, sweet", + "aroma": "mushroom, nutty", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Stella Asiago", + "url": "https://www.cheese.com/stella-asiago/", + "milk": "cow", + "country": "Italy", + "region": "Asiago", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, creamy, crumbly", + "rind": "natural", + "color": "cream", + "flavor": "nutty, sharp, smooth, sweet", + "aroma": "fresh, mild, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Stella" + }, + { + "cheese": "Stella Black Pepper Romano", + "url": "https://www.cheese.com/stella-black-pepper-romano/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, crumbly, flaky", + "rind": "natural", + "color": "pale yellow", + "flavor": "piquant, salty, sharp", + "aroma": "pleasant, spicy", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Stella" + }, + { + "cheese": "Stella Blue", + "url": "https://www.cheese.com/stella-blue/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Blue", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "natural", + "color": "white", + "flavor": "tangy", + "aroma": "rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Stella Blue Cheese crumbles", + "alt_spellings": "NA", + "producers": "Stella" + }, + { + "cheese": "Stella Feta", + "url": "https://www.cheese.com/stella-feta/", + "milk": "cow", + "country": "United States", + "region": "NA", + "family": "Feta", + "type": "firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, firm", + "rind": "NA", + "color": "white", + "flavor": "tangy", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Stella Fontina", + "url": "https://www.cheese.com/stella-fontina/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, open", + "rind": "natural", + "color": "pale yellow", + "flavor": "buttery, sweet", + "aroma": "earthy, mild", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Stella" + }, + { + "cheese": "Stella Fontinella", + "url": "https://www.cheese.com/stella-fontinella/", + "milk": "cow", + "country": "United States", + "region": "NA", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, sharp, smooth, sweet", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Stella" + }, + { + "cheese": "Stella Goat", + "url": "https://www.cheese.com/stella-goat/", + "milk": "goat", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "natural", + "color": "cream", + "flavor": "tangy", + "aroma": "mild, pleasant", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Stella" + }, + { + "cheese": "Stella Gorgonzola", + "url": "https://www.cheese.com/stella-gorgonzola/", + "milk": "cow", + "country": "United States", + "region": "NA", + "family": "Gorgonzola", + "type": "semi-soft, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "cream", + "flavor": "earthy, mellow, tangy", + "aroma": "pleasant", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Stella" + }, + { + "cheese": "Stella Italian Sharp", + "url": "https://www.cheese.com/stella-italian-sharp/", + "milk": "cow", + "country": "United States", + "region": "NA", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, full-flavored, sharp", + "aroma": "strong", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Stella" + }, + { + "cheese": "Stella Kasseri", + "url": "https://www.cheese.com/stella-kasseri/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm", + "rind": "natural", + "color": "pale yellow", + "flavor": "salty, sharp, tangy", + "aroma": "strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Saputo Inc." + }, + { + "cheese": "Stella Mediterranean Parmesan", + "url": "https://www.cheese.com/stella-mediterranean-parmesan/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Parmesan", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, crumbly, flaky", + "rind": "natural", + "color": "NA", + "flavor": "buttery, earthy, garlicky, savory, spicy", + "aroma": "nutty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Stella" + }, + { + "cheese": "Stella Parmesan", + "url": "https://www.cheese.com/stella-parmesan/", + "milk": "cow", + "country": "United States", + "region": "NA", + "family": "Parmesan", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, dense, grainy", + "rind": "natural", + "color": "pale yellow", + "flavor": "nutty, subtle", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Stella" + }, + { + "cheese": "Stella Parmesan & Romano Blend", + "url": "https://www.cheese.com/stella-parmesan-romano-blend/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Parmesan", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, flaky", + "rind": "natural", + "color": "cream", + "flavor": "salty, sharp", + "aroma": "nutty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Stella" + }, + { + "cheese": "Stella Reduced Fat Blue", + "url": "https://www.cheese.com/stella-reduced-fat-blue/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Blue", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly", + "rind": "natural", + "color": "white", + "flavor": "full-flavored", + "aroma": "pleasant", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Stella" + }, + { + "cheese": "Stella Smoked Blue", + "url": "https://www.cheese.com/stella-smoked-blue/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Blue", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "natural", + "color": "white", + "flavor": "creamy, subtle", + "aroma": "pleasant, smokey", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Stella" + }, + { + "cheese": "Stella Swiss", + "url": "https://www.cheese.com/stella-swiss/", + "milk": "cow", + "country": "United States", + "region": "Wisconsin", + "family": "Swiss Cheese", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, open, smooth", + "rind": "natural", + "color": "cream", + "flavor": "nutty, tangy", + "aroma": "mild, pleasant", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Natural Baby Swiss Cheese", + "alt_spellings": "NA", + "producers": "Stella" + }, + { + "cheese": "Sternschnuppe", + "url": "https://www.cheese.com/sternschnuppe/", + "milk": "cow", + "country": "Germany", + "region": "Allagau, Bavarian Alps", + "family": "NA", + "type": "firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "buttery, firm", + "rind": "washed", + "color": "golden yellow", + "flavor": "buttery, fruity", + "aroma": "caramel, herbal, nutty, rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "Shooting star", + "alt_spellings": "NA", + "producers": "Käsküche Isny" + }, + { + "cheese": "Stichelton", + "url": "https://www.cheese.com/stichelton/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Nottinghamshire", + "family": "Blue", + "type": "semi-soft, artisan, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "mold ripened", + "color": "ivory", + "flavor": "buttery, caramel, creamy, savory, spicy, sweet", + "aroma": "rich", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Stickney Hill Chevre", + "url": "https://www.cheese.com/stickney-hill-chevre/", + "milk": "goat", + "country": "United States", + "region": "Kimball", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "crumbly, spreadable", + "rind": "natural", + "color": "white", + "flavor": "garlicky, herbaceous, spicy, tangy", + "aroma": "goaty, mild, milky", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Stickney Hill Dairy" + }, + { + "cheese": "Stilton", + "url": "https://www.cheese.com/stilton/", + "milk": "cow", + "country": "England", + "region": "Derbyshire, Leicestershire, Nottinghamshire", + "family": "Blue", + "type": "hard, blue-veined", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly, smooth", + "rind": "natural", + "color": "NA", + "flavor": "spicy, strong", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Cropwell Bishop Blue Stilton, Stilton Colston Bassett", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Stinking Bishop", + "url": "https://www.cheese.com/stinking-bishop/", + "milk": "cow", + "country": "United Kingdom", + "region": "NA", + "family": "NA", + "type": "semi-soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "washed", + "color": "NA", + "flavor": "NA", + "aroma": "pungent", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Charles Martell & Son Limited" + }, + { + "cheese": "Stoney Cross", + "url": "https://www.cheese.com/stoney-cross/", + "milk": "cow", + "country": "England, Great Britain, United Kingdom", + "region": "Landford", + "family": "Tomme", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, smooth", + "rind": "mold ripened", + "color": "yellow", + "flavor": "earthy, subtle, sweet", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Lyburn Farm" + }, + { + "cheese": "Stracchinata", + "url": "https://www.cheese.com/stracchinata/", + "milk": "cow", + "country": "Italy", + "region": "Veneto", + "family": "NA", + "type": "fresh soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, open", + "rind": "natural", + "color": "pale yellow", + "flavor": "creamy, sweet", + "aroma": "subtle", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "La Casearia Carpenedo S.r.l." + }, + { + "cheese": "Strathdon Blue", + "url": "https://www.cheese.com/strathdon-blue/", + "milk": "cow", + "country": "Scotland", + "region": "Tain", + "family": "Blue", + "type": "semi-soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "NA", + "flavor": "creamy, spicy", + "aroma": "aromatic, rich", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Highland Fine Cheeses Limited" + }, + { + "cheese": "Strawberry Moon", + "url": "https://www.cheese.com/strawberry-moon/", + "milk": "cow", + "country": "Canada, Italy", + "region": "Lombardy", + "family": "NA", + "type": "semi-hard, artisan, smear-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, creamy, dense", + "rind": "washed", + "color": "straw", + "flavor": "subtle, sweet", + "aroma": "strong", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Fifth Town Artisan Cheese" + }, + { + "cheese": "Striegistaler Zwerge Camembert", + "url": "https://www.cheese.com/striegistaler-zwerge-camembert/", + "milk": "cow", + "country": "Germany", + "region": "Allgäu", + "family": "Camembert", + "type": "semi-soft, soft-ripened", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, soft", + "rind": "natural", + "color": "white", + "flavor": "full-flavored, mild", + "aroma": "aromatic, fresh, strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Käserei Champignon" + }, + { + "cheese": "String Cheese", + "url": "https://www.cheese.com/string/", + "milk": "", + "country": "", + "region": "NA", + "family": "NA", + "type": "semi-hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "chewy, firm, stringy", + "rind": "NA", + "color": "NA", + "flavor": "NA", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Suffolk Punch", + "url": "https://www.cheese.com/suffolk-punch/", + "milk": "cow", + "country": "United States", + "region": "Vermont", + "family": "Pasta filata", + "type": "hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dry, firm", + "rind": "natural", + "color": "ivory", + "flavor": "buttery, tangy", + "aroma": "buttery, spicy", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Parish Hill Creamery" + }, + { + "cheese": "Sulguni", + "url": "https://www.cheese.com/sulguni/", + "milk": "buffalo, cow", + "country": "Georgia", + "region": "Svaneti, Samegrelo", + "family": "NA", + "type": "semi-firm", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "dense, elastic", + "rind": "NA", + "color": "NA", + "flavor": "salty, smokey , sour", + "aroma": "NA", + "vegetarian": "NA", + "vegan": "NA", + "synonyms": "Georgian Pickle Cheese", + "alt_spellings": "Megruli Sulguni, Shebolili Megruli Sulguni", + "producers": "NA" + }, + { + "cheese": "Sun Dried Tomato and Basil Cashew Cheese", + "url": "https://www.cheese.com/sun-dried-tomato-and-basil-cashew-cheese/", + "milk": "", + "country": "Canada", + "region": "Ontario", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy", + "rind": "NA", + "color": "white", + "flavor": "creamy, full-flavored, herbaceous, nutty, tangy", + "aroma": "herbal, nutty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Zengarry Vegetarian Cuisine" + }, + { + "cheese": "Sunlight", + "url": "https://www.cheese.com/sunlight/", + "milk": "goat", + "country": "United States", + "region": "Colorado", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "compact, creamy, firm, open, smooth", + "rind": "washed", + "color": "cream", + "flavor": "buttery, caramel, grassy, piquant, sweet, tangy", + "aroma": "pungent, strong", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Haystack Mountain Creamery" + }, + { + "cheese": "Sunset Bay", + "url": "https://www.cheese.com/sunset-bay/", + "milk": "goat", + "country": "United States", + "region": "Oregon Coast Range", + "family": "NA", + "type": "soft, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, dense, smooth", + "rind": "bloomy", + "color": "ivory", + "flavor": "creamy, savory, smokey , smooth", + "aroma": "buttery, smokey, yeasty", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Rivers Edge Chèvre" + }, + { + "cheese": "Sussex Slipcote", + "url": "https://www.cheese.com/sussex-slipcote/", + "milk": "sheep", + "country": "England", + "region": "NA", + "family": "NA", + "type": "soft", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "", + "rind": "NA", + "color": "NA", + "flavor": "sharp", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "High Weald Dairy" + }, + { + "cheese": "Sveciaost", + "url": "https://www.cheese.com/sveciaost/", + "milk": "cow", + "country": "Sweden", + "region": "Low-laying regions", + "family": "NA", + "type": "semi-hard, brined", + "fat_content": "45%", + "calcium_content": "NA", + "texture": "creamy, supple", + "rind": "rindless", + "color": "pale yellow", + "flavor": "acidic", + "aroma": "NA", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Swag", + "url": "https://www.cheese.com/swag/", + "milk": "goat", + "country": "Australia", + "region": "South Australia", + "family": "NA", + "type": "fresh firm, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "creamy, crumbly", + "rind": "ash coated", + "color": "white", + "flavor": "acidic, creamy", + "aroma": "fresh", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "Woodside Cheese Wrights" + }, + { + "cheese": "Swaledale", + "url": "https://www.cheese.com/swaledale/", + "milk": "sheep", + "country": "England", + "region": "Swaledale, North Yorkshire", + "family": "NA", + "type": "hard", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "semi firm", + "rind": "NA", + "color": "yellow", + "flavor": "smooth, sweet", + "aroma": "floral", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "Swaledale Sheep Cheese", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Sweet Style Swiss", + "url": "https://www.cheese.com/sweet-style-swiss/", + "milk": "", + "country": "Switzerland", + "region": "NA", + "family": "NA", + "type": "semi-hard, artisan", + "fat_content": "NA", + "calcium_content": "NA", + "texture": "firm, supple", + "rind": "waxed", + "color": "NA", + "flavor": "nutty", + "aroma": "nutty, sweet", + "vegetarian": "FALSE", + "vegan": "FALSE", + "synonyms": "NA", + "alt_spellings": "NA", + "producers": "NA" + }, + { + "cheese": "Swiss cheese", + "url": "https://www.cheese.com/swiss/", + "milk": "cow", + "country": "United States", + "region": "NA", + "family": "Swiss Cheese", + "type": "hard, artisan, processed", + "fat_content": "7.8 g/100g", + "calcium_content": "NA", + "texture": "firm", + "rind": "rindless", + "color": "pale yellow", + "flavor": "nutty, sweet", + "aroma": "NA", + "vegetarian": "TRUE", + "vegan": "FALSE", + "synonyms": "American Swiss Cheese", + "alt_spellings": "NA", + "producers": "Various" + } +] diff --git a/playground/_posts/camembert.md b/playground/_posts/camembert.md new file mode 100644 index 0000000..d1d7664 --- /dev/null +++ b/playground/_posts/camembert.md @@ -0,0 +1,19 @@ +--- +title: "The Art and History of Camembert Cheese" +excerpt: "Discover the rich heritage and delicate craftsmanship behind France's beloved Camembert cheese. From its humble origins in Normandy to its status as a global culinary icon, explore the fascinating story of this creamy delicacy." +coverImage: "/assets/blog/covers/camembert.jpeg" +date: "2020-03-16T05:35:07.322Z" +author: + name: Joe Haddad + picture: "/assets/blog/authors/p2.jpeg" +ogImage: + url: "/assets/blog/covers/camembert.jpeg" +--- + +Camembert, the iconic soft cheese from Normandy, France, has captivated cheese lovers for centuries with its creamy texture and complex flavors. Born in the late 18th century in the village of Camembert, this cheese represents the perfect marriage of traditional craftsmanship and natural fermentation. Its distinctive white bloomy rind encases a rich, butter-colored interior that becomes increasingly creamy as it ripens. + +The making of authentic Camembert is an art form that requires both skill and patience. The process begins with raw cow's milk, which is carefully cultured and formed into its characteristic round shape. The cheese then undergoes a delicate aging process, during which it develops its signature bloomy rind and complex flavor profile. Traditional Camembert offers notes of mushrooms, butter, and earth, with a subtle hint of ammonia that develops as it reaches peak ripeness. + +## The Perfect Camembert Experience + +To fully appreciate Camembert, one must understand how to serve and enjoy it properly. The cheese should be removed from refrigeration at least an hour before serving, allowing it to reach room temperature. This brings out its full range of flavors and achieves that perfectly runny consistency. Serve it with crusty bread, fresh fruits, and a glass of Normandy cider or light red wine for an authentic French cheese experience. Whether enjoyed as part of a cheese board or baked whole with herbs and garlic, Camembert continues to enchant food enthusiasts around the world with its timeless appeal and versatility. diff --git a/playground/_posts/cheddar.md b/playground/_posts/cheddar.md new file mode 100644 index 0000000..b8eb969 --- /dev/null +++ b/playground/_posts/cheddar.md @@ -0,0 +1,21 @@ +--- +title: "Cheddar: The King of English Cheeses" +excerpt: "Explore the rich history and bold flavors of Cheddar cheese, from its origins in the Somerset village of Cheddar to its status as one of the world's most popular cheeses. Discover what makes traditional Cheddar special and how it has evolved over centuries." +coverImage: "/assets/blog/covers/cheddar.jpeg" +date: "2020-03-16T05:35:07.322Z" +author: + name: Tim Neutkens + picture: "/assets/blog/authors/p4.jpeg" +ogImage: + url: "/assets/blog/covers/cheddar.jpeg" +--- + +Cheddar cheese, with its distinctive sharp flavor and crumbly texture, has earned its place as Britain's most beloved cheese and one of the most widely produced cheeses in the world. Originally crafted in the Somerset village of Cheddar, this cheese's history dates back to at least the 12th century, when the unique caves of the Cheddar Gorge provided the perfect environment for aging. + +The traditional process of making Cheddar involves a technique known as "cheddaring," where slabs of curds are stacked and turned repeatedly to expel whey and develop the characteristic texture. This process, combined with careful aging, creates Cheddar's signature firm, dense structure and complex flavor profile. Traditional artisanal Cheddar can be aged anywhere from a few months to several years, with longer aging producing stronger, more complex flavors and often developing delightful calcium lactate crystals that add a pleasant crunch. + +## The Many Faces of Cheddar + +From mild to extra sharp, from traditional clothbound wheels to contemporary varieties, Cheddar comes in many forms. Young Cheddar offers a mild, buttery flavor with subtle notes of fresh milk, while aged versions develop intense, savory characteristics with hints of caramel, nuts, and even a slight earthiness. The color can range from ivory white to deep orange, though the orange hue comes from the addition of annatto, a natural food coloring that doesn't affect the taste. + +Today, while industrial production dominates the market, artisanal cheesemakers in Somerset and beyond continue to craft traditional Cheddar using time-honored methods. These authentic farmhouse Cheddars offer a taste of history and demonstrate why this cheese has maintained its popularity for centuries. Whether melted in a classic Welsh rarebit, grated over a shepherd's pie, or enjoyed on its own with a glass of robust red wine, Cheddar remains a testament to the enduring appeal of well-crafted cheese. diff --git a/playground/_posts/comte.md b/playground/_posts/comte.md new file mode 100644 index 0000000..d24f888 --- /dev/null +++ b/playground/_posts/comte.md @@ -0,0 +1,21 @@ +--- +title: "The Rich Heritage of Comté: France's Beloved Mountain Cheese" +excerpt: "Discover the fascinating world of Comté, the prestigious French cheese from the Jura mountains. Learn about its centuries-old crafting traditions, distinctive flavor profiles, and the unique terroir that makes this cheese a protected culinary treasure." +coverImage: "/assets/blog/covers/comte.jpeg" +date: "2020-03-16T05:35:07.322Z" +author: + name: JJ Kasper + picture: "/assets/blog/authors/p3.jpeg" +ogImage: + url: "/assets/blog/covers/comte.jpeg" +--- + +Comté, the crown jewel of French mountain cheeses, has been crafted in the Jura mountains for over a thousand years. This hard cheese, made from unpasteurized cow's milk, represents the perfect harmony between traditional craftsmanship and its alpine terroir. Each wheel of Comté tells the story of its origin, from the diverse flora that the Montbéliarde cows graze upon to the expertise of the local fruitières (cheese makers) who transform the milk into this exceptional cheese. + +The production of Comté is a testament to community cooperation and time-honored methods. The process begins with fresh milk from local farms, which must be processed within 24 hours of milking. The cheese then undergoes a careful aging process in special caves, lasting anywhere from 4 to 24 months or more. During this time, the cheese develops its complex flavor profile and distinctive texture, watched over by skilled affineurs who carefully monitor each wheel's development. + +## The Taste of Tradition + +The flavor of Comté is as varied as the landscapes where it originates. Young Comté offers subtle, buttery notes with hints of fresh nuts and sweet milk. As it ages, it develops more pronounced flavors - caramel, roasted nuts, and subtle spices emerge, sometimes accompanied by crystalline protein clusters that provide a pleasant crunch. The texture evolves from smooth and pliable to firmer and more granular, while maintaining its characteristic melt-in-your-mouth quality. + +Each wheel of Comté is unique, influenced by factors such as season, terrain, and aging conditions. This diversity is celebrated through a sophisticated tasting system that identifies over 80 distinct flavor notes, making Comté one of the most complex and nuanced cheeses in the world. Whether enjoyed on its own, melted in traditional dishes like fondue, or paired with a glass of Jura wine, Comté continues to captivate cheese enthusiasts and represent the finest in French cheese-making tradition. diff --git a/playground/docusaurus/.gitignore b/playground/docusaurus/.gitignore deleted file mode 100644 index b2d6de3..0000000 --- a/playground/docusaurus/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -# Dependencies -/node_modules - -# Production -/build - -# Generated files -.docusaurus -.cache-loader - -# Misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/playground/docusaurus/.stackblitzrc b/playground/docusaurus/.stackblitzrc deleted file mode 100644 index 5490eb1..0000000 --- a/playground/docusaurus/.stackblitzrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "installDependencies": true, - "startCommand": "npm start" -} diff --git a/playground/docusaurus/README.md b/playground/docusaurus/README.md deleted file mode 100644 index aaba2fa..0000000 --- a/playground/docusaurus/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Website - -This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. - -### Installation - -``` -$ yarn -``` - -### Local Development - -``` -$ yarn start -``` - -This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. - -### Build - -``` -$ yarn build -``` - -This command generates static content into the `build` directory and can be served using any static contents hosting service. - -### Deployment - -Using SSH: - -``` -$ USE_SSH=true yarn deploy -``` - -Not using SSH: - -``` -$ GIT_USER= yarn deploy -``` - -If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. diff --git a/playground/docusaurus/babel.config.js b/playground/docusaurus/babel.config.js deleted file mode 100644 index e00595d..0000000 --- a/playground/docusaurus/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [require.resolve('@docusaurus/core/lib/babel/preset')], -}; diff --git a/playground/docusaurus/blog/2019-05-28-first-blog-post.md b/playground/docusaurus/blog/2019-05-28-first-blog-post.md deleted file mode 100644 index 02f3f81..0000000 --- a/playground/docusaurus/blog/2019-05-28-first-blog-post.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -slug: first-blog-post -title: First Blog Post -authors: - name: Gao Wei - title: Docusaurus Core Team - url: https://github.com/wgao19 - image_url: https://github.com/wgao19.png -tags: [hola, docusaurus] ---- - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet diff --git a/playground/docusaurus/blog/2019-05-29-long-blog-post.md b/playground/docusaurus/blog/2019-05-29-long-blog-post.md deleted file mode 100644 index 26ffb1b..0000000 --- a/playground/docusaurus/blog/2019-05-29-long-blog-post.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -slug: long-blog-post -title: Long Blog Post -authors: endi -tags: [hello, docusaurus] ---- - -This is the summary of a very long blog post, - -Use a `` comment to limit blog post size in the list view. - - - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet diff --git a/playground/docusaurus/blog/2021-08-01-mdx-blog-post.mdx b/playground/docusaurus/blog/2021-08-01-mdx-blog-post.mdx deleted file mode 100644 index c04ebe3..0000000 --- a/playground/docusaurus/blog/2021-08-01-mdx-blog-post.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -slug: mdx-blog-post -title: MDX Blog Post -authors: [slorber] -tags: [docusaurus] ---- - -Blog posts support [Docusaurus Markdown features](https://docusaurus.io/docs/markdown-features), such as [MDX](https://mdxjs.com/). - -:::tip - -Use the power of React to create interactive blog posts. - -```js - -``` - - - -::: diff --git a/playground/docusaurus/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg b/playground/docusaurus/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg deleted file mode 100644 index 11bda09..0000000 Binary files a/playground/docusaurus/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg and /dev/null differ diff --git a/playground/docusaurus/blog/2021-08-26-welcome/index.md b/playground/docusaurus/blog/2021-08-26-welcome/index.md deleted file mode 100644 index 9455168..0000000 --- a/playground/docusaurus/blog/2021-08-26-welcome/index.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -slug: welcome -title: Welcome -authors: [slorber, yangshun] -tags: [facebook, hello, docusaurus] ---- - -[Docusaurus blogging features](https://docusaurus.io/docs/blog) are powered by the [blog plugin](https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-blog). - -Simply add Markdown files (or folders) to the `blog` directory. - -Regular blog authors can be added to `authors.yml`. - -The blog post date can be extracted from filenames, such as: - -- `2019-05-30-welcome.md` -- `2019-05-30-welcome/index.md` - -A blog post folder can be convenient to co-locate blog post images: - -![Docusaurus Plushie](./docusaurus-plushie-banner.jpeg) - -The blog supports tags as well! - -**And if you don't want a blog**: just delete this directory, and use `blog: false` in your Docusaurus config. diff --git a/playground/docusaurus/blog/authors.yml b/playground/docusaurus/blog/authors.yml deleted file mode 100644 index bcb2991..0000000 --- a/playground/docusaurus/blog/authors.yml +++ /dev/null @@ -1,17 +0,0 @@ -endi: - name: Endilie Yacop Sucipto - title: Maintainer of Docusaurus - url: https://github.com/endiliey - image_url: https://github.com/endiliey.png - -yangshun: - name: Yangshun Tay - title: Front End Engineer @ Facebook - url: https://github.com/yangshun - image_url: https://github.com/yangshun.png - -slorber: - name: Sébastien Lorber - title: Docusaurus maintainer - url: https://sebastienlorber.com - image_url: https://github.com/slorber.png diff --git a/playground/docusaurus/docs/intro.md b/playground/docusaurus/docs/intro.md deleted file mode 100644 index 8a2e69d..0000000 --- a/playground/docusaurus/docs/intro.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Tutorial Intro - -Let's discover **Docusaurus in less than 5 minutes**. - -## Getting Started - -Get started by **creating a new site**. - -Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new)**. - -### What you'll need - -- [Node.js](https://nodejs.org/en/download/) version 16.14 or above: - - When installing Node.js, you are recommended to check all checkboxes related to dependencies. - -## Generate a new site - -Generate a new Docusaurus site using the **classic template**. - -The classic template will automatically be added to your project after you run the command: - -```bash -npm init docusaurus@latest my-website classic -``` - -You can type this command into Command Prompt, Powershell, Terminal, or any other integrated terminal of your code editor. - -The command also installs all necessary dependencies you need to run Docusaurus. - -## Start your site - -Run the development server: - -```bash -cd my-website -npm run start -``` - -The `cd` command changes the directory you're working with. In order to work with your newly created Docusaurus site, you'll need to navigate the terminal there. - -The `npm run start` command builds your website locally and serves it through a development server, ready for you to view at http://localhost:3000/. - -Open `docs/intro.md` (this page) and edit some lines: the site **reloads automatically** and displays your changes. diff --git a/playground/docusaurus/docs/tutorial-basics/_category_.json b/playground/docusaurus/docs/tutorial-basics/_category_.json deleted file mode 100644 index 2e6db55..0000000 --- a/playground/docusaurus/docs/tutorial-basics/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Tutorial - Basics", - "position": 2, - "link": { - "type": "generated-index", - "description": "5 minutes to learn the most important Docusaurus concepts." - } -} diff --git a/playground/docusaurus/docs/tutorial-basics/congratulations.md b/playground/docusaurus/docs/tutorial-basics/congratulations.md deleted file mode 100644 index 04771a0..0000000 --- a/playground/docusaurus/docs/tutorial-basics/congratulations.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Congratulations! - -You have just learned the **basics of Docusaurus** and made some changes to the **initial template**. - -Docusaurus has **much more to offer**! - -Have **5 more minutes**? Take a look at **[versioning](../tutorial-extras/manage-docs-versions.md)** and **[i18n](../tutorial-extras/translate-your-site.md)**. - -Anything **unclear** or **buggy** in this tutorial? [Please report it!](https://github.com/facebook/docusaurus/discussions/4610) - -## What's next? - -- Read the [official documentation](https://docusaurus.io/) -- Modify your site configuration with [`docusaurus.config.js`](https://docusaurus.io/docs/api/docusaurus-config) -- Add navbar and footer items with [`themeConfig`](https://docusaurus.io/docs/api/themes/configuration) -- Add a custom [Design and Layout](https://docusaurus.io/docs/styling-layout) -- Add a [search bar](https://docusaurus.io/docs/search) -- Find inspirations in the [Docusaurus showcase](https://docusaurus.io/showcase) -- Get involved in the [Docusaurus Community](https://docusaurus.io/community/support) diff --git a/playground/docusaurus/docs/tutorial-basics/create-a-blog-post.md b/playground/docusaurus/docs/tutorial-basics/create-a-blog-post.md deleted file mode 100644 index ea472bb..0000000 --- a/playground/docusaurus/docs/tutorial-basics/create-a-blog-post.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Create a Blog Post - -Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed... - -## Create your first Post - -Create a file at `blog/2021-02-28-greetings.md`: - -```md title="blog/2021-02-28-greetings.md" ---- -slug: greetings -title: Greetings! -authors: - - name: Joel Marcey - title: Co-creator of Docusaurus 1 - url: https://github.com/JoelMarcey - image_url: https://github.com/JoelMarcey.png - - name: Sébastien Lorber - title: Docusaurus maintainer - url: https://sebastienlorber.com - image_url: https://github.com/slorber.png -tags: [greetings] ---- - -Congratulations, you have made your first post! - -Feel free to play around and edit this post as much you like. -``` - -A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings). diff --git a/playground/docusaurus/docs/tutorial-basics/create-a-document.md b/playground/docusaurus/docs/tutorial-basics/create-a-document.md deleted file mode 100644 index ffddfa8..0000000 --- a/playground/docusaurus/docs/tutorial-basics/create-a-document.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Create a Document - -Documents are **groups of pages** connected through: - -- a **sidebar** -- **previous/next navigation** -- **versioning** - -## Create your first Doc - -Create a Markdown file at `docs/hello.md`: - -```md title="docs/hello.md" -# Hello - -This is my **first Docusaurus document**! -``` - -A new document is now available at [http://localhost:3000/docs/hello](http://localhost:3000/docs/hello). - -## Configure the Sidebar - -Docusaurus automatically **creates a sidebar** from the `docs` folder. - -Add metadata to customize the sidebar label and position: - -```md title="docs/hello.md" {1-4} ---- -sidebar_label: 'Hi!' -sidebar_position: 3 ---- - -# Hello - -This is my **first Docusaurus document**! -``` - -It is also possible to create your sidebar explicitly in `sidebars.js`: - -```js title="sidebars.js" -module.exports = { - tutorialSidebar: [ - 'intro', - // highlight-next-line - 'hello', - { - type: 'category', - label: 'Tutorial', - items: ['tutorial-basics/create-a-document'], - }, - ], -}; -``` diff --git a/playground/docusaurus/docs/tutorial-basics/create-a-page.md b/playground/docusaurus/docs/tutorial-basics/create-a-page.md deleted file mode 100644 index 20e2ac3..0000000 --- a/playground/docusaurus/docs/tutorial-basics/create-a-page.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Create a Page - -Add **Markdown or React** files to `src/pages` to create a **standalone page**: - -- `src/pages/index.js` → `localhost:3000/` -- `src/pages/foo.md` → `localhost:3000/foo` -- `src/pages/foo/bar.js` → `localhost:3000/foo/bar` - -## Create your first React Page - -Create a file at `src/pages/my-react-page.js`: - -```jsx title="src/pages/my-react-page.js" -import React from 'react'; -import Layout from '@theme/Layout'; - -export default function MyReactPage() { - return ( - -

My React page

-

This is a React page

-
- ); -} -``` - -A new page is now available at [http://localhost:3000/my-react-page](http://localhost:3000/my-react-page). - -## Create your first Markdown Page - -Create a file at `src/pages/my-markdown-page.md`: - -```mdx title="src/pages/my-markdown-page.md" -# My Markdown page - -This is a Markdown page -``` - -A new page is now available at [http://localhost:3000/my-markdown-page](http://localhost:3000/my-markdown-page). diff --git a/playground/docusaurus/docs/tutorial-basics/deploy-your-site.md b/playground/docusaurus/docs/tutorial-basics/deploy-your-site.md deleted file mode 100644 index 1c50ee0..0000000 --- a/playground/docusaurus/docs/tutorial-basics/deploy-your-site.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Deploy your site - -Docusaurus is a **static-site-generator** (also called **[Jamstack](https://jamstack.org/)**). - -It builds your site as simple **static HTML, JavaScript and CSS files**. - -## Build your site - -Build your site **for production**: - -```bash -npm run build -``` - -The static files are generated in the `build` folder. - -## Deploy your site - -Test your production build locally: - -```bash -npm run serve -``` - -The `build` folder is now served at [http://localhost:3000/](http://localhost:3000/). - -You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://docusaurus.io/docs/deployment)**). diff --git a/playground/docusaurus/docs/tutorial-basics/markdown-features.mdx b/playground/docusaurus/docs/tutorial-basics/markdown-features.mdx deleted file mode 100644 index 0337f34..0000000 --- a/playground/docusaurus/docs/tutorial-basics/markdown-features.mdx +++ /dev/null @@ -1,150 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Markdown Features - -Docusaurus supports **[Markdown](https://daringfireball.net/projects/markdown/syntax)** and a few **additional features**. - -## Front Matter - -Markdown documents have metadata at the top called [Front Matter](https://jekyllrb.com/docs/front-matter/): - -```text title="my-doc.md" -// highlight-start ---- -id: my-doc-id -title: My document title -description: My document description -slug: /my-custom-url ---- -// highlight-end - -## Markdown heading - -Markdown text with [links](./hello.md) -``` - -## Links - -Regular Markdown links are supported, using url paths or relative file paths. - -```md -Let's see how to [Create a page](/create-a-page). -``` - -```md -Let's see how to [Create a page](./create-a-page.md). -``` - -**Result:** Let's see how to [Create a page](./create-a-page.md). - -## Images - -Regular Markdown images are supported. - -You can use absolute paths to reference images in the static directory (`static/img/docusaurus.png`): - -```md -![Docusaurus logo](/img/docusaurus.png) -``` - -![Docusaurus logo](/img/docusaurus.png) - -You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them: - -```md -![Docusaurus logo](./img/docusaurus.png) -``` - -## Code Blocks - -Markdown code blocks are supported with Syntax highlighting. - - ```jsx title="src/components/HelloDocusaurus.js" - function HelloDocusaurus() { - return ( -

Hello, Docusaurus!

- ) - } - ``` - -```jsx title="src/components/HelloDocusaurus.js" -function HelloDocusaurus() { - return

Hello, Docusaurus!

; -} -``` - -## Admonitions - -Docusaurus has a special syntax to create admonitions and callouts: - - :::tip My tip - - Use this awesome feature option - - ::: - - :::danger Take care - - This action is dangerous - - ::: - -:::tip My tip - -Use this awesome feature option - -::: - -:::danger Take care - -This action is dangerous - -::: - -## MDX and React Components - -[MDX](https://mdxjs.com/) can make your documentation more **interactive** and allows using any **React components inside Markdown**: - -```jsx -export const Highlight = ({children, color}) => ( - { - alert(`You clicked the color ${color} with label ${children}`) - }}> - {children} - -); - -This is Docusaurus green ! - -This is Facebook blue ! -``` - -export const Highlight = ({children, color}) => ( - { - alert(`You clicked the color ${color} with label ${children}`); - }}> - {children} - -); - -This is Docusaurus green ! - -This is Facebook blue ! diff --git a/playground/docusaurus/docs/tutorial-extras/_category_.json b/playground/docusaurus/docs/tutorial-extras/_category_.json deleted file mode 100644 index a8ffcc1..0000000 --- a/playground/docusaurus/docs/tutorial-extras/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "label": "Tutorial - Extras", - "position": 3, - "link": { - "type": "generated-index" - } -} diff --git a/playground/docusaurus/docs/tutorial-extras/img/docsVersionDropdown.png b/playground/docusaurus/docs/tutorial-extras/img/docsVersionDropdown.png deleted file mode 100644 index 97e4164..0000000 Binary files a/playground/docusaurus/docs/tutorial-extras/img/docsVersionDropdown.png and /dev/null differ diff --git a/playground/docusaurus/docs/tutorial-extras/img/localeDropdown.png b/playground/docusaurus/docs/tutorial-extras/img/localeDropdown.png deleted file mode 100644 index e257edc..0000000 Binary files a/playground/docusaurus/docs/tutorial-extras/img/localeDropdown.png and /dev/null differ diff --git a/playground/docusaurus/docs/tutorial-extras/manage-docs-versions.md b/playground/docusaurus/docs/tutorial-extras/manage-docs-versions.md deleted file mode 100644 index e12c3f3..0000000 --- a/playground/docusaurus/docs/tutorial-extras/manage-docs-versions.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Manage Docs Versions - -Docusaurus can manage multiple versions of your docs. - -## Create a docs version - -Release a version 1.0 of your project: - -```bash -npm run docusaurus docs:version 1.0 -``` - -The `docs` folder is copied into `versioned_docs/version-1.0` and `versions.json` is created. - -Your docs now have 2 versions: - -- `1.0` at `http://localhost:3000/docs/` for the version 1.0 docs -- `current` at `http://localhost:3000/docs/next/` for the **upcoming, unreleased docs** - -## Add a Version Dropdown - -To navigate seamlessly across versions, add a version dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -module.exports = { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: 'docsVersionDropdown', - }, - // highlight-end - ], - }, - }, -}; -``` - -The docs version dropdown appears in your navbar: - -![Docs Version Dropdown](./img/docsVersionDropdown.png) - -## Update an existing version - -It is possible to edit versioned docs in their respective folder: - -- `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello` -- `docs/hello.md` updates `http://localhost:3000/docs/next/hello` diff --git a/playground/docusaurus/docs/tutorial-extras/translate-your-site.md b/playground/docusaurus/docs/tutorial-extras/translate-your-site.md deleted file mode 100644 index caeaffb..0000000 --- a/playground/docusaurus/docs/tutorial-extras/translate-your-site.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Translate your site - -Let's translate `docs/intro.md` to French. - -## Configure i18n - -Modify `docusaurus.config.js` to add support for the `fr` locale: - -```js title="docusaurus.config.js" -module.exports = { - i18n: { - defaultLocale: 'en', - locales: ['en', 'fr'], - }, -}; -``` - -## Translate a doc - -Copy the `docs/intro.md` file to the `i18n/fr` folder: - -```bash -mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/ - -cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md -``` - -Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French. - -## Start your localized site - -Start your site on the French locale: - -```bash -npm run start -- --locale fr -``` - -Your localized site is accessible at [http://localhost:3000/fr/](http://localhost:3000/fr/) and the `Getting Started` page is translated. - -:::caution - -In development, you can only use one locale at a same time. - -::: - -## Add a Locale Dropdown - -To navigate seamlessly across languages, add a locale dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -module.exports = { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: 'localeDropdown', - }, - // highlight-end - ], - }, - }, -}; -``` - -The locale dropdown now appears in your navbar: - -![Locale Dropdown](./img/localeDropdown.png) - -## Build your localized site - -Build your site for a specific locale: - -```bash -npm run build -- --locale fr -``` - -Or build your site to include all the locales at once: - -```bash -npm run build -``` diff --git a/playground/docusaurus/docusaurus.config.js b/playground/docusaurus/docusaurus.config.js deleted file mode 100644 index a8561d1..0000000 --- a/playground/docusaurus/docusaurus.config.js +++ /dev/null @@ -1,139 +0,0 @@ -// @ts-check -// Note: type annotations allow type checking and IDEs autocompletion - -const lightCodeTheme = require('prism-react-renderer/themes/github'); -const darkCodeTheme = require('prism-react-renderer/themes/dracula'); - -/** @type {import('@docusaurus/types').Config} */ -const config = { - title: 'My Site', - tagline: 'Dinosaurs are cool', - favicon: 'img/favicon.ico', - - // Set the production url of your site here - url: 'https://your-docusaurus-test-site.com', - // Set the // pathname under which your site is served - // For GitHub pages deployment, it is often '//' - baseUrl: '/', - - // GitHub pages deployment config. - // If you aren't using GitHub pages, you don't need these. - organizationName: 'facebook', // Usually your GitHub org/user name. - projectName: 'docusaurus', // Usually your repo name. - - onBrokenLinks: 'throw', - onBrokenMarkdownLinks: 'warn', - - // Even if you don't use internalization, you can use this field to set useful - // metadata like html lang. For example, if your site is Chinese, you may want - // to replace "en" with "zh-Hans". - i18n: { - defaultLocale: 'en', - locales: ['en'], - }, - - presets: [ - [ - 'classic', - /** @type {import('@docusaurus/preset-classic').Options} */ - ({ - docs: { - sidebarPath: require.resolve('./sidebars.js'), - // Please change this to your repo. - // Remove this to remove the "edit this page" links. - editUrl: - 'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/', - }, - blog: { - showReadingTime: true, - // Please change this to your repo. - // Remove this to remove the "edit this page" links. - editUrl: - 'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/', - }, - theme: { - customCss: require.resolve('./src/css/custom.css'), - }, - }), - ], - ], - - themeConfig: - /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ - ({ - // Replace with your project's social card - image: 'img/docusaurus-social-card.jpg', - navbar: { - title: 'My Site', - logo: { - alt: 'My Site Logo', - src: 'img/logo.svg', - }, - items: [ - { - type: 'docSidebar', - sidebarId: 'tutorialSidebar', - position: 'left', - label: 'Tutorial', - }, - {to: '/blog', label: 'Blog', position: 'left'}, - { - href: 'https://github.com/facebook/docusaurus', - label: 'GitHub', - position: 'right', - }, - ], - }, - footer: { - style: 'dark', - links: [ - { - title: 'Docs', - items: [ - { - label: 'Tutorial', - to: '/docs/intro', - }, - ], - }, - { - title: 'Community', - items: [ - { - label: 'Stack Overflow', - href: 'https://stackoverflow.com/questions/tagged/docusaurus', - }, - { - label: 'Discord', - href: 'https://discordapp.com/invite/docusaurus', - }, - { - label: 'Twitter', - href: 'https://twitter.com/docusaurus', - }, - ], - }, - { - title: 'More', - items: [ - { - label: 'Blog', - to: '/blog', - }, - { - label: 'GitHub', - href: 'https://github.com/facebook/docusaurus', - }, - ], - }, - ], - copyright: `Copyright © ${new Date().getFullYear()} My Project, Inc. Built with Docusaurus.`, - }, - prism: { - theme: lightCodeTheme, - darkTheme: darkCodeTheme, - }, - }), -}; - -module.exports = config; diff --git a/playground/docusaurus/package.json b/playground/docusaurus/package.json deleted file mode 100644 index 8095cb3..0000000 --- a/playground/docusaurus/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "docusaurus-classic-typescript", - "version": "0.0.0", - "private": true, - "scripts": { - "docusaurus": "docusaurus", - "start": "docusaurus start", - "build": "docusaurus build", - "swizzle": "docusaurus swizzle", - "deploy": "docusaurus deploy", - "clear": "docusaurus clear", - "serve": "docusaurus serve", - "write-translations": "docusaurus write-translations", - "write-heading-ids": "docusaurus write-heading-ids", - "typecheck": "tsc", - "dev": "docusaurus start" - }, - "dependencies": { - "@docusaurus/core": "2.4.1", - "@docusaurus/preset-classic": "2.4.1", - "@mdx-js/react": "^1.6.22", - "@meilisearch/instant-meilisearch": "^0.13.3", - "clsx": "^1.2.1", - "meilisearch-docsearch": "^0.4.7", - "prism-react-renderer": "^1.3.5", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "react-instantsearch-dom": "^6.40.1" - }, - "devDependencies": { - "@docusaurus/module-type-aliases": "2.4.1", - "@tsconfig/docusaurus": "^1.0.5", - "typescript": "^4.7.4" - }, - "browserslist": { - "production": [ - ">0.5%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, - "engines": { - "node": ">=16.14" - }, - "description": "Docusaurus example project (classic-typescript template)" -} diff --git a/playground/docusaurus/sandbox.config.json b/playground/docusaurus/sandbox.config.json deleted file mode 100644 index d6a14e8..0000000 --- a/playground/docusaurus/sandbox.config.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "infiniteLoopProtection": true, - "hardReloadOnChange": true, - "view": "browser", - "template": "docusaurus", - "node": "16", - "container": { - "node": "16" - } -} diff --git a/playground/docusaurus/scrapix-config.json b/playground/docusaurus/scrapix-config.json deleted file mode 100644 index 0180c6f..0000000 --- a/playground/docusaurus/scrapix-config.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "start_urls": [ - "http://localhost:3000/" - ], - "meilisearch_url": "http://localhost:7700", - "meilisearch_api_key": "masterKey", - "meilisearch_index_uid": "scrapix_playground", - "strategy": "docssearch", - "headless": false -} diff --git a/playground/docusaurus/sidebars.js b/playground/docusaurus/sidebars.js deleted file mode 100644 index 9ab54c2..0000000 --- a/playground/docusaurus/sidebars.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Creating a sidebar enables you to: - - create an ordered group of docs - - render a sidebar for each doc of that group - - provide next/previous navigation - - The sidebars can be generated from the filesystem, or explicitly defined here. - - Create as many sidebars as you want. - */ - -// @ts-check - -/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ -const sidebars = { - // By default, Docusaurus generates a sidebar from the docs folder structure - tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], - - // But you can create a sidebar manually - /* - tutorialSidebar: [ - 'intro', - 'hello', - { - type: 'category', - label: 'Tutorial', - items: ['tutorial-basics/create-a-document'], - }, - ], - */ -}; - -module.exports = sidebars; diff --git a/playground/docusaurus/src/components/HomepageFeatures/index.tsx b/playground/docusaurus/src/components/HomepageFeatures/index.tsx deleted file mode 100644 index 91ef460..0000000 --- a/playground/docusaurus/src/components/HomepageFeatures/index.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import React from 'react'; -import clsx from 'clsx'; -import styles from './styles.module.css'; - -type FeatureItem = { - title: string; - Svg: React.ComponentType>; - description: JSX.Element; -}; - -const FeatureList: FeatureItem[] = [ - { - title: 'Easy to Use', - Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default, - description: ( - <> - Docusaurus was designed from the ground up to be easily installed and - used to get your website up and running quickly. - - ), - }, - { - title: 'Focus on What Matters', - Svg: require('@site/static/img/undraw_docusaurus_tree.svg').default, - description: ( - <> - Docusaurus lets you focus on your docs, and we'll do the chores. Go - ahead and move your docs into the docs directory. - - ), - }, - { - title: 'Powered by React', - Svg: require('@site/static/img/undraw_docusaurus_react.svg').default, - description: ( - <> - Extend or customize your website layout by reusing React. Docusaurus can - be extended while reusing the same header and footer. - - ), - }, -]; - -function Feature({title, Svg, description}: FeatureItem) { - return ( -
-
- -
-
-

{title}

-

{description}

-
-
- ); -} - -export default function HomepageFeatures(): JSX.Element { - return ( -
-
-
- {FeatureList.map((props, idx) => ( - - ))} -
-
-
- ); -} diff --git a/playground/docusaurus/src/components/HomepageFeatures/styles.module.css b/playground/docusaurus/src/components/HomepageFeatures/styles.module.css deleted file mode 100644 index b248eb2..0000000 --- a/playground/docusaurus/src/components/HomepageFeatures/styles.module.css +++ /dev/null @@ -1,11 +0,0 @@ -.features { - display: flex; - align-items: center; - padding: 2rem 0; - width: 100%; -} - -.featureSvg { - height: 200px; - width: 200px; -} diff --git a/playground/docusaurus/src/css/custom.css b/playground/docusaurus/src/css/custom.css deleted file mode 100644 index 2bc6a4c..0000000 --- a/playground/docusaurus/src/css/custom.css +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Any CSS included here will be global. The classic template - * bundles Infima by default. Infima is a CSS framework designed to - * work well for content-centric websites. - */ - -/* You can override the default Infima variables here. */ -:root { - --ifm-color-primary: #2e8555; - --ifm-color-primary-dark: #29784c; - --ifm-color-primary-darker: #277148; - --ifm-color-primary-darkest: #205d3b; - --ifm-color-primary-light: #33925d; - --ifm-color-primary-lighter: #359962; - --ifm-color-primary-lightest: #3cad6e; - --ifm-code-font-size: 95%; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); -} - -/* For readability concerns, you should choose a lighter palette in dark mode. */ -[data-theme='dark'] { - --ifm-color-primary: #25c2a0; - --ifm-color-primary-dark: #21af90; - --ifm-color-primary-darker: #1fa588; - --ifm-color-primary-darkest: #1a8870; - --ifm-color-primary-light: #29d5b0; - --ifm-color-primary-lighter: #32d8b4; - --ifm-color-primary-lightest: #4fddbf; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); -} diff --git a/playground/docusaurus/src/pages/DefaultSearchBar.tsx b/playground/docusaurus/src/pages/DefaultSearchBar.tsx deleted file mode 100644 index e19188f..0000000 --- a/playground/docusaurus/src/pages/DefaultSearchBar.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import React from 'react'; -import 'instantsearch.css/themes/algolia-min.css' -import { InstantSearch, SearchBox, Hits, Highlight, Configure } from 'react-instantsearch-dom' - -import { instantMeiliSearch } from '@meilisearch/instant-meilisearch'; -// import '@meilisearch/instant-meilisearch/template.css' - -const searchClient = instantMeiliSearch("http://localhost:7700", "masterKey", { primaryKey: "uid" }); - -const Hit = ({ hit }) => { - return (
-
- -
-
- -
-
- -
-
- -
-
) -} - -const CustomPage: React.FC = () => { - - - React.useEffect(() => { - const searchInput = document.querySelector(".ais-SearchBox input") as HTMLInputElement - if (searchInput) { - searchInput.focus() - } - }, []); - - return ( -
-

Docusaurus with default strategy

- - - - - -
- ); -}; - -export default CustomPage; diff --git a/playground/docusaurus/src/pages/index.module.css b/playground/docusaurus/src/pages/index.module.css deleted file mode 100644 index 9f71a5d..0000000 --- a/playground/docusaurus/src/pages/index.module.css +++ /dev/null @@ -1,23 +0,0 @@ -/** - * CSS files with the .module.css suffix will be treated as CSS modules - * and scoped locally. - */ - -.heroBanner { - padding: 4rem 0; - text-align: center; - position: relative; - overflow: hidden; -} - -@media screen and (max-width: 996px) { - .heroBanner { - padding: 2rem; - } -} - -.buttons { - display: flex; - align-items: center; - justify-content: center; -} diff --git a/playground/docusaurus/src/pages/index.tsx b/playground/docusaurus/src/pages/index.tsx deleted file mode 100644 index 4609c92..0000000 --- a/playground/docusaurus/src/pages/index.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import React from 'react'; -import clsx from 'clsx'; -import Link from '@docusaurus/Link'; -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import Layout from '@theme/Layout'; -import HomepageFeatures from '@site/src/components/HomepageFeatures'; - -import styles from './index.module.css'; - -function HomepageHeader() { - const { siteConfig } = useDocusaurusContext(); - return ( -
-
-

{siteConfig.title}

-

{siteConfig.tagline}

-
- - Docusaurus Tutorial - 5min ⏱️ - -
-
-
- ); -} - -export default function Home(): JSX.Element { - const { siteConfig } = useDocusaurusContext(); - return ( - - -
- -
-
- ); -} diff --git a/playground/docusaurus/src/pages/markdown-page.md b/playground/docusaurus/src/pages/markdown-page.md deleted file mode 100644 index 9756c5b..0000000 --- a/playground/docusaurus/src/pages/markdown-page.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Markdown page example ---- - -# Markdown page example - -You don't need React to write simple standalone pages. diff --git a/playground/docusaurus/src/theme/SearchBar/index.tsx b/playground/docusaurus/src/theme/SearchBar/index.tsx deleted file mode 100644 index 4909138..0000000 --- a/playground/docusaurus/src/theme/SearchBar/index.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import React from 'react'; - -import 'meilisearch-docsearch/css' - -const SearchPage = () => { - const docsearchRef = React.useRef(null); - - React.useEffect(() => { - const docsearch = require('meilisearch-docsearch').default - const destroy = docsearch({ - host: 'http://localhost:7700', - apiKey: - 'masterKey', - indexUid: 'docusaurus-docsearch', - container: '#docsearch', - debug: true - }) - - return () => destroy() - }, []) - - React.useEffect(() => { - docsearchRef.current.firstChild.click(); - const elem = document.querySelector(".docsearch-modal-search-input") as HTMLInputElement - if (elem) { - elem.focus(); - elem.value = "g" - elem.dispatchEvent(new Event('input', { bubbles: true })); // Trigger input event - } - return () => { - if (docsearchRef.current) { - docsearchRef.current.unsubscribe(); - } - }; - }, []); - - return ( -
-
-
- ) -} - -export default SearchPage diff --git a/playground/docusaurus/static/.nojekyll b/playground/docusaurus/static/.nojekyll deleted file mode 100644 index e69de29..0000000 diff --git a/playground/docusaurus/static/img/docusaurus-social-card.jpg b/playground/docusaurus/static/img/docusaurus-social-card.jpg deleted file mode 100644 index ffcb448..0000000 Binary files a/playground/docusaurus/static/img/docusaurus-social-card.jpg and /dev/null differ diff --git a/playground/docusaurus/static/img/docusaurus.png b/playground/docusaurus/static/img/docusaurus.png deleted file mode 100644 index f458149..0000000 Binary files a/playground/docusaurus/static/img/docusaurus.png and /dev/null differ diff --git a/playground/docusaurus/static/img/favicon.ico b/playground/docusaurus/static/img/favicon.ico deleted file mode 100644 index c01d54b..0000000 Binary files a/playground/docusaurus/static/img/favicon.ico and /dev/null differ diff --git a/playground/docusaurus/static/img/logo.svg b/playground/docusaurus/static/img/logo.svg deleted file mode 100644 index 9db6d0d..0000000 --- a/playground/docusaurus/static/img/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/playground/docusaurus/static/img/undraw_docusaurus_mountain.svg b/playground/docusaurus/static/img/undraw_docusaurus_mountain.svg deleted file mode 100644 index af961c4..0000000 --- a/playground/docusaurus/static/img/undraw_docusaurus_mountain.svg +++ /dev/null @@ -1,171 +0,0 @@ - - Easy to Use - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/playground/docusaurus/static/img/undraw_docusaurus_react.svg b/playground/docusaurus/static/img/undraw_docusaurus_react.svg deleted file mode 100644 index 94b5cf0..0000000 --- a/playground/docusaurus/static/img/undraw_docusaurus_react.svg +++ /dev/null @@ -1,170 +0,0 @@ - - Powered by React - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/playground/docusaurus/static/img/undraw_docusaurus_tree.svg b/playground/docusaurus/static/img/undraw_docusaurus_tree.svg deleted file mode 100644 index d9161d3..0000000 --- a/playground/docusaurus/static/img/undraw_docusaurus_tree.svg +++ /dev/null @@ -1,40 +0,0 @@ - - Focus on What Matters - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/playground/docusaurus/tsconfig.json b/playground/docusaurus/tsconfig.json deleted file mode 100644 index 5bed07b..0000000 --- a/playground/docusaurus/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - // This file is not used in compilation. It is here just for a nice editor experience. - "extends": "@tsconfig/docusaurus/tsconfig.json", - "compilerOptions": { - "baseUrl": ".", - "jsx": "react" - } -} diff --git a/playground/docusaurus/yarn.lock b/playground/docusaurus/yarn.lock deleted file mode 100644 index 47317d4..0000000 --- a/playground/docusaurus/yarn.lock +++ /dev/null @@ -1,7718 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@algolia/autocomplete-core@1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.8.2.tgz#8d758c8652742e2761450d2b615a841fca24e10e" - integrity sha512-mTeshsyFhAqw/ebqNsQpMtbnjr+qVOSKXArEj4K0d7sqc8It1XD0gkASwecm9mF/jlOQ4Z9RNg1HbdA8JPdRwQ== - dependencies: - "@algolia/autocomplete-shared" "1.8.2" - -"@algolia/autocomplete-preset-algolia@1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.8.2.tgz#706e87f94c5f198c0e90502b97af09adeeddcc79" - integrity sha512-J0oTx4me6ZM9kIKPuL3lyU3aB8DEvpVvR6xWmHVROx5rOYJGQcZsdG4ozxwcOyiiu3qxMkIbzntnV1S1VWD8yA== - dependencies: - "@algolia/autocomplete-shared" "1.8.2" - -"@algolia/autocomplete-shared@1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.8.2.tgz#e6972df5c6935a241f16e4909aa82902338e029d" - integrity sha512-b6Z/X4MczChMcfhk6kfRmBzPgjoPzuS9KGR4AFsiLulLNRAAqhP+xZTKtMnZGhLuc61I20d5WqlId02AZvcO6g== - -"@algolia/cache-browser-local-storage@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.17.0.tgz#4c54a9b1795dcc1cd9f9533144f7df3057984d39" - integrity sha512-myRSRZDIMYB8uCkO+lb40YKiYHi0fjpWRtJpR/dgkaiBlSD0plRyB6lLOh1XIfmMcSeBOqDE7y9m8xZMrXYfyQ== - dependencies: - "@algolia/cache-common" "4.17.0" - -"@algolia/cache-common@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.17.0.tgz#bc3da15548df585b44d76c55e66b0056a2b3f917" - integrity sha512-g8mXzkrcUBIPZaulAuqE7xyHhLAYAcF2xSch7d9dABheybaU3U91LjBX6eJTEB7XVhEsgK4Smi27vWtAJRhIKQ== - -"@algolia/cache-in-memory@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.17.0.tgz#eb55a92cb8eb8641903a2b23fd6d05ebdaca2010" - integrity sha512-PT32ciC/xI8z919d0oknWVu3kMfTlhQn3MKxDln3pkn+yA7F7xrxSALysxquv+MhFfNAcrtQ/oVvQVBAQSHtdw== - dependencies: - "@algolia/cache-common" "4.17.0" - -"@algolia/client-account@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.17.0.tgz#4b13e5a8e50a06be1f3289d9db337096ebc66b73" - integrity sha512-sSEHx9GA6m7wrlsSMNBGfyzlIfDT2fkz2u7jqfCCd6JEEwmxt8emGmxAU/0qBfbhRSuGvzojoLJlr83BSZAKjA== - dependencies: - "@algolia/client-common" "4.17.0" - "@algolia/client-search" "4.17.0" - "@algolia/transporter" "4.17.0" - -"@algolia/client-analytics@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.17.0.tgz#1b36ffbe913b7b4d8900bc15982ca431f47a473c" - integrity sha512-84ooP8QA3mQ958hQ9wozk7hFUbAO+81CX1CjAuerxBqjKIInh1fOhXKTaku05O/GHBvcfExpPLIQuSuLYziBXQ== - dependencies: - "@algolia/client-common" "4.17.0" - "@algolia/client-search" "4.17.0" - "@algolia/requester-common" "4.17.0" - "@algolia/transporter" "4.17.0" - -"@algolia/client-common@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.17.0.tgz#67fd898006e3ac359ea3e3ed61abfc26147ffa53" - integrity sha512-jHMks0ZFicf8nRDn6ma8DNNsdwGgP/NKiAAL9z6rS7CymJ7L0+QqTJl3rYxRW7TmBhsUH40wqzmrG6aMIN/DrQ== - dependencies: - "@algolia/requester-common" "4.17.0" - "@algolia/transporter" "4.17.0" - -"@algolia/client-personalization@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.17.0.tgz#428d9f4762c22856b6062bb54351eb31834db6c1" - integrity sha512-RMzN4dZLIta1YuwT7QC9o+OeGz2cU6eTOlGNE/6RcUBLOU3l9tkCOdln5dPE2jp8GZXPl2yk54b2nSs1+pAjqw== - dependencies: - "@algolia/client-common" "4.17.0" - "@algolia/requester-common" "4.17.0" - "@algolia/transporter" "4.17.0" - -"@algolia/client-search@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.17.0.tgz#0053c682f5f588e006c20791c27e8bcb0aa5b53c" - integrity sha512-x4P2wKrrRIXszT8gb7eWsMHNNHAJs0wE7/uqbufm4tZenAp+hwU/hq5KVsY50v+PfwM0LcDwwn/1DroujsTFoA== - dependencies: - "@algolia/client-common" "4.17.0" - "@algolia/requester-common" "4.17.0" - "@algolia/transporter" "4.17.0" - -"@algolia/events@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@algolia/events/-/events-4.0.1.tgz#fd39e7477e7bc703d7f893b556f676c032af3950" - integrity sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ== - -"@algolia/logger-common@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.17.0.tgz#0fcea39c9485554edb4cdbfd965c5748b0b837ac" - integrity sha512-DGuoZqpTmIKJFDeyAJ7M8E/LOenIjWiOsg1XJ1OqAU/eofp49JfqXxbfgctlVZVmDABIyOz8LqEoJ6ZP4DTyvw== - -"@algolia/logger-console@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.17.0.tgz#8ac56ef4259c4fa3eb9eb6586c7b4b4ed942e8da" - integrity sha512-zMPvugQV/gbXUvWBCzihw6m7oxIKp48w37QBIUu/XqQQfxhjoOE9xyfJr1KldUt5FrYOKZJVsJaEjTsu+bIgQg== - dependencies: - "@algolia/logger-common" "4.17.0" - -"@algolia/requester-browser-xhr@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.17.0.tgz#f52fdeeac2f3c531f00838920af33a73066a159b" - integrity sha512-aSOX/smauyTkP21Pf52pJ1O2LmNFJ5iHRIzEeTh0mwBeADO4GdG94cAWDILFA9rNblq/nK3EDh3+UyHHjplZ1A== - dependencies: - "@algolia/requester-common" "4.17.0" - -"@algolia/requester-common@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.17.0.tgz#746020d2cbc829213e7cede8eef2182c7a71e32b" - integrity sha512-XJjmWFEUlHu0ijvcHBoixuXfEoiRUdyzQM6YwTuB8usJNIgShua8ouFlRWF8iCeag0vZZiUm4S2WCVBPkdxFgg== - -"@algolia/requester-node-http@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.17.0.tgz#262276d94c25a4ec2128b1bdfb9471529528d8b9" - integrity sha512-bpb/wDA1aC6WxxM8v7TsFspB7yBN3nqCGs2H1OADolQR/hiAIjAxusbuMxVbRFOdaUvAIqioIIkWvZdpYNIn8w== - dependencies: - "@algolia/requester-common" "4.17.0" - -"@algolia/transporter@4.17.0": - version "4.17.0" - resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.17.0.tgz#6aabdbc20c475d72d83c8e6519f1191f1a51fb37" - integrity sha512-6xL6H6fe+Fi0AEP3ziSgC+G04RK37iRb4uUUqVAH9WPYFI8g+LYFq6iv5HS8Cbuc5TTut+Bwj6G+dh/asdb9uA== - dependencies: - "@algolia/cache-common" "4.17.0" - "@algolia/logger-common" "4.17.0" - "@algolia/requester-common" "4.17.0" - -"@ampproject/remapping@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" - integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4", "@babel/code-frame@^7.8.3": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" - integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.5": - version "7.21.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.7.tgz#61caffb60776e49a57ba61a88f02bedd8714f6bc" - integrity sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA== - -"@babel/core@7.12.9": - version "7.12.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" - integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.5" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.5" - "@babel/parser" "^7.12.7" - "@babel/template" "^7.12.7" - "@babel/traverse" "^7.12.9" - "@babel/types" "^7.12.7" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.19" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.18.6", "@babel/core@^7.19.6": - version "7.21.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.8.tgz#2a8c7f0f53d60100ba4c32470ba0281c92aa9aa4" - integrity sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.5" - "@babel/helper-compilation-targets" "^7.21.5" - "@babel/helper-module-transforms" "^7.21.5" - "@babel/helpers" "^7.21.5" - "@babel/parser" "^7.21.8" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" - -"@babel/generator@^7.12.5", "@babel/generator@^7.18.7", "@babel/generator@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.5.tgz#c0c0e5449504c7b7de8236d99338c3e2a340745f" - integrity sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w== - dependencies: - "@babel/types" "^7.21.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz#817f73b6c59726ab39f6ba18c234268a519e5abb" - integrity sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g== - dependencies: - "@babel/types" "^7.21.5" - -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz#631e6cc784c7b660417421349aac304c94115366" - integrity sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w== - dependencies: - "@babel/compat-data" "^7.21.5" - "@babel/helper-validator-option" "^7.21.0" - browserslist "^4.21.3" - lru-cache "^5.1.1" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": - version "7.21.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz#205b26330258625ef8869672ebca1e0dee5a0f02" - integrity sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-member-expression-to-functions" "^7.21.5" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.21.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/helper-split-export-declaration" "^7.18.6" - semver "^6.3.0" - -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": - version "7.21.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz#a7886f61c2e29e21fd4aaeaf1e473deba6b571dc" - integrity sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.3.1" - semver "^6.3.0" - -"@babel/helper-define-polyfill-provider@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" - integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== - dependencies: - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz#c769afefd41d171836f7cb63e295bedf689d48ba" - integrity sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ== - -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" - integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== - dependencies: - "@babel/template" "^7.20.7" - "@babel/types" "^7.21.0" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-member-expression-to-functions@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz#3b1a009af932e586af77c1030fba9ee0bde396c0" - integrity sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg== - dependencies: - "@babel/types" "^7.21.5" - -"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" - integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== - dependencies: - "@babel/types" "^7.21.4" - -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz#d937c82e9af68d31ab49039136a222b17ac0b420" - integrity sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw== - dependencies: - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-module-imports" "^7.21.4" - "@babel/helper-simple-access" "^7.21.5" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - -"@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-plugin-utils@7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" - integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz#345f2377d05a720a4e5ecfa39cbf4474a4daed56" - integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg== - -"@babel/helper-remap-async-to-generator@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" - integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-wrap-function" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7", "@babel/helper-replace-supers@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz#a6ad005ba1c7d9bc2973dfde05a1bba7065dde3c" - integrity sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg== - dependencies: - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-member-expression-to-functions" "^7.21.5" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - -"@babel/helper-simple-access@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" - integrity sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg== - dependencies: - "@babel/types" "^7.21.5" - -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" - integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== - dependencies: - "@babel/types" "^7.20.0" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-string-parser@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" - integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== - -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" - integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== - -"@babel/helper-wrap-function@^7.18.9": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" - integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== - dependencies: - "@babel/helper-function-name" "^7.19.0" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.5" - "@babel/types" "^7.20.5" - -"@babel/helpers@^7.12.5", "@babel/helpers@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.5.tgz#5bac66e084d7a4d2d9696bdf0175a93f7fb63c08" - integrity sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA== - dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.12.7", "@babel/parser@^7.18.8", "@babel/parser@^7.20.7", "@babel/parser@^7.21.5", "@babel/parser@^7.21.8": - version "7.21.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.8.tgz#642af7d0333eab9c0ad70b14ac5e76dbde7bfdf8" - integrity sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" - integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" - integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.7" - -"@babel/plugin-proposal-async-generator-functions@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" - integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-class-static-block@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" - integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" - integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" - integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" - integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" - integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.12.1" - -"@babel/plugin-proposal-object-rest-spread@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - -"@babel/plugin-proposal-optional-catch-binding@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" - integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" - integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-private-property-in-object@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" - integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-import-assertions@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" - integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/plugin-syntax-import-meta@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" - integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-jsx@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz#f264ed7bf40ffc9ec239edabc17a50c4f5b6fea2" - integrity sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.20.0": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz#2751948e9b7c6d771a8efa59340c15d4a2891ff8" - integrity sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-arrow-functions@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz#9bb42a53de447936a57ba256fbf537fc312b6929" - integrity sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA== - dependencies: - "@babel/helper-plugin-utils" "^7.21.5" - -"@babel/plugin-transform-async-to-generator@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" - integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== - dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - -"@babel/plugin-transform-block-scoped-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" - integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-block-scoping@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" - integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-classes@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" - integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-split-export-declaration" "^7.18.6" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz#3a2d8bb771cd2ef1cd736435f6552fe502e11b44" - integrity sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q== - dependencies: - "@babel/helper-plugin-utils" "^7.21.5" - "@babel/template" "^7.20.7" - -"@babel/plugin-transform-destructuring@^7.21.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" - integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" - integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-duplicate-keys@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" - integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-exponentiation-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" - integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-for-of@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz#e890032b535f5a2e237a18535f56a9fdaa7b83fc" - integrity sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ== - dependencies: - "@babel/helper-plugin-utils" "^7.21.5" - -"@babel/plugin-transform-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" - integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== - dependencies: - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" - integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-member-expression-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" - integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-modules-amd@^7.20.11": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" - integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== - dependencies: - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-modules-commonjs@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz#d69fb947eed51af91de82e4708f676864e5e47bc" - integrity sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ== - dependencies: - "@babel/helper-module-transforms" "^7.21.5" - "@babel/helper-plugin-utils" "^7.21.5" - "@babel/helper-simple-access" "^7.21.5" - -"@babel/plugin-transform-modules-systemjs@^7.20.11": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" - integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== - dependencies: - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-identifier" "^7.19.1" - -"@babel/plugin-transform-modules-umd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" - integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== - dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.20.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" - integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.20.5" - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-new-target@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" - integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-object-super@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" - integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" - -"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.21.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" - integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-property-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" - integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-react-constant-elements@^7.18.12": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.21.3.tgz#b32a5556100d424b25e388dd689050d78396884d" - integrity sha512-4DVcFeWe/yDYBLp0kBmOGFJ6N2UYg7coGid1gdxb4co62dy/xISDMaYBXBVXEDhfgMk7qkbcYiGtwd5Q/hwDDQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-react-display-name@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415" - integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-react-jsx-development@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" - integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA== - dependencies: - "@babel/plugin-transform-react-jsx" "^7.18.6" - -"@babel/plugin-transform-react-jsx@^7.18.6": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.5.tgz#bd98f3b429688243e4fa131fe1cbb2ef31ce6f38" - integrity sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-module-imports" "^7.21.4" - "@babel/helper-plugin-utils" "^7.21.5" - "@babel/plugin-syntax-jsx" "^7.21.4" - "@babel/types" "^7.21.5" - -"@babel/plugin-transform-react-pure-annotations@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844" - integrity sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-regenerator@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz#576c62f9923f94bcb1c855adc53561fd7913724e" - integrity sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w== - dependencies: - "@babel/helper-plugin-utils" "^7.21.5" - regenerator-transform "^0.15.1" - -"@babel/plugin-transform-reserved-words@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" - integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-runtime@^7.18.6": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz#2e1da21ca597a7d01fc96b699b21d8d2023191aa" - integrity sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA== - dependencies: - "@babel/helper-module-imports" "^7.21.4" - "@babel/helper-plugin-utils" "^7.20.2" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - semver "^6.3.0" - -"@babel/plugin-transform-shorthand-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" - integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-spread@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" - integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - -"@babel/plugin-transform-sticky-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" - integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-template-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" - integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-typeof-symbol@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" - integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-typescript@^7.21.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz#316c5be579856ea890a57ebc5116c5d064658f2b" - integrity sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-typescript" "^7.20.0" - -"@babel/plugin-transform-unicode-escapes@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz#1e55ed6195259b0e9061d81f5ef45a9b009fb7f2" - integrity sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg== - dependencies: - "@babel/helper-plugin-utils" "^7.21.5" - -"@babel/plugin-transform-unicode-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" - integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/preset-env@^7.18.6", "@babel/preset-env@^7.19.4": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.21.5.tgz#db2089d99efd2297716f018aeead815ac3decffb" - integrity sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg== - dependencies: - "@babel/compat-data" "^7.21.5" - "@babel/helper-compilation-targets" "^7.21.5" - "@babel/helper-plugin-utils" "^7.21.5" - "@babel/helper-validator-option" "^7.21.0" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.20.7" - "@babel/plugin-proposal-async-generator-functions" "^7.20.7" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.21.0" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.20.7" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.20.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.21.0" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.21.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.20.0" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.21.5" - "@babel/plugin-transform-async-to-generator" "^7.20.7" - "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.21.0" - "@babel/plugin-transform-classes" "^7.21.0" - "@babel/plugin-transform-computed-properties" "^7.21.5" - "@babel/plugin-transform-destructuring" "^7.21.3" - "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.9" - "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.21.5" - "@babel/plugin-transform-function-name" "^7.18.9" - "@babel/plugin-transform-literals" "^7.18.9" - "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.20.11" - "@babel/plugin-transform-modules-commonjs" "^7.21.5" - "@babel/plugin-transform-modules-systemjs" "^7.20.11" - "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.20.5" - "@babel/plugin-transform-new-target" "^7.18.6" - "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.21.3" - "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.21.5" - "@babel/plugin-transform-reserved-words" "^7.18.6" - "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.20.7" - "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.9" - "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.21.5" - "@babel/plugin-transform-unicode-regex" "^7.18.6" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.21.5" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - core-js-compat "^3.25.1" - semver "^6.3.0" - -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-react@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d" - integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-transform-react-display-name" "^7.18.6" - "@babel/plugin-transform-react-jsx" "^7.18.6" - "@babel/plugin-transform-react-jsx-development" "^7.18.6" - "@babel/plugin-transform-react-pure-annotations" "^7.18.6" - -"@babel/preset-typescript@^7.18.6": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.21.5.tgz#68292c884b0e26070b4d66b202072d391358395f" - integrity sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA== - dependencies: - "@babel/helper-plugin-utils" "^7.21.5" - "@babel/helper-validator-option" "^7.21.0" - "@babel/plugin-syntax-jsx" "^7.21.4" - "@babel/plugin-transform-modules-commonjs" "^7.21.5" - "@babel/plugin-transform-typescript" "^7.21.3" - -"@babel/regjsgen@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" - integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== - -"@babel/runtime-corejs3@^7.18.6": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.21.5.tgz#a6d4e132ab1cb2fae2354f02284ebb6e07b4f7d8" - integrity sha512-FRqFlFKNazWYykft5zvzuEl1YyTDGsIRrjV9rvxvYkUC7W/ueBng1X68Xd6uRMzAaJ0xMKn08/wem5YS1lpX8w== - dependencies: - core-js-pure "^3.25.1" - regenerator-runtime "^0.13.11" - -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.13", "@babel/runtime@^7.8.4": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" - integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q== - dependencies: - regenerator-runtime "^0.13.11" - -"@babel/template@^7.12.7", "@babel/template@^7.18.10", "@babel/template@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/traverse@^7.12.9", "@babel/traverse@^7.18.8", "@babel/traverse@^7.20.5", "@babel/traverse@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.5.tgz#ad22361d352a5154b498299d523cf72998a4b133" - integrity sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw== - dependencies: - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.5" - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.5" - "@babel/types" "^7.21.5" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.12.7", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.4.4": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.5.tgz#18dfbd47c39d3904d5db3d3dc2cc80bedb60e5b6" - integrity sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q== - dependencies: - "@babel/helper-string-parser" "^7.21.5" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - -"@discoveryjs/json-ext@0.5.7": - version "0.5.7" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" - integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== - -"@docsearch/css@3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.3.4.tgz#533719eac0aa3934318074e7e981e633727ad2fd" - integrity sha512-vDwCDoVXDgopw/hvr0zEADew2wWaGP8Qq0Bxhgii1Ewz2t4fQeyJwIRN/mWADeLFYPVkpz8TpEbxya/i6Tm0WA== - -"@docsearch/react@^3.1.1": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.3.4.tgz#d49cf9e5d939145c9fe688113c5bdf41975d8ae7" - integrity sha512-aeOf1WC5zMzBEi2SI6WWznOmIo9rnpN4p7a3zHXxowVciqlI4HsZGtOR9nFOufLeolv7HibwLlaM0oyUqJxasw== - dependencies: - "@algolia/autocomplete-core" "1.8.2" - "@algolia/autocomplete-preset-algolia" "1.8.2" - "@docsearch/css" "3.3.4" - algoliasearch "^4.0.0" - -"@docusaurus/core@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.4.1.tgz#4b8ff5766131ce3fbccaad0b1daf2ad4dc76f62d" - integrity sha512-SNsY7PshK3Ri7vtsLXVeAJGS50nJN3RgF836zkyUfAD01Fq+sAk5EwWgLw+nnm5KVNGDu7PRR2kRGDsWvqpo0g== - dependencies: - "@babel/core" "^7.18.6" - "@babel/generator" "^7.18.7" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-runtime" "^7.18.6" - "@babel/preset-env" "^7.18.6" - "@babel/preset-react" "^7.18.6" - "@babel/preset-typescript" "^7.18.6" - "@babel/runtime" "^7.18.6" - "@babel/runtime-corejs3" "^7.18.6" - "@babel/traverse" "^7.18.8" - "@docusaurus/cssnano-preset" "2.4.1" - "@docusaurus/logger" "2.4.1" - "@docusaurus/mdx-loader" "2.4.1" - "@docusaurus/react-loadable" "5.5.2" - "@docusaurus/utils" "2.4.1" - "@docusaurus/utils-common" "2.4.1" - "@docusaurus/utils-validation" "2.4.1" - "@slorber/static-site-generator-webpack-plugin" "^4.0.7" - "@svgr/webpack" "^6.2.1" - autoprefixer "^10.4.7" - babel-loader "^8.2.5" - babel-plugin-dynamic-import-node "^2.3.3" - boxen "^6.2.1" - chalk "^4.1.2" - chokidar "^3.5.3" - clean-css "^5.3.0" - cli-table3 "^0.6.2" - combine-promises "^1.1.0" - commander "^5.1.0" - copy-webpack-plugin "^11.0.0" - core-js "^3.23.3" - css-loader "^6.7.1" - css-minimizer-webpack-plugin "^4.0.0" - cssnano "^5.1.12" - del "^6.1.1" - detect-port "^1.3.0" - escape-html "^1.0.3" - eta "^2.0.0" - file-loader "^6.2.0" - fs-extra "^10.1.0" - html-minifier-terser "^6.1.0" - html-tags "^3.2.0" - html-webpack-plugin "^5.5.0" - import-fresh "^3.3.0" - leven "^3.1.0" - lodash "^4.17.21" - mini-css-extract-plugin "^2.6.1" - postcss "^8.4.14" - postcss-loader "^7.0.0" - prompts "^2.4.2" - react-dev-utils "^12.0.1" - react-helmet-async "^1.3.0" - react-loadable "npm:@docusaurus/react-loadable@5.5.2" - react-loadable-ssr-addon-v5-slorber "^1.0.1" - react-router "^5.3.3" - react-router-config "^5.1.1" - react-router-dom "^5.3.3" - rtl-detect "^1.0.4" - semver "^7.3.7" - serve-handler "^6.1.3" - shelljs "^0.8.5" - terser-webpack-plugin "^5.3.3" - tslib "^2.4.0" - update-notifier "^5.1.0" - url-loader "^4.1.1" - wait-on "^6.0.1" - webpack "^5.73.0" - webpack-bundle-analyzer "^4.5.0" - webpack-dev-server "^4.9.3" - webpack-merge "^5.8.0" - webpackbar "^5.0.2" - -"@docusaurus/cssnano-preset@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.4.1.tgz#eacadefb1e2e0f59df3467a0fe83e4ff79eed163" - integrity sha512-ka+vqXwtcW1NbXxWsh6yA1Ckii1klY9E53cJ4O9J09nkMBgrNX3iEFED1fWdv8wf4mJjvGi5RLZ2p9hJNjsLyQ== - dependencies: - cssnano-preset-advanced "^5.3.8" - postcss "^8.4.14" - postcss-sort-media-queries "^4.2.1" - tslib "^2.4.0" - -"@docusaurus/logger@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-2.4.1.tgz#4d2c0626b40752641f9fdd93ad9b5a7a0792f767" - integrity sha512-5h5ysIIWYIDHyTVd8BjheZmQZmEgWDR54aQ1BX9pjFfpyzFo5puKXKYrYJXbjEHGyVhEzmB9UXwbxGfaZhOjcg== - dependencies: - chalk "^4.1.2" - tslib "^2.4.0" - -"@docusaurus/mdx-loader@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.4.1.tgz#6425075d7fc136dbfdc121349060cedd64118393" - integrity sha512-4KhUhEavteIAmbBj7LVFnrVYDiU51H5YWW1zY6SmBSte/YLhDutztLTBE0PQl1Grux1jzUJeaSvAzHpTn6JJDQ== - dependencies: - "@babel/parser" "^7.18.8" - "@babel/traverse" "^7.18.8" - "@docusaurus/logger" "2.4.1" - "@docusaurus/utils" "2.4.1" - "@mdx-js/mdx" "^1.6.22" - escape-html "^1.0.3" - file-loader "^6.2.0" - fs-extra "^10.1.0" - image-size "^1.0.1" - mdast-util-to-string "^2.0.0" - remark-emoji "^2.2.0" - stringify-object "^3.3.0" - tslib "^2.4.0" - unified "^9.2.2" - unist-util-visit "^2.0.3" - url-loader "^4.1.1" - webpack "^5.73.0" - -"@docusaurus/module-type-aliases@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-2.4.1.tgz#38b3c2d2ae44bea6d57506eccd84280216f0171c" - integrity sha512-gLBuIFM8Dp2XOCWffUDSjtxY7jQgKvYujt7Mx5s4FCTfoL5dN1EVbnrn+O2Wvh8b0a77D57qoIDY7ghgmatR1A== - dependencies: - "@docusaurus/react-loadable" "5.5.2" - "@docusaurus/types" "2.4.1" - "@types/history" "^4.7.11" - "@types/react" "*" - "@types/react-router-config" "*" - "@types/react-router-dom" "*" - react-helmet-async "*" - react-loadable "npm:@docusaurus/react-loadable@5.5.2" - -"@docusaurus/plugin-content-blog@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.4.1.tgz#c705a8b1a36a34f181dcf43b7770532e4dcdc4a3" - integrity sha512-E2i7Knz5YIbE1XELI6RlTnZnGgS52cUO4BlCiCUCvQHbR+s1xeIWz4C6BtaVnlug0Ccz7nFSksfwDpVlkujg5Q== - dependencies: - "@docusaurus/core" "2.4.1" - "@docusaurus/logger" "2.4.1" - "@docusaurus/mdx-loader" "2.4.1" - "@docusaurus/types" "2.4.1" - "@docusaurus/utils" "2.4.1" - "@docusaurus/utils-common" "2.4.1" - "@docusaurus/utils-validation" "2.4.1" - cheerio "^1.0.0-rc.12" - feed "^4.2.2" - fs-extra "^10.1.0" - lodash "^4.17.21" - reading-time "^1.5.0" - tslib "^2.4.0" - unist-util-visit "^2.0.3" - utility-types "^3.10.0" - webpack "^5.73.0" - -"@docusaurus/plugin-content-docs@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.4.1.tgz#ed94d9721b5ce7a956fb01cc06c40d8eee8dfca7" - integrity sha512-Lo7lSIcpswa2Kv4HEeUcGYqaasMUQNpjTXpV0N8G6jXgZaQurqp7E8NGYeGbDXnb48czmHWbzDL4S3+BbK0VzA== - dependencies: - "@docusaurus/core" "2.4.1" - "@docusaurus/logger" "2.4.1" - "@docusaurus/mdx-loader" "2.4.1" - "@docusaurus/module-type-aliases" "2.4.1" - "@docusaurus/types" "2.4.1" - "@docusaurus/utils" "2.4.1" - "@docusaurus/utils-validation" "2.4.1" - "@types/react-router-config" "^5.0.6" - combine-promises "^1.1.0" - fs-extra "^10.1.0" - import-fresh "^3.3.0" - js-yaml "^4.1.0" - lodash "^4.17.21" - tslib "^2.4.0" - utility-types "^3.10.0" - webpack "^5.73.0" - -"@docusaurus/plugin-content-pages@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.4.1.tgz#c534f7e49967699a45bbe67050d1605ebbf3d285" - integrity sha512-/UjuH/76KLaUlL+o1OvyORynv6FURzjurSjvn2lbWTFc4tpYY2qLYTlKpTCBVPhlLUQsfyFnshEJDLmPneq2oA== - dependencies: - "@docusaurus/core" "2.4.1" - "@docusaurus/mdx-loader" "2.4.1" - "@docusaurus/types" "2.4.1" - "@docusaurus/utils" "2.4.1" - "@docusaurus/utils-validation" "2.4.1" - fs-extra "^10.1.0" - tslib "^2.4.0" - webpack "^5.73.0" - -"@docusaurus/plugin-debug@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.4.1.tgz#461a2c77b0c5a91b2c05257c8f9585412aaa59dc" - integrity sha512-7Yu9UPzRShlrH/G8btOpR0e6INFZr0EegWplMjOqelIwAcx3PKyR8mgPTxGTxcqiYj6hxSCRN0D8R7YrzImwNA== - dependencies: - "@docusaurus/core" "2.4.1" - "@docusaurus/types" "2.4.1" - "@docusaurus/utils" "2.4.1" - fs-extra "^10.1.0" - react-json-view "^1.21.3" - tslib "^2.4.0" - -"@docusaurus/plugin-google-analytics@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.4.1.tgz#30de1c35773bf9d52bb2d79b201b23eb98022613" - integrity sha512-dyZJdJiCoL+rcfnm0RPkLt/o732HvLiEwmtoNzOoz9MSZz117UH2J6U2vUDtzUzwtFLIf32KkeyzisbwUCgcaQ== - dependencies: - "@docusaurus/core" "2.4.1" - "@docusaurus/types" "2.4.1" - "@docusaurus/utils-validation" "2.4.1" - tslib "^2.4.0" - -"@docusaurus/plugin-google-gtag@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.4.1.tgz#6a3eb91022714735e625c7ca70ef5188fa7bd0dc" - integrity sha512-mKIefK+2kGTQBYvloNEKtDmnRD7bxHLsBcxgnbt4oZwzi2nxCGjPX6+9SQO2KCN5HZbNrYmGo5GJfMgoRvy6uA== - dependencies: - "@docusaurus/core" "2.4.1" - "@docusaurus/types" "2.4.1" - "@docusaurus/utils-validation" "2.4.1" - tslib "^2.4.0" - -"@docusaurus/plugin-google-tag-manager@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-2.4.1.tgz#b99f71aec00b112bbf509ef2416e404a95eb607e" - integrity sha512-Zg4Ii9CMOLfpeV2nG74lVTWNtisFaH9QNtEw48R5QE1KIwDBdTVaiSA18G1EujZjrzJJzXN79VhINSbOJO/r3g== - dependencies: - "@docusaurus/core" "2.4.1" - "@docusaurus/types" "2.4.1" - "@docusaurus/utils-validation" "2.4.1" - tslib "^2.4.0" - -"@docusaurus/plugin-sitemap@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.4.1.tgz#8a7a76ed69dc3e6b4474b6abb10bb03336a9de6d" - integrity sha512-lZx+ijt/+atQ3FVE8FOHV/+X3kuok688OydDXrqKRJyXBJZKgGjA2Qa8RjQ4f27V2woaXhtnyrdPop/+OjVMRg== - dependencies: - "@docusaurus/core" "2.4.1" - "@docusaurus/logger" "2.4.1" - "@docusaurus/types" "2.4.1" - "@docusaurus/utils" "2.4.1" - "@docusaurus/utils-common" "2.4.1" - "@docusaurus/utils-validation" "2.4.1" - fs-extra "^10.1.0" - sitemap "^7.1.1" - tslib "^2.4.0" - -"@docusaurus/preset-classic@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.4.1.tgz#072f22d0332588e9c5f512d4bded8d7c99f91497" - integrity sha512-P4//+I4zDqQJ+UDgoFrjIFaQ1MeS9UD1cvxVQaI6O7iBmiHQm0MGROP1TbE7HlxlDPXFJjZUK3x3cAoK63smGQ== - dependencies: - "@docusaurus/core" "2.4.1" - "@docusaurus/plugin-content-blog" "2.4.1" - "@docusaurus/plugin-content-docs" "2.4.1" - "@docusaurus/plugin-content-pages" "2.4.1" - "@docusaurus/plugin-debug" "2.4.1" - "@docusaurus/plugin-google-analytics" "2.4.1" - "@docusaurus/plugin-google-gtag" "2.4.1" - "@docusaurus/plugin-google-tag-manager" "2.4.1" - "@docusaurus/plugin-sitemap" "2.4.1" - "@docusaurus/theme-classic" "2.4.1" - "@docusaurus/theme-common" "2.4.1" - "@docusaurus/theme-search-algolia" "2.4.1" - "@docusaurus/types" "2.4.1" - -"@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2": - version "5.5.2" - resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz#81aae0db81ecafbdaee3651f12804580868fa6ce" - integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== - dependencies: - "@types/react" "*" - prop-types "^15.6.2" - -"@docusaurus/theme-classic@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.4.1.tgz#0060cb263c1a73a33ac33f79bb6bc2a12a56ad9e" - integrity sha512-Rz0wKUa+LTW1PLXmwnf8mn85EBzaGSt6qamqtmnh9Hflkc+EqiYMhtUJeLdV+wsgYq4aG0ANc+bpUDpsUhdnwg== - dependencies: - "@docusaurus/core" "2.4.1" - "@docusaurus/mdx-loader" "2.4.1" - "@docusaurus/module-type-aliases" "2.4.1" - "@docusaurus/plugin-content-blog" "2.4.1" - "@docusaurus/plugin-content-docs" "2.4.1" - "@docusaurus/plugin-content-pages" "2.4.1" - "@docusaurus/theme-common" "2.4.1" - "@docusaurus/theme-translations" "2.4.1" - "@docusaurus/types" "2.4.1" - "@docusaurus/utils" "2.4.1" - "@docusaurus/utils-common" "2.4.1" - "@docusaurus/utils-validation" "2.4.1" - "@mdx-js/react" "^1.6.22" - clsx "^1.2.1" - copy-text-to-clipboard "^3.0.1" - infima "0.2.0-alpha.43" - lodash "^4.17.21" - nprogress "^0.2.0" - postcss "^8.4.14" - prism-react-renderer "^1.3.5" - prismjs "^1.28.0" - react-router-dom "^5.3.3" - rtlcss "^3.5.0" - tslib "^2.4.0" - utility-types "^3.10.0" - -"@docusaurus/theme-common@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-2.4.1.tgz#03e16f7aa96455e952f3243ac99757b01a3c83d4" - integrity sha512-G7Zau1W5rQTaFFB3x3soQoZpkgMbl/SYNG8PfMFIjKa3M3q8n0m/GRf5/H/e5BqOvt8c+ZWIXGCiz+kUCSHovA== - dependencies: - "@docusaurus/mdx-loader" "2.4.1" - "@docusaurus/module-type-aliases" "2.4.1" - "@docusaurus/plugin-content-blog" "2.4.1" - "@docusaurus/plugin-content-docs" "2.4.1" - "@docusaurus/plugin-content-pages" "2.4.1" - "@docusaurus/utils" "2.4.1" - "@docusaurus/utils-common" "2.4.1" - "@types/history" "^4.7.11" - "@types/react" "*" - "@types/react-router-config" "*" - clsx "^1.2.1" - parse-numeric-range "^1.3.0" - prism-react-renderer "^1.3.5" - tslib "^2.4.0" - use-sync-external-store "^1.2.0" - utility-types "^3.10.0" - -"@docusaurus/theme-search-algolia@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.4.1.tgz#906bd2cca3fced0241985ef502c892f58ff380fc" - integrity sha512-6BcqW2lnLhZCXuMAvPRezFs1DpmEKzXFKlYjruuas+Xy3AQeFzDJKTJFIm49N77WFCTyxff8d3E4Q9pi/+5McQ== - dependencies: - "@docsearch/react" "^3.1.1" - "@docusaurus/core" "2.4.1" - "@docusaurus/logger" "2.4.1" - "@docusaurus/plugin-content-docs" "2.4.1" - "@docusaurus/theme-common" "2.4.1" - "@docusaurus/theme-translations" "2.4.1" - "@docusaurus/utils" "2.4.1" - "@docusaurus/utils-validation" "2.4.1" - algoliasearch "^4.13.1" - algoliasearch-helper "^3.10.0" - clsx "^1.2.1" - eta "^2.0.0" - fs-extra "^10.1.0" - lodash "^4.17.21" - tslib "^2.4.0" - utility-types "^3.10.0" - -"@docusaurus/theme-translations@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-2.4.1.tgz#4d49df5865dae9ef4b98a19284ede62ae6f98726" - integrity sha512-T1RAGP+f86CA1kfE8ejZ3T3pUU3XcyvrGMfC/zxCtc2BsnoexuNI9Vk2CmuKCb+Tacvhxjv5unhxXce0+NKyvA== - dependencies: - fs-extra "^10.1.0" - tslib "^2.4.0" - -"@docusaurus/types@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.4.1.tgz#d8e82f9e0f704984f98df1f93d6b4554d5458705" - integrity sha512-0R+cbhpMkhbRXX138UOc/2XZFF8hiZa6ooZAEEJFp5scytzCw4tC1gChMFXrpa3d2tYE6AX8IrOEpSonLmfQuQ== - dependencies: - "@types/history" "^4.7.11" - "@types/react" "*" - commander "^5.1.0" - joi "^17.6.0" - react-helmet-async "^1.3.0" - utility-types "^3.10.0" - webpack "^5.73.0" - webpack-merge "^5.8.0" - -"@docusaurus/utils-common@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-2.4.1.tgz#7f72e873e49bd5179588869cc3ab7449a56aae63" - integrity sha512-bCVGdZU+z/qVcIiEQdyx0K13OC5mYwxhSuDUR95oFbKVuXYRrTVrwZIqQljuo1fyJvFTKHiL9L9skQOPokuFNQ== - dependencies: - tslib "^2.4.0" - -"@docusaurus/utils-validation@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.4.1.tgz#19959856d4a886af0c5cfb357f4ef68b51151244" - integrity sha512-unII3hlJlDwZ3w8U+pMO3Lx3RhI4YEbY3YNsQj4yzrkZzlpqZOLuAiZK2JyULnD+TKbceKU0WyWkQXtYbLNDFA== - dependencies: - "@docusaurus/logger" "2.4.1" - "@docusaurus/utils" "2.4.1" - joi "^17.6.0" - js-yaml "^4.1.0" - tslib "^2.4.0" - -"@docusaurus/utils@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.4.1.tgz#9c5f76eae37b71f3819c1c1f0e26e6807c99a4fc" - integrity sha512-1lvEZdAQhKNht9aPXPoh69eeKnV0/62ROhQeFKKxmzd0zkcuE/Oc5Gpnt00y/f5bIsmOsYMY7Pqfm/5rteT5GA== - dependencies: - "@docusaurus/logger" "2.4.1" - "@svgr/webpack" "^6.2.1" - escape-string-regexp "^4.0.0" - file-loader "^6.2.0" - fs-extra "^10.1.0" - github-slugger "^1.4.0" - globby "^11.1.0" - gray-matter "^4.0.3" - js-yaml "^4.1.0" - lodash "^4.17.21" - micromatch "^4.0.5" - resolve-pathname "^3.0.0" - shelljs "^0.8.5" - tslib "^2.4.0" - url-loader "^4.1.1" - webpack "^5.73.0" - -"@hapi/hoek@^9.0.0": - version "9.3.0" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" - integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== - -"@hapi/topo@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" - integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@jest/schemas@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" - integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== - dependencies: - "@sinclair/typebox" "^0.25.16" - -"@jest/types@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" - integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== - dependencies: - "@jest/schemas" "^29.4.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/source-map@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.3.tgz#8108265659d4c33e72ffe14e33d6cc5eb59f2fda" - integrity sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/sourcemap-codec@1.4.14": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@leichtgewicht/ip-codec@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" - integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== - -"@mdx-js/mdx@^1.6.22": - version "1.6.22" - resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba" - integrity sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA== - dependencies: - "@babel/core" "7.12.9" - "@babel/plugin-syntax-jsx" "7.12.1" - "@babel/plugin-syntax-object-rest-spread" "7.8.3" - "@mdx-js/util" "1.6.22" - babel-plugin-apply-mdx-type-prop "1.6.22" - babel-plugin-extract-import-names "1.6.22" - camelcase-css "2.0.1" - detab "2.0.4" - hast-util-raw "6.0.1" - lodash.uniq "4.5.0" - mdast-util-to-hast "10.0.1" - remark-footnotes "2.0.0" - remark-mdx "1.6.22" - remark-parse "8.0.3" - remark-squeeze-paragraphs "4.0.0" - style-to-object "0.3.0" - unified "9.2.0" - unist-builder "2.0.3" - unist-util-visit "2.0.3" - -"@mdx-js/react@^1.6.22": - version "1.6.22" - resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.6.22.tgz#ae09b4744fddc74714ee9f9d6f17a66e77c43573" - integrity sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg== - -"@mdx-js/util@1.6.22": - version "1.6.22" - resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b" - integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA== - -"@meilisearch/instant-meilisearch@^0.13.3": - version "0.13.3" - resolved "https://registry.yarnpkg.com/@meilisearch/instant-meilisearch/-/instant-meilisearch-0.13.3.tgz#e7072fe1f3b2eb810f60e112e97fe56c1f5bb9e1" - integrity sha512-GzJrma064pA9b/5Tdv/5uX5XGPx+uBgBOe2VGbOJcG4VFfEwmSqYw5kJFl/vrpJ3pYw46xPeFLVUl4cHq1nNlA== - dependencies: - meilisearch "^0.33.0" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@polka/url@^1.0.0-next.20": - version "1.0.0-next.21" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" - integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== - -"@sideway/address@^4.1.3": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" - integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@sideway/formula@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" - integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== - -"@sideway/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" - integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== - -"@sinclair/typebox@^0.25.16": - version "0.25.24" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" - integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@slorber/static-site-generator-webpack-plugin@^4.0.7": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.7.tgz#fc1678bddefab014e2145cbe25b3ce4e1cfc36f3" - integrity sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA== - dependencies: - eval "^0.1.8" - p-map "^4.0.0" - webpack-sources "^3.2.2" - -"@svgr/babel-plugin-add-jsx-attribute@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz#74a5d648bd0347bda99d82409d87b8ca80b9a1ba" - integrity sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ== - -"@svgr/babel-plugin-remove-jsx-attribute@*": - version "8.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz#69177f7937233caca3a1afb051906698f2f59186" - integrity sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA== - -"@svgr/babel-plugin-remove-jsx-empty-expression@*": - version "8.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz#c2c48104cfd7dcd557f373b70a56e9e3bdae1d44" - integrity sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA== - -"@svgr/babel-plugin-replace-jsx-attribute-value@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz#fb9d22ea26d2bc5e0a44b763d4c46d5d3f596c60" - integrity sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg== - -"@svgr/babel-plugin-svg-dynamic-title@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz#01b2024a2b53ffaa5efceaa0bf3e1d5a4c520ce4" - integrity sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw== - -"@svgr/babel-plugin-svg-em-dimensions@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz#dd3fa9f5b24eb4f93bcf121c3d40ff5facecb217" - integrity sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA== - -"@svgr/babel-plugin-transform-react-native-svg@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz#1d8e945a03df65b601551097d8f5e34351d3d305" - integrity sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg== - -"@svgr/babel-plugin-transform-svg-component@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz#48620b9e590e25ff95a80f811544218d27f8a250" - integrity sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ== - -"@svgr/babel-preset@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.5.1.tgz#b90de7979c8843c5c580c7e2ec71f024b49eb828" - integrity sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw== - dependencies: - "@svgr/babel-plugin-add-jsx-attribute" "^6.5.1" - "@svgr/babel-plugin-remove-jsx-attribute" "*" - "@svgr/babel-plugin-remove-jsx-empty-expression" "*" - "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.5.1" - "@svgr/babel-plugin-svg-dynamic-title" "^6.5.1" - "@svgr/babel-plugin-svg-em-dimensions" "^6.5.1" - "@svgr/babel-plugin-transform-react-native-svg" "^6.5.1" - "@svgr/babel-plugin-transform-svg-component" "^6.5.1" - -"@svgr/core@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.5.1.tgz#d3e8aa9dbe3fbd747f9ee4282c1c77a27410488a" - integrity sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw== - dependencies: - "@babel/core" "^7.19.6" - "@svgr/babel-preset" "^6.5.1" - "@svgr/plugin-jsx" "^6.5.1" - camelcase "^6.2.0" - cosmiconfig "^7.0.1" - -"@svgr/hast-util-to-babel-ast@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz#81800bd09b5bcdb968bf6ee7c863d2288fdb80d2" - integrity sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw== - dependencies: - "@babel/types" "^7.20.0" - entities "^4.4.0" - -"@svgr/plugin-jsx@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz#0e30d1878e771ca753c94e69581c7971542a7072" - integrity sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw== - dependencies: - "@babel/core" "^7.19.6" - "@svgr/babel-preset" "^6.5.1" - "@svgr/hast-util-to-babel-ast" "^6.5.1" - svg-parser "^2.0.4" - -"@svgr/plugin-svgo@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz#0f91910e988fc0b842f88e0960c2862e022abe84" - integrity sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ== - dependencies: - cosmiconfig "^7.0.1" - deepmerge "^4.2.2" - svgo "^2.8.0" - -"@svgr/webpack@^6.2.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.5.1.tgz#ecf027814fc1cb2decc29dc92f39c3cf691e40e8" - integrity sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA== - dependencies: - "@babel/core" "^7.19.6" - "@babel/plugin-transform-react-constant-elements" "^7.18.12" - "@babel/preset-env" "^7.19.4" - "@babel/preset-react" "^7.18.6" - "@babel/preset-typescript" "^7.18.6" - "@svgr/core" "^6.5.1" - "@svgr/plugin-jsx" "^6.5.1" - "@svgr/plugin-svgo" "^6.5.1" - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@trysound/sax@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" - integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== - -"@tsconfig/docusaurus@^1.0.5": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@tsconfig/docusaurus/-/docusaurus-1.0.7.tgz#a3ee3c8109b3fec091e3d61a61834e563aeee3c3" - integrity sha512-ffTXxGIP/IRMCjuzHd6M4/HdIrw1bMfC7Bv8hMkTadnePkpe0lG0oDSdbRpSDZb2rQMAgpbWiR10BvxvNYwYrg== - -"@types/body-parser@*": - version "1.19.2" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/bonjour@^3.5.9": - version "3.5.10" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" - integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== - dependencies: - "@types/node" "*" - -"@types/connect-history-api-fallback@^1.3.5": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#9fd20b3974bdc2bcd4ac6567e2e0f6885cb2cf41" - integrity sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" - -"@types/connect@*": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== - dependencies: - "@types/node" "*" - -"@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "8.37.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.37.0.tgz#29cebc6c2a3ac7fea7113207bf5a828fdf4d7ef1" - integrity sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*", "@types/estree@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== - -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": - version "4.17.35" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" - integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - -"@types/express@*", "@types/express@^4.17.13": - version "4.17.17" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" - integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/hast@^2.0.0": - version "2.3.4" - resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc" - integrity sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g== - dependencies: - "@types/unist" "*" - -"@types/history@^4.7.11": - version "4.7.11" - resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64" - integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA== - -"@types/html-minifier-terser@^6.0.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" - integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== - -"@types/http-proxy@^1.17.8": - version "1.17.11" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.11.tgz#0ca21949a5588d55ac2b659b69035c84bd5da293" - integrity sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@types/mdast@^3.0.0": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.11.tgz#dc130f7e7d9306124286f6d6cee40cf4d14a3dc0" - integrity sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw== - dependencies: - "@types/unist" "*" - -"@types/mime@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" - integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== - -"@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== - -"@types/node@*": - version "20.1.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.1.4.tgz#83f148d2d1f5fe6add4c53358ba00d97fc4cdb71" - integrity sha512-At4pvmIOki8yuwLtd7BNHl3CiWNbtclUbNtScGx4OHfBd4/oWoJC8KRCIxXwkdndzhxOsPXihrsOoydxBjlE9Q== - -"@types/node@^17.0.5": - version "17.0.45" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" - integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== - -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - -"@types/parse5@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" - integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== - -"@types/prop-types@*": - version "15.7.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== - -"@types/qs@*": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== - -"@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== - -"@types/react-router-config@*", "@types/react-router-config@^5.0.6": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@types/react-router-config/-/react-router-config-5.0.7.tgz#36207a3fe08b271abee62b26993ee932d13cbb02" - integrity sha512-pFFVXUIydHlcJP6wJm7sDii5mD/bCmmAY0wQzq+M+uX7bqS95AQqHZWP1iNMKrWVQSuHIzj5qi9BvrtLX2/T4w== - dependencies: - "@types/history" "^4.7.11" - "@types/react" "*" - "@types/react-router" "^5.1.0" - -"@types/react-router-dom@*": - version "5.3.3" - resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83" - integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw== - dependencies: - "@types/history" "^4.7.11" - "@types/react" "*" - "@types/react-router" "*" - -"@types/react-router@*", "@types/react-router@^5.1.0": - version "5.1.20" - resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.20.tgz#88eccaa122a82405ef3efbcaaa5dcdd9f021387c" - integrity sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q== - dependencies: - "@types/history" "^4.7.11" - "@types/react" "*" - -"@types/react@*": - version "18.2.6" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.6.tgz#5cd53ee0d30ffc193b159d3516c8c8ad2f19d571" - integrity sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/retry@0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" - integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== - -"@types/sax@^1.2.1": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/sax/-/sax-1.2.4.tgz#8221affa7f4f3cb21abd22f244cfabfa63e6a69e" - integrity sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw== - dependencies: - "@types/node" "*" - -"@types/scheduler@*": - version "0.16.3" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" - integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== - -"@types/send@*": - version "0.17.1" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" - integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/serve-index@^1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" - integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== - dependencies: - "@types/express" "*" - -"@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.1" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.1.tgz#86b1753f0be4f9a1bee68d459fcda5be4ea52b5d" - integrity sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ== - dependencies: - "@types/mime" "*" - "@types/node" "*" - -"@types/sockjs@^0.3.33": - version "0.3.33" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" - integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== - dependencies: - "@types/node" "*" - -"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" - integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== - -"@types/ws@^8.5.1": - version "8.5.4" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" - integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== - dependencies: - "@types/node" "*" - -"@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== - -"@types/yargs@^17.0.8": - version "17.0.24" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" - integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== - dependencies: - "@types/yargs-parser" "*" - -"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" - integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - -"@webassemblyjs/floating-point-hex-parser@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" - integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== - -"@webassemblyjs/helper-api-error@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" - integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== - -"@webassemblyjs/helper-buffer@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" - integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== - -"@webassemblyjs/helper-numbers@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" - integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.6" - "@webassemblyjs/helper-api-error" "1.11.6" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" - integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== - -"@webassemblyjs/helper-wasm-section@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" - integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - -"@webassemblyjs/ieee754@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" - integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" - integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" - integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== - -"@webassemblyjs/wasm-edit@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" - integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/helper-wasm-section" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-opt" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - "@webassemblyjs/wast-printer" "1.11.6" - -"@webassemblyjs/wasm-gen@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" - integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wasm-opt@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" - integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - -"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" - integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-api-error" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wast-printer@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" - integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-import-assertions@^1.7.6: - version "1.9.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" - integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== - -acorn-walk@^8.0.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^8.0.4, acorn@^8.5.0, acorn@^8.7.1: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== - -address@^1.0.1, address@^1.1.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" - integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.0" - -ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv-keywords@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" - integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== - dependencies: - fast-deep-equal "^3.1.3" - -ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.0, ajv@^8.9.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -algoliasearch-helper@^3.10.0: - version "3.13.0" - resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.13.0.tgz#1ccca7056fd27c2b0b5c92dd5c0abf4314bec3b8" - integrity sha512-kV3c1jMQCvkARtGsSDvAwuht4PAMSsQILqPiH4WFiARoa3jXJ/r1TQoBWAjWyWF48rsNYCv7kzxgB4LTxrvvuw== - dependencies: - "@algolia/events" "^4.0.1" - -algoliasearch-helper@^3.13.2: - version "3.13.3" - resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.13.3.tgz#d23341fb88f490c9b2b83fc2362d1551d52117b6" - integrity sha512-jhbbuYZ+fheXpaJlqdJdFa1jOsrTWKmRRTYDM3oVTto5VodZzM7tT+BHzslAotaJf/81CKrm6yLRQn8WIr/K4A== - dependencies: - "@algolia/events" "^4.0.1" - -algoliasearch@^4.0.0, algoliasearch@^4.13.1: - version "4.17.0" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.17.0.tgz#46ed58b2b99509d041f11cd1ea83623edf84355f" - integrity sha512-JMRh2Mw6sEnVMiz6+APsi7lx9a2jiDFF+WUtANaUVCv6uSU9UOLdo5h9K3pdP6frRRybaM2fX8b1u0nqICS9aA== - dependencies: - "@algolia/cache-browser-local-storage" "4.17.0" - "@algolia/cache-common" "4.17.0" - "@algolia/cache-in-memory" "4.17.0" - "@algolia/client-account" "4.17.0" - "@algolia/client-analytics" "4.17.0" - "@algolia/client-common" "4.17.0" - "@algolia/client-personalization" "4.17.0" - "@algolia/client-search" "4.17.0" - "@algolia/logger-common" "4.17.0" - "@algolia/logger-console" "4.17.0" - "@algolia/requester-browser-xhr" "4.17.0" - "@algolia/requester-common" "4.17.0" - "@algolia/requester-node-http" "4.17.0" - "@algolia/transporter" "4.17.0" - -ansi-align@^3.0.0, ansi-align@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" - integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== - dependencies: - string-width "^4.1.0" - -ansi-html-community@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -arg@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" - integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -array-flatten@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -autoprefixer@^10.4.12, autoprefixer@^10.4.7: - version "10.4.14" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" - integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== - dependencies: - browserslist "^4.21.5" - caniuse-lite "^1.0.30001464" - fraction.js "^4.2.0" - normalize-range "^0.1.2" - picocolors "^1.0.0" - postcss-value-parser "^4.2.0" - -axios@^0.25.0: - version "0.25.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.25.0.tgz#349cfbb31331a9b4453190791760a8d35b093e0a" - integrity sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g== - dependencies: - follow-redirects "^1.14.7" - -babel-loader@^8.2.5: - version "8.3.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" - integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== - dependencies: - find-cache-dir "^3.3.1" - loader-utils "^2.0.0" - make-dir "^3.1.0" - schema-utils "^2.6.5" - -babel-plugin-apply-mdx-type-prop@1.6.22: - version "1.6.22" - resolved "https://registry.yarnpkg.com/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz#d216e8fd0de91de3f1478ef3231e05446bc8705b" - integrity sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ== - dependencies: - "@babel/helper-plugin-utils" "7.10.4" - "@mdx-js/util" "1.6.22" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-extract-import-names@1.6.22: - version "1.6.22" - resolved "https://registry.yarnpkg.com/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz#de5f9a28eb12f3eb2578bf74472204e66d1a13dc" - integrity sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ== - dependencies: - "@babel/helper-plugin-utils" "7.10.4" - -babel-plugin-polyfill-corejs2@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" - integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== - dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.3" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" - integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - core-js-compat "^3.25.1" - -babel-plugin-polyfill-regenerator@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" - integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - -bail@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" - integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base16@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" - integrity sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ== - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -bonjour-service@^1.0.11: - version "1.1.1" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.1.tgz#960948fa0e0153f5d26743ab15baf8e33752c135" - integrity sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg== - dependencies: - array-flatten "^2.1.2" - dns-equal "^1.0.0" - fast-deep-equal "^3.1.3" - multicast-dns "^7.2.5" - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -boxen@^5.0.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" - integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^6.2.0" - chalk "^4.1.0" - cli-boxes "^2.2.1" - string-width "^4.2.2" - type-fest "^0.20.2" - widest-line "^3.1.0" - wrap-ansi "^7.0.0" - -boxen@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-6.2.1.tgz#b098a2278b2cd2845deef2dff2efc38d329b434d" - integrity sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw== - dependencies: - ansi-align "^3.0.1" - camelcase "^6.2.0" - chalk "^4.1.2" - cli-boxes "^3.0.0" - string-width "^5.0.1" - type-fest "^2.5.0" - widest-line "^4.0.1" - wrap-ansi "^8.0.1" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5: - version "4.21.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== - dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camel-case@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" - integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== - dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" - -camelcase-css@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" - integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - -camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464: - version "1.0.30001487" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001487.tgz#d882d1a34d89c11aea53b8cdc791931bdab5fe1b" - integrity sha512-83564Z3yWGqXsh2vaH/mhXfEM0wX+NlBCm1jYHOb97TrTWJEmPTccZgeLTPBUUb0PNVo+oomb7wkimZBIERClA== - -ccount@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" - integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== - -chalk@^2.0.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -character-entities-legacy@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" - integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== - -character-entities@^1.0.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" - integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== - -character-reference-invalid@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" - integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== - -cheerio-select@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" - integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== - dependencies: - boolbase "^1.0.0" - css-select "^5.1.0" - css-what "^6.1.0" - domelementtype "^2.3.0" - domhandler "^5.0.3" - domutils "^3.0.1" - -cheerio@^1.0.0-rc.12: - version "1.0.0-rc.12" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" - integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== - dependencies: - cheerio-select "^2.1.0" - dom-serializer "^2.0.0" - domhandler "^5.0.3" - domutils "^3.0.1" - htmlparser2 "^8.0.1" - parse5 "^7.0.0" - parse5-htmlparser2-tree-adapter "^7.0.0" - -chokidar@^3.4.2, chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -ci-info@^3.2.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" - integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== - -classnames@^2.2.5: - version "2.3.2" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" - integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== - -clean-css@^5.2.2, clean-css@^5.3.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" - integrity sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww== - dependencies: - source-map "~0.6.0" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-boxes@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== - -cli-boxes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" - integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== - -cli-table3@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" - integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== - dependencies: - string-width "^4.2.0" - optionalDependencies: - "@colors/colors" "1.5.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -clone-response@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" - integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== - dependencies: - mimic-response "^1.0.0" - -clsx@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" - integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== - -collapse-white-space@^1.0.2: - version "1.0.6" - resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" - integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colord@^2.9.1: - version "2.9.3" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" - integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== - -colorette@^2.0.10: - version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - -combine-promises@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/combine-promises/-/combine-promises-1.1.0.tgz#72db90743c0ca7aab7d0d8d2052fd7b0f674de71" - integrity sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg== - -comma-separated-tokens@^1.0.0: - version "1.0.8" - resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" - integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - -commander@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -commander@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - -connect-history-api-fallback@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" - integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== - -consola@^2.15.3: - version "2.15.3" - resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" - integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== - -content-disposition@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" - integrity sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA== - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -copy-text-to-clipboard@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.1.0.tgz#6bf40deef0a51ac6858efb0d76ded2c6d6a15059" - integrity sha512-PFM6BnjLnOON/lB3ta/Jg7Ywsv+l9kQGD4TWDCSlRBGmqnnTM5MrDkhAFgw+8HZt0wW6Q2BBE4cmy9sq+s9Qng== - -copy-webpack-plugin@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz#96d4dbdb5f73d02dd72d0528d1958721ab72e04a" - integrity sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ== - dependencies: - fast-glob "^3.2.11" - glob-parent "^6.0.1" - globby "^13.1.1" - normalize-path "^3.0.0" - schema-utils "^4.0.0" - serialize-javascript "^6.0.0" - -core-js-compat@^3.25.1: - version "3.30.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.2.tgz#83f136e375babdb8c80ad3c22d67c69098c1dd8b" - integrity sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA== - dependencies: - browserslist "^4.21.5" - -core-js-pure@^3.25.1: - version "3.30.2" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.30.2.tgz#005a82551f4af3250dcfb46ed360fad32ced114e" - integrity sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg== - -core-js@^3.23.3: - version "3.30.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.30.2.tgz#6528abfda65e5ad728143ea23f7a14f0dcf503fc" - integrity sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cosmiconfig@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.7.2" - -cosmiconfig@^7.0.1: - version "7.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" - integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -cosmiconfig@^8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.1.3.tgz#0e614a118fcc2d9e5afc2f87d53cd09931015689" - integrity sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw== - dependencies: - import-fresh "^3.2.1" - js-yaml "^4.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - -cross-fetch@^3.1.5, cross-fetch@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.6.tgz#bae05aa31a4da760969756318feeee6e70f15d6c" - integrity sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g== - dependencies: - node-fetch "^2.6.11" - -cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - -css-declaration-sorter@^6.3.1: - version "6.4.0" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz#630618adc21724484b3e9505bce812def44000ad" - integrity sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew== - -css-loader@^6.7.1: - version "6.7.3" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.3.tgz#1e8799f3ccc5874fdd55461af51137fcc5befbcd" - integrity sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ== - dependencies: - icss-utils "^5.1.0" - postcss "^8.4.19" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - postcss-value-parser "^4.2.0" - semver "^7.3.8" - -css-minimizer-webpack-plugin@^4.0.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz#79f6199eb5adf1ff7ba57f105e3752d15211eb35" - integrity sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA== - dependencies: - cssnano "^5.1.8" - jest-worker "^29.1.2" - postcss "^8.4.17" - schema-utils "^4.0.0" - serialize-javascript "^6.0.0" - source-map "^0.6.1" - -css-select@^4.1.3: - version "4.3.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" - integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== - dependencies: - boolbase "^1.0.0" - css-what "^6.0.1" - domhandler "^4.3.1" - domutils "^2.8.0" - nth-check "^2.0.1" - -css-select@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" - integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== - dependencies: - boolbase "^1.0.0" - css-what "^6.1.0" - domhandler "^5.0.2" - domutils "^3.0.1" - nth-check "^2.0.1" - -css-tree@^1.1.2, css-tree@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^6.0.1, css-what@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano-preset-advanced@^5.3.8: - version "5.3.10" - resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.10.tgz#25558a1fbf3a871fb6429ce71e41be7f5aca6eef" - integrity sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ== - dependencies: - autoprefixer "^10.4.12" - cssnano-preset-default "^5.2.14" - postcss-discard-unused "^5.1.0" - postcss-merge-idents "^5.1.1" - postcss-reduce-idents "^5.2.0" - postcss-zindex "^5.1.0" - -cssnano-preset-default@^5.2.14: - version "5.2.14" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz#309def4f7b7e16d71ab2438052093330d9ab45d8" - integrity sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A== - dependencies: - css-declaration-sorter "^6.3.1" - cssnano-utils "^3.1.0" - postcss-calc "^8.2.3" - postcss-colormin "^5.3.1" - postcss-convert-values "^5.1.3" - postcss-discard-comments "^5.1.2" - postcss-discard-duplicates "^5.1.0" - postcss-discard-empty "^5.1.1" - postcss-discard-overridden "^5.1.0" - postcss-merge-longhand "^5.1.7" - postcss-merge-rules "^5.1.4" - postcss-minify-font-values "^5.1.0" - postcss-minify-gradients "^5.1.1" - postcss-minify-params "^5.1.4" - postcss-minify-selectors "^5.2.1" - postcss-normalize-charset "^5.1.0" - postcss-normalize-display-values "^5.1.0" - postcss-normalize-positions "^5.1.1" - postcss-normalize-repeat-style "^5.1.1" - postcss-normalize-string "^5.1.0" - postcss-normalize-timing-functions "^5.1.0" - postcss-normalize-unicode "^5.1.1" - postcss-normalize-url "^5.1.0" - postcss-normalize-whitespace "^5.1.1" - postcss-ordered-values "^5.1.3" - postcss-reduce-initial "^5.1.2" - postcss-reduce-transforms "^5.1.0" - postcss-svgo "^5.1.0" - postcss-unique-selectors "^5.1.1" - -cssnano-utils@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" - integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== - -cssnano@^5.1.12, cssnano@^5.1.8: - version "5.1.15" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.15.tgz#ded66b5480d5127fcb44dac12ea5a983755136bf" - integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw== - dependencies: - cssnano-preset-default "^5.2.14" - lilconfig "^2.0.3" - yaml "^1.10.2" - -csso@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -csstype@^3.0.2, csstype@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" - integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== - -debug@2.6.9, debug@^2.6.0: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4, debug@^4.1.0, debug@^4.1.1: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== - dependencies: - mimic-response "^1.0.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deepmerge@^4.2.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== - -default-gateway@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" - integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== - dependencies: - execa "^5.0.0" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -define-lazy-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" - integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== - -define-properties@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -del@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" - integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== - dependencies: - globby "^11.0.1" - graceful-fs "^4.2.4" - is-glob "^4.0.1" - is-path-cwd "^2.2.0" - is-path-inside "^3.0.2" - p-map "^4.0.0" - rimraf "^3.0.2" - slash "^3.0.0" - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detab@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.4.tgz#b927892069aff405fbb9a186fe97a44a92a94b43" - integrity sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g== - dependencies: - repeat-string "^1.5.4" - -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - -detect-port-alt@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" - integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== - dependencies: - address "^1.0.1" - debug "^2.6.0" - -detect-port@^1.3.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.5.1.tgz#451ca9b6eaf20451acb0799b8ab40dff7718727b" - integrity sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ== - dependencies: - address "^1.0.1" - debug "4" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== - -dns-packet@^5.2.2: - version "5.6.0" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.0.tgz#2202c947845c7a63c23ece58f2f70ff6ab4c2f7d" - integrity sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ== - dependencies: - "@leichtgewicht/ip-codec" "^2.0.1" - -dom-converter@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-serializer@^1.0.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" - integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -dom-serializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" - integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.2" - entities "^4.2.0" - -domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" - integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== - dependencies: - domelementtype "^2.2.0" - -domhandler@^5.0.2, domhandler@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" - integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== - dependencies: - domelementtype "^2.3.0" - -domutils@^2.5.2, domutils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -domutils@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" - integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== - dependencies: - dom-serializer "^2.0.0" - domelementtype "^2.3.0" - domhandler "^5.0.3" - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -duplexer3@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" - integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== - -duplexer@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -electron-to-chromium@^1.4.284: - version "1.4.394" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.394.tgz#989abe104a40366755648876cde2cdeda9f31133" - integrity sha512-0IbC2cfr8w5LxTz+nmn2cJTGafsK9iauV2r5A5scfzyovqLrxuLoxOHE5OBobP3oVIggJT+0JfKnw9sm87c8Hw== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -emoticon@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-3.2.0.tgz#c008ca7d7620fac742fe1bf4af8ff8fed154ae7f" - integrity sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -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" - -enhanced-resolve@^5.14.0: - version "5.14.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz#0b6c676c8a3266c99fa281e4433a706f5c0c61c4" - integrity sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -entities@^4.2.0, entities@^4.4.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-module-lexer@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.2.1.tgz#ba303831f63e6a394983fde2f97ad77b22324527" - integrity sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg== - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== - -escape-html@^1.0.3, escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-scope@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -eta@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/eta/-/eta-2.1.2.tgz#2ac3899234552b60da87e5e781494ee1a8048fbc" - integrity sha512-qWH+mERhihcwKE9+Ah37rLDTP0d3Qc5KEsnEQhvoBowDezVI2F6+bqjRBVY+auUYOUb94MI0x5fllZs+CWVRRQ== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -eval@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eval/-/eval-0.1.8.tgz#2b903473b8cc1d1989b83a1e7923f883eb357f85" - integrity sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw== - dependencies: - "@types/node" "*" - require-like ">= 0.1.1" - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -express@^4.17.3: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== - dependencies: - is-extendable "^0.1.0" - -extend@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.2.11, fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-url-parser@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" - integrity sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ== - dependencies: - punycode "^1.3.2" - -fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== - dependencies: - reusify "^1.0.4" - -faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - -fbemitter@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/fbemitter/-/fbemitter-3.0.0.tgz#00b2a1af5411254aab416cd75f9e6289bee4bff3" - integrity sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw== - dependencies: - fbjs "^3.0.0" - -fbjs-css-vars@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" - integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== - -fbjs@^3.0.0, fbjs@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.4.tgz#e1871c6bd3083bac71ff2da868ad5067d37716c6" - integrity sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ== - dependencies: - cross-fetch "^3.1.5" - fbjs-css-vars "^1.0.0" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.30" - -feed@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.2.tgz#865783ef6ed12579e2c44bbef3c9113bc4956a7e" - integrity sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ== - dependencies: - xml-js "^1.6.11" - -file-loader@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" - integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -filesize@^8.0.6: - version "8.0.7" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" - integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-cache-dir@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flux@^4.0.1: - version "4.0.4" - resolved "https://registry.yarnpkg.com/flux/-/flux-4.0.4.tgz#9661182ea81d161ee1a6a6af10d20485ef2ac572" - integrity sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw== - dependencies: - fbemitter "^3.0.0" - fbjs "^3.0.1" - -follow-redirects@^1.0.0, follow-redirects@^1.14.7: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== - -fork-ts-checker-webpack-plugin@^6.5.0: - version "6.5.3" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz#eda2eff6e22476a2688d10661688c47f611b37f3" - integrity sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ== - dependencies: - "@babel/code-frame" "^7.8.3" - "@types/json-schema" "^7.0.5" - chalk "^4.1.0" - chokidar "^3.4.2" - cosmiconfig "^6.0.0" - deepmerge "^4.2.2" - fs-extra "^9.0.0" - glob "^7.1.6" - memfs "^3.1.2" - minimatch "^3.0.4" - schema-utils "2.7.0" - semver "^7.3.2" - tapable "^1.0.0" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fraction.js@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" - integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -fs-extra@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" - integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-monkey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" - integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-proto "^1.0.1" - has-symbols "^1.0.3" - -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - -get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.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-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -github-slugger@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d" - integrity sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw== - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - -glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-dirs@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" - integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== - dependencies: - ini "2.0.0" - -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -globby@^13.1.1: - version "13.1.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.4.tgz#2f91c116066bcec152465ba36e5caa4a13c01317" - integrity sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.2.11" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^4.0.0" - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -gray-matter@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" - integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== - dependencies: - js-yaml "^3.13.1" - kind-of "^6.0.2" - section-matter "^1.0.0" - strip-bom-string "^1.0.0" - -gzip-size@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" - integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== - dependencies: - duplexer "^0.1.2" - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -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-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hast-to-hyperscript@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" - integrity sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA== - dependencies: - "@types/unist" "^2.0.3" - comma-separated-tokens "^1.0.0" - property-information "^5.3.0" - space-separated-tokens "^1.0.0" - style-to-object "^0.3.0" - unist-util-is "^4.0.0" - web-namespaces "^1.0.0" - -hast-util-from-parse5@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz#554e34abdeea25ac76f5bd950a1f0180e0b3bc2a" - integrity sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA== - dependencies: - "@types/parse5" "^5.0.0" - hastscript "^6.0.0" - property-information "^5.0.0" - vfile "^4.0.0" - vfile-location "^3.2.0" - web-namespaces "^1.0.0" - -hast-util-parse-selector@^2.0.0: - version "2.2.5" - resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" - integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== - -hast-util-raw@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-6.0.1.tgz#973b15930b7529a7b66984c98148b46526885977" - integrity sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig== - dependencies: - "@types/hast" "^2.0.0" - hast-util-from-parse5 "^6.0.0" - hast-util-to-parse5 "^6.0.0" - html-void-elements "^1.0.0" - parse5 "^6.0.0" - unist-util-position "^3.0.0" - vfile "^4.0.0" - web-namespaces "^1.0.0" - xtend "^4.0.0" - zwitch "^1.0.0" - -hast-util-to-parse5@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479" - integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ== - dependencies: - hast-to-hyperscript "^9.0.0" - property-information "^5.0.0" - web-namespaces "^1.0.0" - xtend "^4.0.0" - zwitch "^1.0.0" - -hastscript@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" - integrity sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w== - dependencies: - "@types/hast" "^2.0.0" - comma-separated-tokens "^1.0.0" - hast-util-parse-selector "^2.0.0" - property-information "^5.0.0" - space-separated-tokens "^1.0.0" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -history@^4.9.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" - integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== - dependencies: - "@babel/runtime" "^7.1.2" - loose-envify "^1.2.0" - resolve-pathname "^3.0.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - value-equal "^1.0.1" - -hoist-non-react-statics@^3.1.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-entities@^2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" - integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== - -html-minifier-terser@^6.0.2, html-minifier-terser@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" - integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== - dependencies: - camel-case "^4.1.2" - clean-css "^5.2.2" - commander "^8.3.0" - he "^1.2.0" - param-case "^3.0.4" - relateurl "^0.2.7" - terser "^5.10.0" - -html-tags@^3.2.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" - integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== - -html-void-elements@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" - integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== - -html-webpack-plugin@^5.5.0: - version "5.5.1" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.1.tgz#826838e31b427f5f7f30971f8d8fa2422dfa6763" - integrity sha512-cTUzZ1+NqjGEKjmVgZKLMdiFg3m9MdRXkZW2OEe69WYVi5ONLMmlnSZdXzGGMOq0C8jGDrL6EWyEDDUioHO/pA== - dependencies: - "@types/html-minifier-terser" "^6.0.0" - html-minifier-terser "^6.0.2" - lodash "^4.17.21" - pretty-error "^4.0.0" - tapable "^2.0.0" - -htmlparser2@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" - integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.5.2" - entities "^2.0.0" - -htmlparser2@^8.0.1: - version "8.0.2" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" - integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.3" - domutils "^3.0.1" - entities "^4.4.0" - -http-cache-semantics@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" - integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.5.1: - version "0.5.8" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" - integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== - -http-proxy-middleware@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" - integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== - dependencies: - "@types/http-proxy" "^1.17.8" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-utils@^5.0.0, icss-utils@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== - -ignore@^5.2.0: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - -image-size@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.2.tgz#d778b6d0ab75b2737c1556dd631652eb963bc486" - integrity sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg== - dependencies: - queue "6.0.2" - -immer@^9.0.7: - version "9.0.21" - resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" - integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== - -import-fresh@^3.1.0, import-fresh@^3.2.1, import-fresh@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -infima@0.2.0-alpha.43: - version "0.2.0-alpha.43" - resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.43.tgz#f7aa1d7b30b6c08afef441c726bac6150228cbe0" - integrity sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== - -ini@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" - integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== - -ini@^1.3.5, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -inline-style-parser@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" - integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== - -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - -invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -ipaddr.js@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" - integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== - -is-alphabetical@1.0.4, is-alphabetical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" - integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== - -is-alphanumerical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" - integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== - dependencies: - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - -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-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-core-module@^2.11.0: - version "2.12.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.0.tgz#36ad62f6f73c8253fd6472517a12483cf03e7ec4" - integrity sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ== - dependencies: - has "^1.0.3" - -is-decimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" - integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== - -is-docker@^2.0.0, is-docker@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-extendable@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-hexadecimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" - integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== - -is-installed-globally@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" - integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== - dependencies: - global-dirs "^3.0.0" - is-path-inside "^3.0.2" - -is-npm@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" - integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-cwd@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-inside@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== - -is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== - -is-root@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" - integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-whitespace-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" - integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== - -is-word-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" - integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== - -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -jest-util@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" - integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== - dependencies: - "@jest/types" "^29.5.0" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-worker@^27.4.5: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest-worker@^29.1.2: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" - integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== - dependencies: - "@types/node" "*" - jest-util "^29.5.0" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jiti@^1.18.2: - version "1.18.2" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.18.2.tgz#80c3ef3d486ebf2450d9335122b32d121f2a83cd" - integrity sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg== - -joi@^17.6.0: - version "17.9.2" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.9.2.tgz#8b2e4724188369f55451aebd1d0b1d9482470690" - integrity sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw== - dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.3" - "@sideway/formula" "^3.0.1" - "@sideway/pinpoint" "^2.0.0" - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== - -json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json5@^2.1.2, json5@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -klona@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" - integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== - -latest-version@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.0" - -launch-editor@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" - integrity sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ== - dependencies: - picocolors "^1.0.0" - shell-quote "^1.7.3" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -lilconfig@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" - integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== - -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== - -loader-runner@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" - integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== - -loader-utils@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" - integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -loader-utils@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576" - integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.curry@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" - integrity sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA== - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - -lodash.flow@^3.3.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz#87bf40292b8cf83e4e8ce1a3ae4209e20071675a" - integrity sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw== - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - -lodash.uniq@4.5.0, lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== - -lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -markdown-escapes@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" - integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== - -mdast-squeeze-paragraphs@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97" - integrity sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ== - dependencies: - unist-util-remove "^2.0.0" - -mdast-util-definitions@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2" - integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ== - dependencies: - unist-util-visit "^2.0.0" - -mdast-util-to-hast@10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz#0cfc82089494c52d46eb0e3edb7a4eb2aea021eb" - integrity sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA== - dependencies: - "@types/mdast" "^3.0.0" - "@types/unist" "^2.0.0" - mdast-util-definitions "^4.0.0" - mdurl "^1.0.0" - unist-builder "^2.0.0" - unist-util-generated "^1.0.0" - unist-util-position "^3.0.0" - unist-util-visit "^2.0.0" - -mdast-util-to-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" - integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -mdurl@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -meilisearch-docsearch@^0.4.7: - version "0.4.7" - resolved "https://registry.yarnpkg.com/meilisearch-docsearch/-/meilisearch-docsearch-0.4.7.tgz#093d212e22dfbb294ac65ed5be015c103e24eb8c" - integrity sha512-zZWekKibcWIQ+6F/eK4kr2C2seZcQtS4aDrceerqsj+Qh6luzZSnMwjKAUuYm1xO7KZHDlUrHlutq5py+1OAjw== - dependencies: - meilisearch "^0.31.0" - solid-js "^1.6.9" - -meilisearch@^0.31.0: - version "0.31.1" - resolved "https://registry.yarnpkg.com/meilisearch/-/meilisearch-0.31.1.tgz#c526274c3cda844e8ee8d9562cbd3febbe1b9508" - integrity sha512-ajMieU0e25lLkT+05J0snX0Ycow1UofxIy5sag03flERUbjXq8ouVwkrJkW27JsKftIeDeffRRRr89LasU9+0w== - dependencies: - cross-fetch "^3.1.5" - -meilisearch@^0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/meilisearch/-/meilisearch-0.33.0.tgz#25982b193cdd22e9ec534a022dbde89c42951dc4" - integrity sha512-bYPb9WyITnJfzf92e7QFK8Rc50DmshFWxypXCs3ILlpNh8pT15A7KSu9Xgnnk/K3G/4vb3wkxxtFS4sxNkWB8w== - dependencies: - cross-fetch "^3.1.6" - -memfs@^3.1.2, memfs@^3.4.3: - version "3.5.1" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.5.1.tgz#f0cd1e2bfaef58f6fe09bfb9c2288f07fea099ec" - integrity sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA== - dependencies: - fs-monkey "^1.0.3" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-db@~1.33.0: - version "1.33.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" - integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== - -mime-types@2.1.18: - version "2.1.18" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" - integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== - dependencies: - mime-db "~1.33.0" - -mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mini-css-extract-plugin@^2.6.1: - version "2.7.5" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.5.tgz#afbb344977659ec0f1f6e050c7aea456b121cfc5" - integrity sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ== - dependencies: - schema-utils "^4.0.0" - -minimalistic-assert@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimatch@3.1.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -mrmime@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" - integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multicast-dns@^7.2.5: - version "7.2.5" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" - integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== - dependencies: - dns-packet "^5.2.2" - thunky "^1.0.2" - -nanoid@^3.3.6: - version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -node-emoji@^1.10.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" - integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== - dependencies: - lodash "^4.17.21" - -node-fetch@^2.6.11: - version "2.6.11" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" - integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== - dependencies: - whatwg-url "^5.0.0" - -node-forge@^1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - -normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== - -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -nprogress@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" - integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== - -nth-check@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - dependencies: - boolbase "^1.0.0" - -object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.0: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, 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" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -open@^8.0.9, open@^8.4.0: - version "8.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" - integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - -opener@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" - integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-retry@^4.5.0: - version "4.6.2" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" - integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== - dependencies: - "@types/retry" "0.12.0" - retry "^0.13.1" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -param-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" - integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" - integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse-numeric-range@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz#7c63b61190d61e4d53a1197f0c83c47bb670ffa3" - integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ== - -parse5-htmlparser2-tree-adapter@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" - integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== - dependencies: - domhandler "^5.0.2" - parse5 "^7.0.0" - -parse5@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -parse5@^7.0.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" - integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== - dependencies: - entities "^4.4.0" - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" - integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-is-inside@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - -path-to-regexp@2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45" - integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== - -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pkg-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pkg-up@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" - integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== - dependencies: - find-up "^3.0.0" - -postcss-calc@^8.2.3: - version "8.2.4" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" - integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== - dependencies: - postcss-selector-parser "^6.0.9" - postcss-value-parser "^4.2.0" - -postcss-colormin@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz#86c27c26ed6ba00d96c79e08f3ffb418d1d1988f" - integrity sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ== - dependencies: - browserslist "^4.21.4" - caniuse-api "^3.0.0" - colord "^2.9.1" - postcss-value-parser "^4.2.0" - -postcss-convert-values@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz#04998bb9ba6b65aa31035d669a6af342c5f9d393" - integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA== - dependencies: - browserslist "^4.21.4" - postcss-value-parser "^4.2.0" - -postcss-discard-comments@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696" - integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== - -postcss-discard-duplicates@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" - integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== - -postcss-discard-empty@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c" - integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== - -postcss-discard-overridden@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" - integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== - -postcss-discard-unused@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz#8974e9b143d887677304e558c1166d3762501142" - integrity sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw== - dependencies: - postcss-selector-parser "^6.0.5" - -postcss-loader@^7.0.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.0.tgz#05991c1e490d8ff86ef18358d87db3b5b2dcb5f5" - integrity sha512-qLAFjvR2BFNz1H930P7mj1iuWJFjGey/nVhimfOAAQ1ZyPpcClAxP8+A55Sl8mBvM+K2a9Pjgdj10KpANWrNfw== - dependencies: - cosmiconfig "^8.1.3" - jiti "^1.18.2" - klona "^2.0.6" - semver "^7.3.8" - -postcss-merge-idents@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz#7753817c2e0b75d0853b56f78a89771e15ca04a1" - integrity sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw== - dependencies: - cssnano-utils "^3.1.0" - postcss-value-parser "^4.2.0" - -postcss-merge-longhand@^5.1.7: - version "5.1.7" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16" - integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ== - dependencies: - postcss-value-parser "^4.2.0" - stylehacks "^5.1.1" - -postcss-merge-rules@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz#2f26fa5cacb75b1402e213789f6766ae5e40313c" - integrity sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g== - dependencies: - browserslist "^4.21.4" - caniuse-api "^3.0.0" - cssnano-utils "^3.1.0" - postcss-selector-parser "^6.0.5" - -postcss-minify-font-values@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" - integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-minify-gradients@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c" - integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== - dependencies: - colord "^2.9.1" - cssnano-utils "^3.1.0" - postcss-value-parser "^4.2.0" - -postcss-minify-params@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz#c06a6c787128b3208b38c9364cfc40c8aa5d7352" - integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw== - dependencies: - browserslist "^4.21.4" - cssnano-utils "^3.1.0" - postcss-value-parser "^4.2.0" - -postcss-minify-selectors@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6" - integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== - dependencies: - postcss-selector-parser "^6.0.5" - -postcss-modules-extract-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" - integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== - -postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== - dependencies: - icss-utils "^5.0.0" - -postcss-normalize-charset@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" - integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== - -postcss-normalize-display-values@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" - integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-positions@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92" - integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-repeat-style@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2" - integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-string@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" - integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-timing-functions@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" - integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-unicode@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz#f67297fca3fea7f17e0d2caa40769afc487aa030" - integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA== - dependencies: - browserslist "^4.21.4" - postcss-value-parser "^4.2.0" - -postcss-normalize-url@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" - integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== - dependencies: - normalize-url "^6.0.1" - postcss-value-parser "^4.2.0" - -postcss-normalize-whitespace@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa" - integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-ordered-values@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" - integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== - dependencies: - cssnano-utils "^3.1.0" - postcss-value-parser "^4.2.0" - -postcss-reduce-idents@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz#c89c11336c432ac4b28792f24778859a67dfba95" - integrity sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-reduce-initial@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz#798cd77b3e033eae7105c18c9d371d989e1382d6" - integrity sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg== - dependencies: - browserslist "^4.21.4" - caniuse-api "^3.0.0" - -postcss-reduce-transforms@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" - integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: - version "6.0.12" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz#2efae5ffab3c8bfb2b7fbf0c426e3bca616c4abb" - integrity sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-sort-media-queries@^4.2.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/postcss-sort-media-queries/-/postcss-sort-media-queries-4.4.1.tgz#04a5a78db3921eb78f28a1a781a2e68e65258128" - integrity sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw== - dependencies: - sort-css-media-queries "2.1.0" - -postcss-svgo@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" - integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== - dependencies: - postcss-value-parser "^4.2.0" - svgo "^2.7.0" - -postcss-unique-selectors@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6" - integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== - dependencies: - postcss-selector-parser "^6.0.5" - -postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss-zindex@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-5.1.0.tgz#4a5c7e5ff1050bd4c01d95b1847dfdcc58a496ff" - integrity sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A== - -postcss@^8.3.11, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4.19: - version "8.4.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.23.tgz#df0aee9ac7c5e53e1075c24a3613496f9e6552ab" - integrity sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA== - dependencies: - nanoid "^3.3.6" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== - -pretty-error@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" - integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== - dependencies: - lodash "^4.17.20" - renderkid "^3.0.0" - -pretty-time@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" - integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== - -prism-react-renderer@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz#786bb69aa6f73c32ba1ee813fbe17a0115435085" - integrity sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg== - -prismjs@^1.28.0: - version "1.29.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" - integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== - dependencies: - asap "~2.0.3" - -prompts@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -prop-types@^15.6.2, prop-types@^15.7.2: - version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.13.1" - -property-information@^5.0.0, property-information@^5.3.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" - integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== - dependencies: - xtend "^4.0.0" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@^1.3.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== - -punycode@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - -pupa@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" - integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== - dependencies: - escape-goat "^2.0.0" - -pure-color@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e" - integrity sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA== - -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -queue@6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65" - integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== - dependencies: - inherits "~2.0.3" - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -range-parser@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A== - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc@1.2.8, rc@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-base16-styling@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.6.0.tgz#ef2156d66cf4139695c8a167886cb69ea660792c" - integrity sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ== - dependencies: - base16 "^1.0.0" - lodash.curry "^4.0.1" - lodash.flow "^3.3.0" - pure-color "^1.2.0" - -react-dev-utils@^12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" - integrity sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ== - dependencies: - "@babel/code-frame" "^7.16.0" - address "^1.1.2" - browserslist "^4.18.1" - chalk "^4.1.2" - cross-spawn "^7.0.3" - detect-port-alt "^1.1.6" - escape-string-regexp "^4.0.0" - filesize "^8.0.6" - find-up "^5.0.0" - fork-ts-checker-webpack-plugin "^6.5.0" - global-modules "^2.0.0" - globby "^11.0.4" - gzip-size "^6.0.0" - immer "^9.0.7" - is-root "^2.1.0" - loader-utils "^3.2.0" - open "^8.4.0" - pkg-up "^3.1.0" - prompts "^2.4.2" - react-error-overlay "^6.0.11" - recursive-readdir "^2.2.2" - shell-quote "^1.7.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -react-dom@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.2" - -react-error-overlay@^6.0.11: - version "6.0.11" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" - integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== - -react-fast-compare@^3.0.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" - integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== - -react-fast-compare@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.1.tgz#53933d9e14f364281d6cba24bfed7a4afb808b5f" - integrity sha512-xTYf9zFim2pEif/Fw16dBiXpe0hoy5PxcD8+OwBnTtNLfIm3g6WxhKNurY+6OmdH1u6Ta/W/Vl6vjbYP1MFnDg== - -react-helmet-async@*, react-helmet-async@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-1.3.0.tgz#7bd5bf8c5c69ea9f02f6083f14ce33ef545c222e" - integrity sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg== - dependencies: - "@babel/runtime" "^7.12.5" - invariant "^2.2.4" - prop-types "^15.7.2" - react-fast-compare "^3.2.0" - shallowequal "^1.1.0" - -react-instantsearch-core@6.40.1: - version "6.40.1" - resolved "https://registry.yarnpkg.com/react-instantsearch-core/-/react-instantsearch-core-6.40.1.tgz#090d83f98b5df1a61a099331deaf94c438dd21ae" - integrity sha512-KzmOgJjDIrjn1kUziHkG+Dx3lqymKctNnklapiujHZL18svfdyIU+bphW8o4eXiHptTv7WYtEip4zhwxBO6BHA== - dependencies: - "@babel/runtime" "^7.1.2" - algoliasearch-helper "^3.13.2" - prop-types "^15.6.2" - react-fast-compare "^3.0.0" - -react-instantsearch-dom@^6.40.1: - version "6.40.1" - resolved "https://registry.yarnpkg.com/react-instantsearch-dom/-/react-instantsearch-dom-6.40.1.tgz#70b92028acec53dccbc49c23707909960917498a" - integrity sha512-VYwWmRcycGA4GhmkVawy6GQuD7UF6I6jN2ryYzFPVdIyCyCdPr2gyyoE4N9UeVRU5yXYGrQbZYtU9+UsX3uQCw== - dependencies: - "@babel/runtime" "^7.1.2" - algoliasearch-helper "^3.13.2" - classnames "^2.2.5" - prop-types "^15.6.2" - react-fast-compare "^3.0.0" - react-instantsearch-core "6.40.1" - -react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-json-view@^1.21.3: - version "1.21.3" - resolved "https://registry.yarnpkg.com/react-json-view/-/react-json-view-1.21.3.tgz#f184209ee8f1bf374fb0c41b0813cff54549c475" - integrity sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw== - dependencies: - flux "^4.0.1" - react-base16-styling "^0.6.0" - react-lifecycles-compat "^3.0.4" - react-textarea-autosize "^8.3.2" - -react-lifecycles-compat@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" - integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== - -react-loadable-ssr-addon-v5-slorber@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz#2cdc91e8a744ffdf9e3556caabeb6e4278689883" - integrity sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A== - dependencies: - "@babel/runtime" "^7.10.3" - -react-router-config@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988" - integrity sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg== - dependencies: - "@babel/runtime" "^7.1.2" - -react-router-dom@^5.3.3: - version "5.3.4" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" - integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== - dependencies: - "@babel/runtime" "^7.12.13" - history "^4.9.0" - loose-envify "^1.3.1" - prop-types "^15.6.2" - react-router "5.3.4" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - -react-router@5.3.4, react-router@^5.3.3: - version "5.3.4" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" - integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== - dependencies: - "@babel/runtime" "^7.12.13" - history "^4.9.0" - hoist-non-react-statics "^3.1.0" - loose-envify "^1.3.1" - path-to-regexp "^1.7.0" - prop-types "^15.6.2" - react-is "^16.6.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - -react-textarea-autosize@^8.3.2: - version "8.4.1" - resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.4.1.tgz#bcfc5462727014b808b14ee916c01e275e8a8335" - integrity sha512-aD2C+qK6QypknC+lCMzteOdIjoMbNlgSFmJjCV+DrfTPwp59i/it9mMNf2HDzvRjQgKAyBDPyLJhcrzElf2U4Q== - dependencies: - "@babel/runtime" "^7.20.13" - use-composed-ref "^1.3.0" - use-latest "^1.2.1" - -react@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -readable-stream@^2.0.1: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -reading-time@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.5.0.tgz#d2a7f1b6057cb2e169beaf87113cc3411b5bc5bb" - integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg== - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" - -recursive-readdir@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" - integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== - dependencies: - minimatch "^3.0.5" - -regenerate-unicode-properties@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" - integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.13.11: - version "0.13.11" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== - -regenerator-transform@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" - integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== - dependencies: - "@babel/runtime" "^7.8.4" - -regexpu-core@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" - integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== - dependencies: - "@babel/regjsgen" "^0.8.0" - regenerate "^1.4.2" - regenerate-unicode-properties "^10.1.0" - regjsparser "^0.9.1" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" - -registry-auth-token@^4.0.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.2.tgz#f02d49c3668884612ca031419491a13539e21fac" - integrity sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg== - dependencies: - rc "1.2.8" - -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - -regjsparser@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" - integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== - dependencies: - jsesc "~0.5.0" - -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== - -remark-emoji@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/remark-emoji/-/remark-emoji-2.2.0.tgz#1c702090a1525da5b80e15a8f963ef2c8236cac7" - integrity sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w== - dependencies: - emoticon "^3.2.0" - node-emoji "^1.10.0" - unist-util-visit "^2.0.3" - -remark-footnotes@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/remark-footnotes/-/remark-footnotes-2.0.0.tgz#9001c4c2ffebba55695d2dd80ffb8b82f7e6303f" - integrity sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ== - -remark-mdx@1.6.22: - version "1.6.22" - resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.6.22.tgz#06a8dab07dcfdd57f3373af7f86bd0e992108bbd" - integrity sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ== - dependencies: - "@babel/core" "7.12.9" - "@babel/helper-plugin-utils" "7.10.4" - "@babel/plugin-proposal-object-rest-spread" "7.12.1" - "@babel/plugin-syntax-jsx" "7.12.1" - "@mdx-js/util" "1.6.22" - is-alphabetical "1.0.4" - remark-parse "8.0.3" - unified "9.2.0" - -remark-parse@8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1" - integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q== - dependencies: - ccount "^1.0.0" - collapse-white-space "^1.0.2" - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - is-word-character "^1.0.0" - markdown-escapes "^1.0.0" - parse-entities "^2.0.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - trim "0.0.1" - trim-trailing-lines "^1.0.0" - unherit "^1.0.4" - unist-util-remove-position "^2.0.0" - vfile-location "^3.0.0" - xtend "^4.0.1" - -remark-squeeze-paragraphs@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead" - integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw== - dependencies: - mdast-squeeze-paragraphs "^4.0.0" - -renderkid@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" - integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== - dependencies: - css-select "^4.1.3" - dom-converter "^0.2.0" - htmlparser2 "^6.1.0" - lodash "^4.17.21" - strip-ansi "^6.0.1" - -repeat-string@^1.5.4: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -"require-like@>= 0.1.1": - version "0.1.2" - resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa" - integrity sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-pathname@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" - integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== - -resolve@^1.1.6, resolve@^1.14.2, resolve@^1.3.2: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== - dependencies: - is-core-module "^2.11.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== - dependencies: - lowercase-keys "^1.0.0" - -retry@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rtl-detect@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/rtl-detect/-/rtl-detect-1.0.4.tgz#40ae0ea7302a150b96bc75af7d749607392ecac6" - integrity sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ== - -rtlcss@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-3.5.0.tgz#c9eb91269827a102bac7ae3115dd5d049de636c3" - integrity sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A== - dependencies: - find-up "^5.0.0" - picocolors "^1.0.0" - postcss "^8.3.11" - strip-json-comments "^3.1.1" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -rxjs@^7.5.4: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -scheduler@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" - integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -schema-utils@2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" - integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== - dependencies: - "@types/json-schema" "^7.0.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" - -schema-utils@^2.6.5: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.2.tgz#36c10abca6f7577aeae136c804b0c741edeadc99" - integrity sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.1.tgz#eb2d042df8b01f4b5c276a2dfd41ba0faab72e8d" - integrity sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ== - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.9.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.1.0" - -section-matter@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" - integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== - dependencies: - extend-shallow "^2.0.1" - kind-of "^6.0.0" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== - -selfsigned@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61" - integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== - dependencies: - node-forge "^1" - -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== - dependencies: - semver "^6.3.0" - -semver@^5.4.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.2, semver@^7.3.4, semver@^7.3.7, semver@^7.3.8: - version "7.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" - integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== - dependencies: - lru-cache "^6.0.0" - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== - dependencies: - randombytes "^2.1.0" - -seroval@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/seroval/-/seroval-0.5.1.tgz#e6d17365cdaaae7e50815c7e0bcd7102facdadf3" - integrity sha512-ZfhQVB59hmIauJG5Ydynupy8KHyr5imGNtdDhbZG68Ufh1Ynkv9KOYOAABf71oVbQxJ8VkWnMHAjEHE7fWkH5g== - -serve-handler@^6.1.3: - version "6.1.5" - resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.5.tgz#a4a0964f5c55c7e37a02a633232b6f0d6f068375" - integrity sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg== - dependencies: - bytes "3.0.0" - content-disposition "0.5.2" - fast-url-parser "1.1.3" - mime-types "2.1.18" - minimatch "3.1.2" - path-is-inside "1.0.2" - path-to-regexp "2.2.1" - range-parser "1.2.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shallowequal@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" - integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@^1.7.3: - version "1.8.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== - -shelljs@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -sirv@^1.0.7: - version "1.0.19" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49" - integrity sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ== - dependencies: - "@polka/url" "^1.0.0-next.20" - mrmime "^1.0.0" - totalist "^1.0.0" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -sitemap@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-7.1.1.tgz#eeed9ad6d95499161a3eadc60f8c6dce4bea2bef" - integrity sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg== - dependencies: - "@types/node" "^17.0.5" - "@types/sax" "^1.2.1" - arg "^5.0.0" - sax "^1.2.4" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - -sockjs@^0.3.24: - version "0.3.24" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== - dependencies: - faye-websocket "^0.11.3" - uuid "^8.3.2" - websocket-driver "^0.7.4" - -solid-js@^1.6.9: - version "1.7.7" - resolved "https://registry.yarnpkg.com/solid-js/-/solid-js-1.7.7.tgz#c8b13ce5429983eae10010e11886432588bb4b5e" - integrity sha512-SPdYVke/Z6Za24PBTbULyQYPrhGO1ZbPany76atO2zF2dmYn2pCotbsw1JtlgWnr9dK2JbwPGnA3ODTGPLhZNw== - dependencies: - csstype "^3.1.0" - seroval "^0.5.0" - -sort-css-media-queries@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/sort-css-media-queries/-/sort-css-media-queries-2.1.0.tgz#7c85e06f79826baabb232f5560e9745d7a78c4ce" - integrity sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA== - -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.5.0: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -space-separated-tokens@^1.0.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" - integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -state-toggle@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" - integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - -std-env@^3.0.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.3.3.tgz#a54f06eb245fdcfef53d56f3c0251f1d5c3d01fe" - integrity sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg== - -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -stringify-object@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" - integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== - dependencies: - ansi-regex "^6.0.1" - -strip-bom-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" - integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== - -style-to-object@0.3.0, style-to-object@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" - integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== - dependencies: - inline-style-parser "0.1.1" - -stylehacks@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9" - integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw== - dependencies: - browserslist "^4.21.4" - postcss-selector-parser "^6.0.4" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -svg-parser@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" - integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== - -svgo@^2.7.0, svgo@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" - integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== - dependencies: - "@trysound/sax" "0.2.0" - commander "^7.2.0" - css-select "^4.1.3" - css-tree "^1.1.3" - csso "^4.2.0" - picocolors "^1.0.0" - stable "^0.1.8" - -tapable@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - -terser-webpack-plugin@^5.3.3, terser-webpack-plugin@^5.3.7: - version "5.3.8" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.8.tgz#415e03d2508f7de63d59eca85c5d102838f06610" - integrity sha512-WiHL3ElchZMsK27P8uIUh4604IgJyAW47LVXGbEoB21DbQcZ+OuMpGjVYnEUaqcWM6dO8uS2qUbA7LSCWqvsbg== - dependencies: - "@jridgewell/trace-mapping" "^0.3.17" - jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.1" - terser "^5.16.8" - -terser@^5.10.0, terser@^5.16.8: - version "5.17.3" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.17.3.tgz#7f908f16b3cdf3f6c0f8338e6c1c674837f90d25" - integrity sha512-AudpAZKmZHkG9jueayypz4duuCFJMMNGRMwaPvQKWfxKedh8Z2x3OCoDqIIi1xx5+iwx1u6Au8XQcc9Lke65Yg== - dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -tiny-invariant@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" - integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== - -tiny-warning@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" - integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -totalist@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" - integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -trim-trailing-lines@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" - integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== - -trim@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" - integrity sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ== - -trough@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" - integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== - -tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" - integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^2.5.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typescript@^4.7.4: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - -ua-parser-js@^0.7.30: - version "0.7.35" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.35.tgz#8bda4827be4f0b1dda91699a29499575a1f1d307" - integrity sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g== - -unherit@^1.0.4: - version "1.1.3" - resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" - integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== - dependencies: - inherits "^2.0.0" - xtend "^4.0.0" - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" - integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== - -unified@9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" - integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-buffer "^2.0.0" - is-plain-obj "^2.0.0" - trough "^1.0.0" - vfile "^4.0.0" - -unified@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.2.tgz#67649a1abfc3ab85d2969502902775eb03146975" - integrity sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ== - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-buffer "^2.0.0" - is-plain-obj "^2.0.0" - trough "^1.0.0" - vfile "^4.0.0" - -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - -unist-builder@2.0.3, unist-builder@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" - integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== - -unist-util-generated@^1.0.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" - integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== - -unist-util-is@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" - integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== - -unist-util-position@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" - integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== - -unist-util-remove-position@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" - integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== - dependencies: - unist-util-visit "^2.0.0" - -unist-util-remove@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-2.1.0.tgz#b0b4738aa7ee445c402fda9328d604a02d010588" - integrity sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q== - dependencies: - unist-util-is "^4.0.0" - -unist-util-stringify-position@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" - integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== - dependencies: - "@types/unist" "^2.0.2" - -unist-util-visit-parents@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" - integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - -unist-util-visit@2.0.3, unist-util-visit@^2.0.0, unist-util-visit@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" - integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - unist-util-visit-parents "^3.0.0" - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -update-browserslist-db@^1.0.10: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -update-notifier@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" - integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== - dependencies: - boxen "^5.0.0" - chalk "^4.1.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.4.0" - is-npm "^5.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.1.0" - pupa "^2.1.1" - semver "^7.3.4" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -url-loader@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" - integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== - dependencies: - loader-utils "^2.0.0" - mime-types "^2.1.27" - schema-utils "^3.0.0" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== - dependencies: - prepend-http "^2.0.0" - -use-composed-ref@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda" - integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ== - -use-isomorphic-layout-effect@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" - integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== - -use-latest@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.1.tgz#d13dfb4b08c28e3e33991546a2cee53e14038cf2" - integrity sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw== - dependencies: - use-isomorphic-layout-effect "^1.1.1" - -use-sync-external-store@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" - integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== - -utility-types@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" - integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -value-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" - integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -vfile-location@^3.0.0, vfile-location@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" - integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== - -vfile-message@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" - integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== - dependencies: - "@types/unist" "^2.0.0" - unist-util-stringify-position "^2.0.0" - -vfile@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" - integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== - dependencies: - "@types/unist" "^2.0.0" - is-buffer "^2.0.0" - unist-util-stringify-position "^2.0.0" - vfile-message "^2.0.0" - -wait-on@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.1.tgz#16bbc4d1e4ebdd41c5b4e63a2e16dbd1f4e5601e" - integrity sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw== - dependencies: - axios "^0.25.0" - joi "^17.6.0" - lodash "^4.17.21" - minimist "^1.2.5" - rxjs "^7.5.4" - -watchpack@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" - integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -web-namespaces@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" - integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -webpack-bundle-analyzer@^4.5.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.8.0.tgz#951b8aaf491f665d2ae325d8b84da229157b1d04" - integrity sha512-ZzoSBePshOKhr+hd8u6oCkZVwpVaXgpw23ScGLFpR6SjYI7+7iIWYarjN6OEYOfRt8o7ZyZZQk0DuMizJ+LEIg== - dependencies: - "@discoveryjs/json-ext" "0.5.7" - acorn "^8.0.4" - acorn-walk "^8.0.0" - chalk "^4.1.0" - commander "^7.2.0" - gzip-size "^6.0.0" - lodash "^4.17.20" - opener "^1.5.2" - sirv "^1.0.7" - ws "^7.3.1" - -webpack-dev-middleware@^5.3.1: - version "5.3.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" - integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== - dependencies: - colorette "^2.0.10" - memfs "^3.4.3" - mime-types "^2.1.31" - range-parser "^1.2.1" - schema-utils "^4.0.0" - -webpack-dev-server@^4.9.3: - version "4.15.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.0.tgz#87ba9006eca53c551607ea0d663f4ae88be7af21" - integrity sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ== - dependencies: - "@types/bonjour" "^3.5.9" - "@types/connect-history-api-fallback" "^1.3.5" - "@types/express" "^4.17.13" - "@types/serve-index" "^1.9.1" - "@types/serve-static" "^1.13.10" - "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.1" - ansi-html-community "^0.0.8" - bonjour-service "^1.0.11" - chokidar "^3.5.3" - colorette "^2.0.10" - compression "^1.7.4" - connect-history-api-fallback "^2.0.0" - default-gateway "^6.0.3" - express "^4.17.3" - graceful-fs "^4.2.6" - html-entities "^2.3.2" - http-proxy-middleware "^2.0.3" - ipaddr.js "^2.0.1" - launch-editor "^2.6.0" - open "^8.0.9" - p-retry "^4.5.0" - rimraf "^3.0.2" - schema-utils "^4.0.0" - selfsigned "^2.1.1" - serve-index "^1.9.1" - sockjs "^0.3.24" - spdy "^4.0.2" - webpack-dev-middleware "^5.3.1" - ws "^8.13.0" - -webpack-merge@^5.8.0: - version "5.8.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" - integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== - dependencies: - clone-deep "^4.0.1" - wildcard "^2.0.0" - -webpack-sources@^3.2.2, webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== - -webpack@^5.73.0: - version "5.82.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.82.1.tgz#8f38c78e53467556e8a89054ebd3ef6e9f67dbab" - integrity sha512-C6uiGQJ+Gt4RyHXXYt+v9f+SN1v83x68URwgxNQ98cvH8kxiuywWGP4XeNZ1paOzZ63aY3cTciCEQJNFUljlLw== - dependencies: - "@types/eslint-scope" "^3.7.3" - "@types/estree" "^1.0.0" - "@webassemblyjs/ast" "^1.11.5" - "@webassemblyjs/wasm-edit" "^1.11.5" - "@webassemblyjs/wasm-parser" "^1.11.5" - acorn "^8.7.1" - acorn-import-assertions "^1.7.6" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.14.0" - es-module-lexer "^1.2.1" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.1.2" - tapable "^2.1.1" - terser-webpack-plugin "^5.3.7" - watchpack "^2.4.0" - webpack-sources "^3.2.3" - -webpackbar@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-5.0.2.tgz#d3dd466211c73852741dfc842b7556dcbc2b0570" - integrity sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ== - dependencies: - chalk "^4.1.0" - consola "^2.15.3" - pretty-time "^1.1.0" - std-env "^3.0.1" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -widest-line@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" - integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== - dependencies: - string-width "^5.0.1" - -wildcard@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" - integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.0.1: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^7.3.1: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -ws@^8.13.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== - -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - -xml-js@^1.6.11: - version "1.6.11" - resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" - integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== - dependencies: - sax "^1.2.4" - -xtend@^4.0.0, xtend@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -zwitch@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" - integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== diff --git a/playground/package-lock.json b/playground/package-lock.json new file mode 100644 index 0000000..61ffc6c --- /dev/null +++ b/playground/package-lock.json @@ -0,0 +1,3693 @@ +{ + "name": "playground", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "classnames": "^2.5.1", + "date-fns": "^3.6.0", + "gray-matter": "^4.0.3", + "next": "15.0.2", + "react": "19.0.0-rc-02c0e824-20241028", + "react-dom": "19.0.0-rc-02c0e824-20241028", + "remark": "^15.0.1", + "remark-html": "^16.0.1", + "zod": "^3.23.8" + }, + "devDependencies": { + "@types/node": "^20.14.8", + "@types/react": "npm:types-react@19.0.0-rc.1", + "@types/react-dom": "npm:types-react-dom@19.0.0-rc.1", + "autoprefixer": "^10.4.19", + "postcss": "^8.4.38", + "tailwindcss": "^3.4.4", + "typescript": "^5.5.2" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@next/env": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.2.tgz", + "integrity": "sha512-c0Zr0ModK5OX7D4ZV8Jt/wqoXtitLNPwUfG9zElCZztdaZyNVnN40rDXVZ/+FGuR4CcNV5AEfM6N8f+Ener7Dg==", + "license": "MIT" + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.2.tgz", + "integrity": "sha512-GK+8w88z+AFlmt+ondytZo2xpwlfAR8U6CRwXancHImh6EdGfHMIrTSCcx5sOSBei00GyLVL0ioo1JLKTfprgg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.2.tgz", + "integrity": "sha512-KUpBVxIbjzFiUZhiLIpJiBoelqzQtVZbdNNsehhUn36e2YzKHphnK8eTUW1s/4aPy5kH/UTid8IuVbaOpedhpw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.2.tgz", + "integrity": "sha512-9J7TPEcHNAZvwxXRzOtiUvwtTD+fmuY0l7RErf8Yyc7kMpE47MIQakl+3jecmkhOoIyi/Rp+ddq7j4wG6JDskQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.2.tgz", + "integrity": "sha512-BjH4ZSzJIoTTZRh6rG+a/Ry4SW0HlizcPorqNBixBWc3wtQtj4Sn9FnRZe22QqrPnzoaW0ctvSz4FaH4eGKMww==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.2.tgz", + "integrity": "sha512-i3U2TcHgo26sIhcwX/Rshz6avM6nizrZPvrDVDY1bXcLH1ndjbO8zuC7RoHp0NSK7wjJMPYzm7NYL1ksSKFreA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.2.tgz", + "integrity": "sha512-AMfZfSVOIR8fa+TXlAooByEF4OB00wqnms1sJ1v+iu8ivwvtPvnkwdzzFMpsK5jA2S9oNeeQ04egIWVb4QWmtQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.2.tgz", + "integrity": "sha512-JkXysDT0/hEY47O+Hvs8PbZAeiCQVxKfGtr4GUpNAhlG2E0Mkjibuo8ryGD29Qb5a3IOnKYNoZlh/MyKd2Nbww==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.2.tgz", + "integrity": "sha512-foaUL0NqJY/dX0Pi/UcZm5zsmSk5MtP/gxx3xOPyREkMFN+CTjctPfu3QaqrQHinaKdPnMWPJDKt4VjDfTBe/Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.17.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", + "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/react": { + "name": "types-react", + "version": "19.0.0-rc.1", + "resolved": "https://registry.npmjs.org/types-react/-/types-react-19.0.0-rc.1.tgz", + "integrity": "sha512-RshndUfqTW6K3STLPis8BtAYCGOkMbtvYsi90gmVNDZBXUyUc5juf2PE9LfS/JmOlUIRO8cWTS/1MTnmhjDqyQ==", + "dev": true, + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "name": "types-react-dom", + "version": "19.0.0-rc.1", + "resolved": "https://registry.npmjs.org/types-react-dom/-/types-react-dom-19.0.0-rc.1.tgz", + "integrity": "sha512-VSLZJl8VXCD0fAWp7DUTFUDCcZ8DVXOQmjhJMD03odgeFmu14ZQJHCXeETm3BEAhJqfgJaFkLnGkQv88sRx0fQ==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "license": "ISC" + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001680", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz", + "integrity": "sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz", + "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/date-fns": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", + "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.60", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.60.tgz", + "integrity": "sha512-HcraRUkTKJ+8yA3b10i9qvhUlPBRDlKjn1XGek1zDGVfAKcvi8TsUnImGqLiEm9j6ZulxXIWWIo9BmbkbCTGgA==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "license": "MIT", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-sanitize": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-5.0.2.tgz", + "integrity": "sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "unist-util-position": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.3.tgz", + "integrity": "sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT", + "optional": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", + "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz", + "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.2.tgz", + "integrity": "sha512-xKxhkB62vwHUuuxHe9Xqty3UaAsizV2YKq5OV344u3hFBbf8zIYrhYOWhAQb94MtMPkjTOzzjJ/hid9/dR5vFA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", + "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/next": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/next/-/next-15.0.2.tgz", + "integrity": "sha512-rxIWHcAu4gGSDmwsELXacqAPUk+j8dV/A9cDF5fsiCMpkBDYkO2AEaL1dfD+nNmDiU6QMCFN8Q30VEKapT9UHQ==", + "license": "MIT", + "dependencies": { + "@next/env": "15.0.2", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.13", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=18.18.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "15.0.2", + "@next/swc-darwin-x64": "15.0.2", + "@next/swc-linux-arm64-gnu": "15.0.2", + "@next/swc-linux-arm64-musl": "15.0.2", + "@next/swc-linux-x64-gnu": "15.0.2", + "@next/swc-linux-x64-musl": "15.0.2", + "@next/swc-win32-arm64-msvc": "15.0.2", + "@next/swc-win32-x64-msvc": "15.0.2", + "sharp": "^0.33.5" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-02c0e824-20241028", + "react-dom": "^18.2.0 || 19.0.0-rc-02c0e824-20241028", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "19.0.0-rc-02c0e824-20241028", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0-rc-02c0e824-20241028.tgz", + "integrity": "sha512-GbZ7hpPHQMiEu53BqEaPQVM/4GG4hARo+mqEEnx4rYporDvNvUjutiAFxYFSbu6sgHwcr7LeFv8htEOwALVA2A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.0.0-rc-02c0e824-20241028", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0-rc-02c0e824-20241028.tgz", + "integrity": "sha512-LrZf3DfHL6Fs07wwlUCHrzFTCMM19yA99MvJpfLokN4I2nBAZvREGZjZAn8VPiSfN72+i9j1eL4wB8gC695F3Q==", + "license": "MIT", + "dependencies": { + "scheduler": "0.25.0-rc-02c0e824-20241028" + }, + "peerDependencies": { + "react": "19.0.0-rc-02c0e824-20241028" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/remark": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz", + "integrity": "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-html": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-16.0.1.tgz", + "integrity": "sha512-B9JqA5i0qZe0Nsf49q3OXyGvyXuZFDzAP2iOFLEumymuYJITVpiH1IgsTEwTpdptDmZlMDMWeDmSawdaJIGCXQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "hast-util-sanitize": "^5.0.0", + "hast-util-to-html": "^9.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.25.0-rc-02c0e824-20241028", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0-rc-02c0e824-20241028.tgz", + "integrity": "sha512-GysnKjmMSaWcwsKTLzeJO0IhU3EyIiC0ivJKE6yDNLqt3IMxDByx8b6lSNXRNdN+ULUY0WLLjSPaZ0LuU/GnTg==", + "license": "MIT" + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.15", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.15.tgz", + "integrity": "sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yaml": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", + "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/playground/package.json b/playground/package.json new file mode 100644 index 0000000..f811158 --- /dev/null +++ b/playground/package.json @@ -0,0 +1,28 @@ +{ + "private": true, + "scripts": { + "dev": "next dev --turbopack", + "build": "next build", + "start": "next start" + }, + "dependencies": { + "classnames": "^2.5.1", + "date-fns": "^3.6.0", + "gray-matter": "^4.0.3", + "next": "15.0.2", + "react": "19.0.0-rc-02c0e824-20241028", + "react-dom": "19.0.0-rc-02c0e824-20241028", + "remark": "^15.0.1", + "remark-html": "^16.0.1", + "zod": "^3.23.8" + }, + "devDependencies": { + "@types/node": "^20.14.8", + "@types/react": "npm:types-react@19.0.0-rc.1", + "@types/react-dom": "npm:types-react-dom@19.0.0-rc.1", + "autoprefixer": "^10.4.19", + "postcss": "^8.4.38", + "tailwindcss": "^3.4.4", + "typescript": "^5.5.2" + } +} diff --git a/playground/postcss.config.js b/playground/postcss.config.js new file mode 100644 index 0000000..12a703d --- /dev/null +++ b/playground/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/playground/public/assets/blog/authors/p1.jpeg b/playground/public/assets/blog/authors/p1.jpeg new file mode 100644 index 0000000..c365754 Binary files /dev/null and b/playground/public/assets/blog/authors/p1.jpeg differ diff --git a/playground/public/assets/blog/authors/p2.jpeg b/playground/public/assets/blog/authors/p2.jpeg new file mode 100644 index 0000000..9def1b7 Binary files /dev/null and b/playground/public/assets/blog/authors/p2.jpeg differ diff --git a/playground/public/assets/blog/authors/p3.jpeg b/playground/public/assets/blog/authors/p3.jpeg new file mode 100644 index 0000000..1937a4d Binary files /dev/null and b/playground/public/assets/blog/authors/p3.jpeg differ diff --git a/playground/public/assets/blog/authors/p4.jpeg b/playground/public/assets/blog/authors/p4.jpeg new file mode 100644 index 0000000..665719b Binary files /dev/null and b/playground/public/assets/blog/authors/p4.jpeg differ diff --git a/playground/public/assets/blog/covers/camembert.jpeg b/playground/public/assets/blog/covers/camembert.jpeg new file mode 100644 index 0000000..673490b Binary files /dev/null and b/playground/public/assets/blog/covers/camembert.jpeg differ diff --git a/playground/public/assets/blog/covers/cheddar.jpeg b/playground/public/assets/blog/covers/cheddar.jpeg new file mode 100644 index 0000000..2e32e77 Binary files /dev/null and b/playground/public/assets/blog/covers/cheddar.jpeg differ diff --git a/playground/public/assets/blog/covers/comte.jpeg b/playground/public/assets/blog/covers/comte.jpeg new file mode 100644 index 0000000..cb9dd7c Binary files /dev/null and b/playground/public/assets/blog/covers/comte.jpeg differ diff --git a/playground/public/assets/pdfs/Brie.pdf b/playground/public/assets/pdfs/Brie.pdf new file mode 100644 index 0000000..3a14d6b Binary files /dev/null and b/playground/public/assets/pdfs/Brie.pdf differ diff --git a/playground/public/assets/pdfs/Coulommiers.pdf b/playground/public/assets/pdfs/Coulommiers.pdf new file mode 100644 index 0000000..90417fa Binary files /dev/null and b/playground/public/assets/pdfs/Coulommiers.pdf differ diff --git a/playground/public/assets/pdfs/Parmesan.pdf b/playground/public/assets/pdfs/Parmesan.pdf new file mode 100644 index 0000000..2897c67 Binary files /dev/null and b/playground/public/assets/pdfs/Parmesan.pdf differ diff --git "a/playground/public/favicon/DALL\302\267E 2024-11-15 11.27.43 - A visually engaging digital artwork depicting the story of Camembert cheese. The scene features a rustic French countryside, with a small 18th-century.webp" "b/playground/public/favicon/DALL\302\267E 2024-11-15 11.27.43 - A visually engaging digital artwork depicting the story of Camembert cheese. The scene features a rustic French countryside, with a small 18th-century.webp" new file mode 100644 index 0000000..bc77171 Binary files /dev/null and "b/playground/public/favicon/DALL\302\267E 2024-11-15 11.27.43 - A visually engaging digital artwork depicting the story of Camembert cheese. The scene features a rustic French countryside, with a small 18th-century.webp" differ diff --git a/playground/public/favicon/android-chrome-192x192.png b/playground/public/favicon/android-chrome-192x192.png new file mode 100644 index 0000000..2f07282 Binary files /dev/null and b/playground/public/favicon/android-chrome-192x192.png differ diff --git a/playground/public/favicon/android-chrome-512x512.png b/playground/public/favicon/android-chrome-512x512.png new file mode 100644 index 0000000..dbb0fae Binary files /dev/null and b/playground/public/favicon/android-chrome-512x512.png differ diff --git a/playground/public/favicon/apple-touch-icon.png b/playground/public/favicon/apple-touch-icon.png new file mode 100644 index 0000000..8f4033b Binary files /dev/null and b/playground/public/favicon/apple-touch-icon.png differ diff --git a/playground/public/favicon/browserconfig.xml b/playground/public/favicon/browserconfig.xml new file mode 100644 index 0000000..9824d87 --- /dev/null +++ b/playground/public/favicon/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #000000 + + + diff --git a/playground/public/favicon/favicon-16x16.png b/playground/public/favicon/favicon-16x16.png new file mode 100644 index 0000000..29deaf6 Binary files /dev/null and b/playground/public/favicon/favicon-16x16.png differ diff --git a/playground/public/favicon/favicon-32x32.png b/playground/public/favicon/favicon-32x32.png new file mode 100644 index 0000000..e3b4277 Binary files /dev/null and b/playground/public/favicon/favicon-32x32.png differ diff --git a/playground/public/favicon/favicon.ico b/playground/public/favicon/favicon.ico new file mode 100644 index 0000000..ea2f437 Binary files /dev/null and b/playground/public/favicon/favicon.ico differ diff --git a/playground/public/favicon/mstile-150x150.png b/playground/public/favicon/mstile-150x150.png new file mode 100644 index 0000000..f2dfd90 Binary files /dev/null and b/playground/public/favicon/mstile-150x150.png differ diff --git a/playground/public/favicon/safari-pinned-tab.svg b/playground/public/favicon/safari-pinned-tab.svg new file mode 100644 index 0000000..72ab6e0 --- /dev/null +++ b/playground/public/favicon/safari-pinned-tab.svg @@ -0,0 +1,33 @@ + + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + + + + + + diff --git a/playground/public/favicon/site.webmanifest b/playground/public/favicon/site.webmanifest new file mode 100644 index 0000000..a672d9a --- /dev/null +++ b/playground/public/favicon/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "Next.js", + "short_name": "Next.js", + "icons": [ + { + "src": "/favicons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/favicons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#000000", + "background_color": "#000000", + "display": "standalone" +} diff --git a/playground/src/app/_components/alert.tsx b/playground/src/app/_components/alert.tsx new file mode 100644 index 0000000..ecc21bf --- /dev/null +++ b/playground/src/app/_components/alert.tsx @@ -0,0 +1,48 @@ +import Container from "@/app/_components/container"; +import { EXAMPLE_PATH } from "@/lib/constants"; +import cn from "classnames"; + +type Props = { + preview?: boolean; +}; + +const Alert = ({ preview }: Props) => { + return ( +
+ +
+ {preview ? ( + <> + This page is a preview.{" "} + + Click here + {" "} + to exit preview mode. + + ) : ( + <> + The source code for this blog is{" "} + + available on GitHub + + . + + )} +
+
+
+ ); +}; + +export default Alert; diff --git a/playground/src/app/_components/avatar.tsx b/playground/src/app/_components/avatar.tsx new file mode 100644 index 0000000..9c2ea4d --- /dev/null +++ b/playground/src/app/_components/avatar.tsx @@ -0,0 +1,15 @@ +type Props = { + name: string; + picture: string; +}; + +const Avatar = ({ name, picture }: Props) => { + return ( +
+ {name} +
{name}
+
+ ); +}; + +export default Avatar; diff --git a/playground/src/app/_components/cheese-details.tsx b/playground/src/app/_components/cheese-details.tsx new file mode 100644 index 0000000..bd1a867 --- /dev/null +++ b/playground/src/app/_components/cheese-details.tsx @@ -0,0 +1,62 @@ +"use client"; + +import { Cheese } from "../interfaces/cheese"; +import { useState, useEffect } from "react"; + +type Props = { + cheese: Cheese; +}; + +export default function CheeseDetails({ cheese }: Props) { + const [isLoading, setIsLoading] = useState(true); + const excludedProperties = ["slug", "name", "description", "price"]; + + useEffect(() => { + const timer = setTimeout(() => { + setIsLoading(false); + }, 500); + + return () => clearTimeout(timer); + }, []); + + const details = Object.entries(cheese) + .filter( + ([key, value]) => + !excludedProperties.includes(key) && value !== "NA" && value !== "" + ) + .map(([key, value]) => ({ + key: key.replace(/_/g, " ").replace(/\b\w/g, (l) => l.toUpperCase()), + value: typeof value === "boolean" ? String(value) : value, + })); + + if (isLoading) { + return ( +
+ {[...Array(6)].map((_, i) => ( +
+
+
+
+ ))} +
+ ); + } + + return ( +
+ {details.map(({ key, value }) => ( +
+
+ {key} +
+
+ {value} +
+
+ ))} +
+ ); +} diff --git a/playground/src/app/_components/cheese-grid.tsx b/playground/src/app/_components/cheese-grid.tsx new file mode 100644 index 0000000..3f179cc --- /dev/null +++ b/playground/src/app/_components/cheese-grid.tsx @@ -0,0 +1,28 @@ +import Link from "next/link"; +import type { Cheese } from "@/app/interfaces/cheese"; + +type Props = { + cheeses: Cheese[]; +}; + +export function CheeseGrid({ cheeses }: Props) { + return ( +
+ {cheeses.map((cheese) => ( + +
+

{cheese.name}

+

+ {cheese.description} +

+

${cheese.price}

+
+ + ))} +
+ ); +} diff --git a/playground/src/app/_components/container.tsx b/playground/src/app/_components/container.tsx new file mode 100644 index 0000000..17458eb --- /dev/null +++ b/playground/src/app/_components/container.tsx @@ -0,0 +1,9 @@ +type Props = { + children?: React.ReactNode; +}; + +const Container = ({ children }: Props) => { + return
{children}
; +}; + +export default Container; diff --git a/playground/src/app/_components/cover-image.tsx b/playground/src/app/_components/cover-image.tsx new file mode 100644 index 0000000..dc1c092 --- /dev/null +++ b/playground/src/app/_components/cover-image.tsx @@ -0,0 +1,36 @@ +import cn from "classnames"; +import Link from "next/link"; +import Image from "next/image"; + +type Props = { + title: string; + src: string; + slug?: string; +}; + +const CoverImage = ({ title, src, slug }: Props) => { + const image = ( + {`Cover + ); + return ( +
+ {slug ? ( + + {image} + + ) : ( + image + )} +
+ ); +}; + +export default CoverImage; diff --git a/playground/src/app/_components/date-formatter.tsx b/playground/src/app/_components/date-formatter.tsx new file mode 100644 index 0000000..b092f5e --- /dev/null +++ b/playground/src/app/_components/date-formatter.tsx @@ -0,0 +1,12 @@ +import { parseISO, format } from "date-fns"; + +type Props = { + dateString: string; +}; + +const DateFormatter = ({ dateString }: Props) => { + const date = parseISO(dateString); + return ; +}; + +export default DateFormatter; diff --git a/playground/src/app/_components/header.tsx b/playground/src/app/_components/header.tsx new file mode 100644 index 0000000..0aa782e --- /dev/null +++ b/playground/src/app/_components/header.tsx @@ -0,0 +1,14 @@ +import Link from "next/link"; + +const Header = () => { + return ( +

+ + Blog + + . +

+ ); +}; + +export default Header; diff --git a/playground/src/app/_components/hero-post.tsx b/playground/src/app/_components/hero-post.tsx new file mode 100644 index 0000000..09b739f --- /dev/null +++ b/playground/src/app/_components/hero-post.tsx @@ -0,0 +1,47 @@ +import Avatar from "@/app/_components/avatar"; +import CoverImage from "@/app/_components/cover-image"; +import { type Author } from "@/app/interfaces/author"; +import Link from "next/link"; +import DateFormatter from "./date-formatter"; + +type Props = { + title: string; + coverImage: string; + date: string; + excerpt: string; + author: Author; + slug: string; +}; + +export function HeroPost({ + title, + coverImage, + date, + excerpt, + author, + slug, +}: Props) { + return ( +
+
+ +
+
+
+

+ + {title} + +

+
+ +
+
+
+

{excerpt}

+ +
+
+
+ ); +} diff --git a/playground/src/app/_components/main-nav.tsx b/playground/src/app/_components/main-nav.tsx new file mode 100644 index 0000000..700dc4f --- /dev/null +++ b/playground/src/app/_components/main-nav.tsx @@ -0,0 +1,19 @@ +import Link from "next/link"; + +export default function MainNav() { + return ( + + ); +} diff --git a/playground/src/app/_components/markdown-styles.module.css b/playground/src/app/_components/markdown-styles.module.css new file mode 100644 index 0000000..95d4f8b --- /dev/null +++ b/playground/src/app/_components/markdown-styles.module.css @@ -0,0 +1,18 @@ +.markdown { + @apply text-lg leading-relaxed; +} + +.markdown p, +.markdown ul, +.markdown ol, +.markdown blockquote { + @apply my-6; +} + +.markdown h2 { + @apply text-3xl mt-12 mb-4 leading-snug; +} + +.markdown h3 { + @apply text-2xl mt-8 mb-4 leading-snug; +} diff --git a/playground/src/app/_components/more-stories.tsx b/playground/src/app/_components/more-stories.tsx new file mode 100644 index 0000000..9e7f9a6 --- /dev/null +++ b/playground/src/app/_components/more-stories.tsx @@ -0,0 +1,29 @@ +import { Post } from "@/app/interfaces/post"; +import { PostPreview } from "./post-preview"; + +type Props = { + posts: Post[]; +}; + +export function MoreStories({ posts }: Props) { + return ( +
+

+ More Stories +

+
+ {posts.map((post) => ( + + ))} +
+
+ ); +} diff --git a/playground/src/app/_components/pagination.tsx b/playground/src/app/_components/pagination.tsx new file mode 100644 index 0000000..5cb875d --- /dev/null +++ b/playground/src/app/_components/pagination.tsx @@ -0,0 +1,87 @@ +import Link from "next/link"; +import cn from "classnames"; + +type Props = { + currentPage: number; + totalPages: number; + baseUrl: string; +}; + +export function Pagination({ currentPage, totalPages, baseUrl }: Props) { + const getPageNumbers = () => { + const pages: (number | string)[] = []; + const delta = 2; // Pages to show before and after current page + + // Always add page 1 + pages.push(1); + + // Calculate range + const rangeStart = Math.max(2, currentPage - delta); + const rangeEnd = Math.min(totalPages - 1, currentPage + delta); + + // Add first ellipsis if needed + if (rangeStart > 2) { + pages.push("..."); + } + + // Add range pages + for (let i = rangeStart; i <= rangeEnd; i++) { + pages.push(i); + } + + // Add last ellipsis if needed + if (rangeEnd < totalPages - 1) { + pages.push("..."); + } + + // Add last page if not already included + if (totalPages !== 1) { + pages.push(totalPages); + } + + return pages; + }; + + return ( +
+ {currentPage > 1 && ( + + Previous + + )} + + {getPageNumbers().map((pageNum, index) => + pageNum === "..." ? ( + + ... + + ) : ( + + {pageNum} + + ) + )} + + {currentPage < totalPages && ( + + Next + + )} +
+ ); +} diff --git a/playground/src/app/_components/post-body.tsx b/playground/src/app/_components/post-body.tsx new file mode 100644 index 0000000..065883c --- /dev/null +++ b/playground/src/app/_components/post-body.tsx @@ -0,0 +1,16 @@ +import markdownStyles from "./markdown-styles.module.css"; + +type Props = { + content: string; +}; + +export function PostBody({ content }: Props) { + return ( +
+
+
+ ); +} diff --git a/playground/src/app/_components/post-header.tsx b/playground/src/app/_components/post-header.tsx new file mode 100644 index 0000000..8134ed5 --- /dev/null +++ b/playground/src/app/_components/post-header.tsx @@ -0,0 +1,34 @@ +import Avatar from "./avatar"; +import CoverImage from "./cover-image"; +import DateFormatter from "./date-formatter"; +import { PostTitle } from "@/app/_components/post-title"; +import { type Author } from "@/app/interfaces/author"; + +type Props = { + title: string; + coverImage: string; + date: string; + author: Author; +}; + +export function PostHeader({ title, coverImage, date, author }: Props) { + return ( + <> + {title} +
+ +
+
+ +
+
+
+ +
+
+ +
+
+ + ); +} diff --git a/playground/src/app/_components/post-preview.tsx b/playground/src/app/_components/post-preview.tsx new file mode 100644 index 0000000..914f65a --- /dev/null +++ b/playground/src/app/_components/post-preview.tsx @@ -0,0 +1,41 @@ +import { type Author } from "@/app/interfaces/author"; +import Link from "next/link"; +import Avatar from "./avatar"; +import CoverImage from "./cover-image"; +import DateFormatter from "./date-formatter"; + +type Props = { + title: string; + coverImage: string; + date: string; + excerpt: string; + author: Author; + slug: string; +}; + +export function PostPreview({ + title, + coverImage, + date, + excerpt, + author, + slug, +}: Props) { + return ( +
+
+ +
+

+ + {title} + +

+
+ +
+

{excerpt}

+ +
+ ); +} diff --git a/playground/src/app/_components/post-title.tsx b/playground/src/app/_components/post-title.tsx new file mode 100644 index 0000000..5d2dc0b --- /dev/null +++ b/playground/src/app/_components/post-title.tsx @@ -0,0 +1,13 @@ +import { ReactNode } from "react"; + +type Props = { + children?: ReactNode; +}; + +export function PostTitle({ children }: Props) { + return ( +

+ {children} +

+ ); +} diff --git a/playground/src/app/_components/product-schema.tsx b/playground/src/app/_components/product-schema.tsx new file mode 100644 index 0000000..29257f7 --- /dev/null +++ b/playground/src/app/_components/product-schema.tsx @@ -0,0 +1,50 @@ +import Script from "next/script"; +import { Cheese } from "../interfaces/cheese"; + +type Props = { + cheese: Cheese; +}; + +export default function ProductSchema({ cheese }: Props) { + const productSchema = { + "@context": "https://schema.org", + "@type": "Product", + name: cheese.name, + description: cheese.description, + offers: { + "@type": "Offer", + price: cheese.price, + priceCurrency: "USD", + availability: "https://schema.org/InStock", + }, + // Add specific cheese properties + additionalProperty: [ + { + "@type": "PropertyValue", + name: "Milk Type", + value: cheese.milk, + }, + { + "@type": "PropertyValue", + name: "Country of Origin", + value: cheese.country, + }, + { + "@type": "PropertyValue", + name: "Texture", + value: cheese.texture, + }, + { + "@type": "PropertyValue", + name: "Type", + value: cheese.type, + }, + ].filter((prop) => prop.value && prop.value !== "NA"), + }; + + return ( + + ); +} diff --git a/playground/src/app/_components/section-separator.tsx b/playground/src/app/_components/section-separator.tsx new file mode 100644 index 0000000..62412c0 --- /dev/null +++ b/playground/src/app/_components/section-separator.tsx @@ -0,0 +1,3 @@ +export function SectionSeparator() { + return
; +} diff --git a/playground/src/app/blog/page.tsx b/playground/src/app/blog/page.tsx new file mode 100644 index 0000000..add82fc --- /dev/null +++ b/playground/src/app/blog/page.tsx @@ -0,0 +1,26 @@ +import Container from "@/app/_components/container"; +import { HeroPost } from "@/app/_components/hero-post"; +import { MoreStories } from "@/app/_components/more-stories"; +import { getAllPosts } from "@/lib/api"; + +export default function BlogPage() { + const allPosts = getAllPosts(); + const heroPost = allPosts[0]; + const morePosts = allPosts.slice(1); + + return ( +
+ + + {morePosts.length > 0 && } + +
+ ); +} diff --git a/playground/src/app/globals.css b/playground/src/app/globals.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/playground/src/app/globals.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/playground/src/app/interfaces/author.ts b/playground/src/app/interfaces/author.ts new file mode 100644 index 0000000..352ff4c --- /dev/null +++ b/playground/src/app/interfaces/author.ts @@ -0,0 +1,4 @@ +export type Author = { + name: string; + picture: string; +}; diff --git a/playground/src/app/interfaces/cheese.ts b/playground/src/app/interfaces/cheese.ts new file mode 100644 index 0000000..46afbf8 --- /dev/null +++ b/playground/src/app/interfaces/cheese.ts @@ -0,0 +1,26 @@ +export type Cheese = { + slug: string; + name: string; + description: string; + price: number; + image?: string; + cheese: string; + url: string; + milk: string; + country: string; + region: string; + family: string; + type: string; + fat_content: string; + calcium_content: string; + texture: string; + rind: string; + color: string; + flavor: string; + aroma: string; + vegetarian: string; + vegan: string; + synonyms: string; + alt_spellings: string; + producers: string; +}; diff --git a/playground/src/app/interfaces/post.ts b/playground/src/app/interfaces/post.ts new file mode 100644 index 0000000..e2da990 --- /dev/null +++ b/playground/src/app/interfaces/post.ts @@ -0,0 +1,15 @@ +import { type Author } from "./author"; + +export type Post = { + slug: string; + title: string; + date: string; + coverImage: string; + author: Author; + excerpt: string; + ogImage: { + url: string; + }; + content: string; + preview?: boolean; +}; diff --git a/playground/src/app/layout.tsx b/playground/src/app/layout.tsx new file mode 100644 index 0000000..a1af2a0 --- /dev/null +++ b/playground/src/app/layout.tsx @@ -0,0 +1,67 @@ +import MainNav from "@/app/_components/main-nav"; +import { CMS_NAME, HOME_OG_IMAGE_URL } from "@/lib/constants"; +import type { Metadata } from "next"; +import { Inter } from "next/font/google"; +import cn from "classnames"; + +import "./globals.css"; + +const inter = Inter({ subsets: ["latin"] }); + +export const metadata: Metadata = { + title: `Next.js Blog Example with ${CMS_NAME}`, + description: `A statically generated blog example using Next.js and ${CMS_NAME}.`, + openGraph: { + images: [HOME_OG_IMAGE_URL], + }, +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + + + + + + + + + + + + + +
{children}
+ + + ); +} diff --git a/playground/src/app/page.tsx b/playground/src/app/page.tsx new file mode 100644 index 0000000..69b407c --- /dev/null +++ b/playground/src/app/page.tsx @@ -0,0 +1,26 @@ +import Container from "@/app/_components/container"; +import { HeroPost } from "@/app/_components/hero-post"; +import { MoreStories } from "@/app/_components/more-stories"; +import { getAllPosts } from "@/lib/api"; + +export default function Index() { + const allPosts = getAllPosts(); + const heroPost = allPosts[0]; + const morePosts = allPosts.slice(1); + + return ( +
+ + + {morePosts.length > 0 && } + +
+ ); +} diff --git a/playground/src/app/posts/[slug]/page.tsx b/playground/src/app/posts/[slug]/page.tsx new file mode 100644 index 0000000..df84fbe --- /dev/null +++ b/playground/src/app/posts/[slug]/page.tsx @@ -0,0 +1,71 @@ +import { Metadata } from "next"; +import { notFound } from "next/navigation"; +import { getAllPosts, getPostBySlug } from "@/lib/api"; +import { CMS_NAME } from "@/lib/constants"; +import markdownToHtml from "@/lib/markdownToHtml"; +import Alert from "@/app/_components/alert"; +import Container from "@/app/_components/container"; +import Header from "@/app/_components/header"; +import { PostBody } from "@/app/_components/post-body"; +import { PostHeader } from "@/app/_components/post-header"; + +export default async function Post(props: Params) { + const params = await props.params; + const post = getPostBySlug(params.slug); + + if (!post) { + return notFound(); + } + + const content = await markdownToHtml(post.content || ""); + + return ( +
+ + +
+ + +
+
+
+ ); +} + +type Params = { + params: Promise<{ + slug: string; + }>; +}; + +export async function generateMetadata(props: Params): Promise { + const params = await props.params; + const post = getPostBySlug(params.slug); + + if (!post) { + return notFound(); + } + + const title = `${post.title} | Next.js Blog Example with ${CMS_NAME}`; + + return { + title, + openGraph: { + title, + images: [post.ogImage.url], + }, + }; +} + +export async function generateStaticParams() { + const posts = getAllPosts(); + + return posts.map((post) => ({ + slug: post.slug, + })); +} diff --git a/playground/src/app/products/[slug]/page.tsx b/playground/src/app/products/[slug]/page.tsx new file mode 100644 index 0000000..97cd54f --- /dev/null +++ b/playground/src/app/products/[slug]/page.tsx @@ -0,0 +1,70 @@ +import Container from "@/app/_components/container"; +import { getAllCheeses, getCheeseBySlug } from "@/lib/cheeses"; +import { notFound } from "next/navigation"; +import CheeseDetails from "@/app/_components/cheese-details"; +import ProductSchema from "@/app/_components/product-schema"; + +type Props = { + params: Promise<{ + slug: string; + }>; +}; + +export function generateStaticParams() { + const cheeses = getAllCheeses(); + return cheeses.map((cheese) => ({ + slug: cheese.slug.toLowerCase(), + })); +} + +export async function generateMetadata({ params }: Props) { + const { slug } = await params; + const cheese = getCheeseBySlug(slug); + + if (!cheese) { + return { + title: "Product Not Found", + }; + } + + return { + title: cheese.name, + description: cheese.description, + }; +} + +export default async function CheesePage({ params }: Props) { + const { slug } = await params; + const cheese = getCheeseBySlug(slug); + + if (!cheese) { + notFound(); + } + + return ( +
+ + +
+
+

{cheese.name}

+
+

Price: ${cheese.price}

+

+ {cheese.description} +

+ +
+ {cheese.country === "France" && ( +
+

+ PAS MAL NON ? C'est français. +

+
+ )} +
+
+
+
+ ); +} diff --git a/playground/src/app/products/page.tsx b/playground/src/app/products/page.tsx new file mode 100644 index 0000000..12e9113 --- /dev/null +++ b/playground/src/app/products/page.tsx @@ -0,0 +1,59 @@ +import Container from "@/app/_components/container"; +import { CheeseGrid } from "@/app/_components/cheese-grid"; +import { Pagination } from "@/app/_components/pagination"; +import { getAllCheeses } from "@/lib/cheeses"; + +type Props = { + searchParams?: Promise<{ + page?: string; + }>; +}; + +const ITEMS_PER_PAGE = 24; + +// Add generateStaticParams to generate all possible page combinations +export function generateStaticParams() { + const allCheeses = getAllCheeses(); + const totalPages = Math.ceil(allCheeses.length / ITEMS_PER_PAGE); + + // Generate array of page numbers from 1 to totalPages + return Array.from({ length: totalPages }, (_, i) => ({ + searchParams: { page: (i + 1).toString() }, + })); +} + +// Add generateMetadata for better SEO +export async function generateMetadata({ searchParams }: Props) { + const { page } = (await searchParams) || {}; + const currentPage = Number(page) || 1; + return { + title: + currentPage === 1 ? "Our Products" : `Our Products - Page ${currentPage}`, + }; +} + +// Make the page static by removing 'async' and fixing searchParams +export default async function ProductsPage({ searchParams }: Props) { + const { page } = (await searchParams) || {}; + const currentPage = Number(page) || 1; + const allCheeses = getAllCheeses(); + + const totalPages = Math.ceil(allCheeses.length / ITEMS_PER_PAGE); + const startIndex = (currentPage - 1) * ITEMS_PER_PAGE; + const endIndex = startIndex + ITEMS_PER_PAGE; + const currentCheeses = allCheeses.slice(startIndex, endIndex); + + return ( +
+ +

Our Products

+ + +
+
+ ); +} diff --git a/playground/src/app/references/page.tsx b/playground/src/app/references/page.tsx new file mode 100644 index 0000000..d3f54eb --- /dev/null +++ b/playground/src/app/references/page.tsx @@ -0,0 +1,127 @@ +import Container from "@/app/_components/container"; +import { getPdfFiles } from "@/lib/getPdfs"; +import Link from "next/link"; + +export const metadata = { + title: "Reference Documents", + description: "Access our collection of reference documents and PDFs", +}; + +export default function ReferencesPage() { + const pdfFiles = getPdfFiles(); + + return ( +
+ +
+

Reference Documents

+ + {pdfFiles.length === 0 ? ( +

+ No reference documents available at the moment. +

+ ) : ( +
+ {pdfFiles.map((pdf) => ( + +
+ + + +
+

{pdf.title}

+

+ {pdf.filename} +

+
+
+ + ))} + {[ + { + filename: "extinct-brie-variety.html", + title: "Lost Brie de Seine History", + path: "/cheeses/extinct-brie", + }, + { + filename: "alpine-cheese-study.pdf", + title: "Ancient Alpine Cheese Making", + path: "/docs/alpine-study.pdf", + }, + { + filename: "forgotten-cheddar.html", + title: "The Forgotten Welsh Black Cheddar", + path: "/cheeses/welsh-black", + }, + { + filename: "monastery-cheese.pdf", + title: "Medieval Monastery Cheese Records", + path: "/docs/monastery-records.pdf", + }, + { + filename: "phantom-gouda.html", + title: "The Phantom Gouda of Rotterdam", + path: "/cheeses/phantom-gouda", + }, + { + filename: "lost-recipes.html", + title: "Lost Cheese Recipes of Normandy", + path: "/cheeses/normandy-lost", + }, + ].map((pdf) => ( + +
+ + + +
+

{pdf.title}

+

+ {pdf.filename} +

+

+ Warning: This document may be unavailable +

+
+
+ + ))} +
+ )} +
+
+
+ ); +} diff --git a/playground/src/lib/api.ts b/playground/src/lib/api.ts new file mode 100644 index 0000000..55be42c --- /dev/null +++ b/playground/src/lib/api.ts @@ -0,0 +1,28 @@ +import { Post } from "@/app/interfaces/post"; +import fs from "fs"; +import matter from "gray-matter"; +import { join } from "path"; + +const postsDirectory = join(process.cwd(), "_posts"); + +export function getPostSlugs() { + return fs.readdirSync(postsDirectory); +} + +export function getPostBySlug(slug: string) { + const realSlug = slug.replace(/\.md$/, ""); + const fullPath = join(postsDirectory, `${realSlug}.md`); + const fileContents = fs.readFileSync(fullPath, "utf8"); + const { data, content } = matter(fileContents); + + return { ...data, slug: realSlug, content } as Post; +} + +export function getAllPosts(): Post[] { + const slugs = getPostSlugs(); + const posts = slugs + .map((slug) => getPostBySlug(slug)) + // sort posts by date in descending order + .sort((post1, post2) => (post1.date > post2.date ? -1 : 1)); + return posts; +} diff --git a/playground/src/lib/cheeses.ts b/playground/src/lib/cheeses.ts new file mode 100644 index 0000000..70cfdbc --- /dev/null +++ b/playground/src/lib/cheeses.ts @@ -0,0 +1,65 @@ +import type { Cheese } from "@/app/interfaces/cheese"; +import cheeses from "../../_data/cheeses.json"; + +function createSlug(name: string): string { + return name + .toLowerCase() + .replace(/[']/g, "") // Remove single quotes + .replace(/[^a-z0-9]+/g, "-") // Replace any non-alphanumeric chars with hyphens + .replace(/^-+|-+$/g, ""); // Remove leading/trailing hyphens +} + +export function getAllCheeses(): Cheese[] { + return cheeses.map((cheese) => ({ + slug: createSlug(cheese.cheese), + name: cheese.cheese, + description: `${cheese.cheese} is a ${cheese.type} cheese from ${cheese.country}`, + price: Number( + ( + (parseInt( + cheese.url + .split("") + .map((c) => c.charCodeAt(0)) + .join("") + ) % + 1000) / + 100 + ).toFixed(2) + ), + ...cheese, + })); +} + +export function getCheeseBySlug(slug: string): Cheese | undefined { + const cheese = cheeses.find( + (cheese) => createSlug(cheese.cheese) === slug.toLowerCase() + ); + if (!cheese) return undefined; + return { + slug: createSlug(cheese.cheese), + name: cheese.cheese, + description: `${cheese.cheese} is a ${cheese.type} cheese from ${cheese.country}`, + price: Number( + ( + (parseInt( + cheese.url + .split("") + .map((c) => c.charCodeAt(0)) + .join("") + ) % + 1000) / + 100 + ).toFixed(2) + ), + ...cheese, + }; +} + +export function getPaginatedCheeses(page: number, itemsPerPage: number) { + const startIndex = (page - 1) * itemsPerPage; + const endIndex = startIndex + itemsPerPage; + return { + cheeses: cheeses.slice(startIndex, endIndex), + totalPages: Math.ceil(cheeses.length / itemsPerPage), + }; +} diff --git a/playground/src/lib/constants.ts b/playground/src/lib/constants.ts new file mode 100644 index 0000000..8f89c20 --- /dev/null +++ b/playground/src/lib/constants.ts @@ -0,0 +1,4 @@ +export const EXAMPLE_PATH = "blog-starter"; +export const CMS_NAME = "Markdown"; +export const HOME_OG_IMAGE_URL = + "https://og-image.vercel.app/Next.js%20Blog%20Starter%20Example.png?theme=light&md=1&fontSize=100px&images=https%3A%2F%2Fassets.vercel.com%2Fimage%2Fupload%2Ffront%2Fassets%2Fdesign%2Fnextjs-black-logo.svg"; diff --git a/playground/src/lib/getPdfs.ts b/playground/src/lib/getPdfs.ts new file mode 100644 index 0000000..bb25396 --- /dev/null +++ b/playground/src/lib/getPdfs.ts @@ -0,0 +1,29 @@ +import fs from "fs"; +import path from "path"; + +export interface PdfFile { + filename: string; + title: string; + path: string; +} + +export function getPdfFiles(): PdfFile[] { + const pdfDirectory = path.join(process.cwd(), "public/assets/pdfs/"); + + // Create directory if it doesn't exist + if (!fs.existsSync(pdfDirectory)) { + fs.mkdirSync(pdfDirectory, { recursive: true }); + return []; + } + + const filenames = fs.readdirSync(pdfDirectory); + + return filenames + .filter((filename) => filename.endsWith(".pdf")) + .map((filename) => ({ + filename, + // Convert filename to title (remove .pdf and replace dashes/underscores with spaces) + title: filename.replace(".pdf", "").replace(/[-_]/g, " "), + path: `/assets/pdfs/${filename}`, + })); +} diff --git a/playground/src/lib/markdownToHtml.ts b/playground/src/lib/markdownToHtml.ts new file mode 100644 index 0000000..51e3169 --- /dev/null +++ b/playground/src/lib/markdownToHtml.ts @@ -0,0 +1,7 @@ +import { remark } from "remark"; +import html from "remark-html"; + +export default async function markdownToHtml(markdown: string) { + const result = await remark().use(html).process(markdown); + return result.toString(); +} diff --git a/playground/tailwind.config.ts b/playground/tailwind.config.ts new file mode 100644 index 0000000..9ce8a94 --- /dev/null +++ b/playground/tailwind.config.ts @@ -0,0 +1,44 @@ +import type { Config } from "tailwindcss"; + +const config: Config = { + darkMode: "class", + content: [ + "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", + "./src/components/**/*.{js,ts,jsx,tsx,mdx}", + "./src/app/**/*.{js,ts,jsx,tsx,mdx}", + ], + theme: { + extend: { + backgroundImage: { + "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", + "gradient-conic": + "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", + }, + colors: { + "accent-1": "#FAFAFA", + "accent-2": "#EAEAEA", + "accent-7": "#333", + success: "#0070f3", + cyan: "#79FFE1", + }, + spacing: { + 28: "7rem", + }, + letterSpacing: { + tighter: "-.04em", + }, + fontSize: { + "5xl": "2.5rem", + "6xl": "2.75rem", + "7xl": "4.5rem", + "8xl": "6.25rem", + }, + boxShadow: { + sm: "0 5px 10px rgba(0, 0, 0, 0.12)", + md: "0 8px 30px rgba(0, 0, 0, 0.12)", + }, + }, + }, + plugins: [], +}; +export default config; diff --git a/playground/tsconfig.json b/playground/tsconfig.json new file mode 100644 index 0000000..51d0dbc --- /dev/null +++ b/playground/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + }, + "target": "ES2017" + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/src/bin/index.ts b/src/bin/index.ts index 2c94e44..d5e3b80 100644 --- a/src/bin/index.ts +++ b/src/bin/index.ts @@ -1,71 +1,81 @@ -import * as dotenv from 'dotenv' -dotenv.config() +import * as dotenv from "dotenv"; +dotenv.config(); -import fs from 'fs' -import yargs from 'yargs' -import { hideBin } from 'yargs/helpers' -import { Sender } from '../sender' -import { Crawler } from '../crawler' -import { Config } from '../types' +import fs from "fs"; +import yargs from "yargs"; +import { hideBin } from "yargs/helpers"; +import { Sender } from "../sender"; +import { Crawler } from "../crawlers"; +import { Config, ConfigSchema } from "../types"; function getConfig({ configPath, config, }: { - configPath?: string - config?: string + configPath?: string; + config?: string; }): Config { + let parsedConfig: unknown; + if (configPath) { - return JSON.parse( - fs.readFileSync(configPath, { encoding: 'utf-8' }) - ) as Config + parsedConfig = JSON.parse( + fs.readFileSync(configPath, { encoding: "utf-8" }) + ); } else if (config) { - return JSON.parse(config) as Config + parsedConfig = JSON.parse(config); + } else { + throw new Error("Please provide either --config or --configPath"); } - throw new Error('Please provide either --config or --configPath') + // Validate config against schema + const validatedConfig = ConfigSchema.parse(parsedConfig); + return validatedConfig; } // eslint-disable-next-line @typescript-eslint/no-floating-promises -;(async () => { +(async () => { // Parse command line arguments and get a configuration file path const argv = await yargs(hideBin(process.argv)) - .option('config', { - alias: 'c', - describe: 'configuration', - type: 'string', + .option("config", { + alias: "c", + describe: "configuration", + type: "string", }) - .option('configPath', { - alias: 'p', - describe: 'Path to configuration file', - type: 'string', + .option("configPath", { + alias: "p", + describe: "Path to configuration file", + type: "string", }) - .option('browserPath', { - alias: 'b', - describe: 'Path to browser binary', - type: 'string', + .option("browserPath", { + alias: "b", + describe: "Path to browser binary", + type: "string", }) .check((argv) => { if (argv.config && argv.configPath) { throw new Error( - 'You can only use either --config or --configPath, not both.' - ) + "You can only use either --config or --configPath, not both." + ); } else if (!argv.config && !argv.configPath) { - throw new Error('You must provide one of --config or --configPath.') + throw new Error("You must provide one of --config or --configPath."); } - return true - }).argv + return true; + }).argv; - const config = getConfig(argv) - const launchOptions = argv.browserPath - ? { executablePath: argv.browserPath } - : {} + const config = getConfig(argv); + const launchOptions = + argv.browserPath ? { executablePath: argv.browserPath } : {}; - const sender = new Sender(config) - await sender.init() + const sender = new Sender(config); + await sender.init(); - const crawler = new Crawler(sender, config, launchOptions) + const crawler = await Crawler.create( + config.crawler_type || "cheerio", + sender, + config, + config.launch_options || launchOptions + ); - await crawler.run() - await sender.finish() -})() + await Crawler.run(crawler); + await sender.finish(); +})(); diff --git a/src/crawler.ts b/src/crawler.ts deleted file mode 100644 index ff39441..0000000 --- a/src/crawler.ts +++ /dev/null @@ -1,245 +0,0 @@ -import { - createPuppeteerRouter, - PuppeteerCrawler, - Router, - PuppeteerCrawlingContext, - PuppeteerCrawlerOptions, - RequestQueue, - PuppeteerHook, -} from 'crawlee' - -import { minimatch } from 'minimatch' -import DefaultScraper from './scrapers/default' -import DocsearchScraper from './scrapers/docssearch' -import SchemaScraper from './scrapers/schema' -import { Sender } from './sender' -import { Config, Scraper } from './types' -import { Webhook } from './webhook.js' -import { PuppeteerNode } from 'puppeteer-core' - -type DefaultHandler = Parameters< - Parameters['addDefaultHandler']>[0] ->[0] - -// Crawler class -// This class is responsible for crawling the urls and extract content to send to Meilisearch -// It uses the createPuppeteerRouter method to create a router that will be used by the PuppeteerCrawler. -// The constructor take a Sender object as a parameter -export class Crawler { - sender: Sender - config: Config - urls: string[] - scraper: Scraper - nb_page_crawled = 0 - nb_page_indexed = 0 - launchOptions: Record = {} - launcher?: PuppeteerNode - - constructor( - sender: Sender, - config: Config, - launchOptions: Record = {}, - launcher?: PuppeteerNode - ) { - this.sender = sender - this.config = config - this.urls = config.start_urls - this.launchOptions = launchOptions - this.launcher = launcher - - this.scraper = - this.config.strategy == 'docssearch' - ? new DocsearchScraper(this.sender, this.config) - : this.config.strategy == 'schema' - ? new SchemaScraper(this.sender, this.config) - : new DefaultScraper(this.sender, this.config) - } - - async run() { - const requestQueue = await RequestQueue.open(JSON.stringify(this.urls)) - // Enqueue the initial requests - await requestQueue.addRequests(this.urls.map((url) => ({ url }))) - - //Create the router - const router = createPuppeteerRouter() - - // type DefaultHandler = Parameters[0]; - router.addDefaultHandler(this.defaultHandler.bind(this)) - - const preNavigationHooks: PuppeteerHook[] = this.config - .additional_request_headers - ? [ - async (crawlingContext) => { - await crawlingContext.addInterceptRequestHandler( - async (request) => { - return await request.continue({ - headers: { - ...request.headers(), - ...this.config.additional_request_headers, - }, - }) - } - ) - }, - ] - : [] - - const puppeteerCrawlerOptions: PuppeteerCrawlerOptions = { - requestQueue, - requestHandler: router, - preNavigationHooks: preNavigationHooks, - launchContext: { - launchOptions: { - headless: this.config.headless || true, - args: ['--no-sandbox', '--disable-setuid-sandbox'], - ignoreDefaultArgs: ['--disable-extensions'], - ...this.launchOptions, - }, - }, - } - - if (puppeteerCrawlerOptions.launchContext && this.launcher) { - puppeteerCrawlerOptions.launchContext.launcher = this.launcher - } - // create the crawler - const crawler = new PuppeteerCrawler(puppeteerCrawlerOptions) - - let interval = 5000 - if (process.env.WEBHOOK_INTERVAL) { - interval = parseInt(process.env.WEBHOOK_INTERVAL) - } - - const intervalId = setInterval(async () => { - await Webhook.get(this.config).active(this.config, { - nb_page_crawled: this.nb_page_crawled, - nb_page_indexed: this.nb_page_indexed, - nb_documents_sent: this.sender.nb_documents_sent, - }) - }, interval) - - try { - await crawler.run() - - await Webhook.get(this.config).active(this.config, { - nb_page_crawled: this.nb_page_crawled, - nb_page_indexed: this.nb_page_indexed, - nb_documents_sent: this.sender.nb_documents_sent, - }) - } catch (err) { - await Webhook.get(this.config).failed(this.config, err as Error) - } finally { - clearInterval(intervalId) - } - await requestQueue.drop() - } - - // Should we use `log` - async defaultHandler({ request, enqueueLinks, page }: DefaultHandler) { - this.nb_page_crawled++ - const title = await page.title() - console.log(`${title}`, { url: request.loadedUrl }) - const crawled_globs = this.__generate_globs(this.urls) - const excluded_crawled_globs = this.__generate_globs( - this.config.urls_to_exclude || [] - ) - const indexed_globs = this.__generate_globs( - this.config.urls_to_index || this.urls - ) - const excluded_indexed_globs = this.__generate_globs( - this.config.urls_to_not_index || [] - ) - - if (request.loadedUrl && !this.__is_paginated_url(request.loadedUrl)) { - //check if the url is in the list of urls to scrap - if ( - this.__match_globs(request.loadedUrl, indexed_globs) && - !this.__match_globs(request.loadedUrl, excluded_indexed_globs) - ) { - this.nb_page_indexed++ - await this.scraper.get(request.loadedUrl, page) - } - } - - await enqueueLinks({ - globs: crawled_globs, - exclude: excluded_crawled_globs, - transformRequestFunction: (req) => { - // exclude all links that are files not parsable by puppeteer - if (this.__is_file_url(req.url)) { - return false - } - // remove all query params to avoid duplicates - const urlObject = new URL(req.url) - urlObject.search = '' - // Remove all anchors to avoid duplicates - urlObject.hash = '' - req.url = urlObject.toString() - - return req - }, - }) - } - - __generate_globs(urls: string[]) { - return urls.map((url) => { - if (url.endsWith('/')) { - return url + '**' - } - return url + '/**' - }) - } - - __match_globs(url: string, globs: string[]) { - return globs.some((glob) => minimatch(url, glob)) - } - - __is_file_url(url: string) { - const fileExtensions = [ - '.zip', - '.pdf', - '.doc', - '.docx', - '.xls', - '.xlsx', - '.ppt', - '.pptx', - '.rar', - '.tar', - '.gz', - '.tgz', - '.7z', - '.bz2', - '.jpg', - '.jpeg', - '.png', - '.gif', - '.svg', - '.css', - '.js', - '.xml', - '.txt', - '.csv', - '.rtf', - '.mp3', - '.wav', - '.mp4', - '.avi', - '.mkv', - '.mov', - '.flv', - '.wmv', - '.m4v', - '.ogg', - '.mpg', - '.mpeg', - '.swf', - ] - return fileExtensions.some((extension) => url.endsWith(extension)) - } - - __is_paginated_url(url: string) { - const urlObject = new URL(url) - const pathname = urlObject.pathname - return /\/\d+\//.test(pathname) - } -} diff --git a/src/crawler_process.ts b/src/crawler_process.ts deleted file mode 100644 index c0f554e..0000000 --- a/src/crawler_process.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Sender } from './sender' -import { Crawler } from './crawler' -import { Config } from './types' - -async function startCrawling(config: Config) { - const sender = new Sender(config) - await sender.init() - - const crawler = new Crawler(sender, config) - - await crawler.run() - await sender.finish() -} - -// Listen for messages from the parent thread -process.on('message', async (message: Config) => { - await startCrawling(message) - if (process.send) { - process.send('Crawling finished') - } -}) diff --git a/src/crawlers/base.ts b/src/crawlers/base.ts new file mode 100644 index 0000000..19acc16 --- /dev/null +++ b/src/crawlers/base.ts @@ -0,0 +1,265 @@ +/* eslint-disable @typescript-eslint/no-unsafe-call */ +import { RequestQueue, Router } from "crawlee"; +import { minimatch } from "minimatch"; +import DefaultScraper from "../scrapers/default"; +import DocsearchScraper from "../scrapers/docssearch"; +import SchemaScraper from "../scrapers/schema"; +import MarkdownScraper from "../scrapers/markdown"; +import CustomScraper from "../scrapers/custom"; +import { Sender } from "../sender"; +import { Config, Scraper, CrawlerType } from "../types"; +import { Log } from "crawlee"; +import * as cheerio from "cheerio"; +import PDFScraper from "../scrapers/pdf"; + +const log = new Log({ prefix: "BaseCrawler" }); + +export abstract class BaseCrawler { + sender: Sender; + config: Config; + urls: string[]; + scraper: Scraper; + nb_page_crawled = 0; + nb_page_indexed = 0; + crawlerType: CrawlerType; + + constructor(sender: Sender, config: Config) { + this.sender = sender; + this.config = config; + this.urls = config.start_urls; + this.crawlerType = config.crawler_type || "cheerio"; + + this.scraper = + this.config.strategy === "docssearch" ? + new DocsearchScraper(this.sender, this.config) + : this.config.strategy === "schema" ? + new SchemaScraper(this.sender, this.config) + : this.config.strategy === "markdown" ? + new MarkdownScraper(this.sender, this.config) + : this.config.strategy === "custom" ? + new CustomScraper(this.sender, this.config) + : this.config.strategy === "pdf" ? + new PDFScraper(this.sender, this.config) + : new DefaultScraper(this.sender, this.config); + } + + abstract createRouter(): Router; + abstract getCrawlerOptions( + requestQueue: RequestQueue, + router: Router + ): any; + abstract createCrawlerInstance(options: any): any; + + // Add this new method + async defaultHandler(context: any): Promise { + await this.handlePage(context); + } + + // New method to handle the common logic + protected async handlePage(context: any): Promise { + const { request, enqueueLinks } = context; + this.nb_page_crawled++; + log.debug("Processing page", { url: request.loadedUrl }); + + const crawled_globs = this.__generate_globs(this.config.start_urls); + const excluded_crawled_globs = this.__generate_globs( + this.config.urls_to_exclude || [] + ); + const indexed_globs = this.__generate_globs( + this.config.urls_to_index || this.urls + ); + const excluded_indexed_globs = this.__generate_globs( + this.config.urls_to_not_index || [] + ); + + if (request.loadedUrl) { + if ( + this.__match_globs(request.loadedUrl, indexed_globs) && + !this.__match_globs(request.loadedUrl, excluded_indexed_globs) + ) { + let $: cheerio.CheerioAPI; + + try { + if (this.crawlerType === "puppeteer") { + const pageContent = await context.page.content(); + $ = cheerio.load(pageContent); + } else { + $ = context.$; + } + + if (!$) { + log.error("Cheerio instance is undefined", { + url: request.loadedUrl, + }); + return; + } + + // Check for 404 before incrementing counter and scraping + if (this.__is404Page($)) { + log.debug("404 page detected, skipping", { + url: request.loadedUrl, + }); + return; + } + + this.nb_page_indexed++; + log.debug("Starting scraper.get", { url: request.loadedUrl }); + await this.scraper.get(request.loadedUrl, $); + log.debug("Completed scraper.get", { url: request.loadedUrl }); + } catch (error) { + log.error("Error processing page", { + url: request.loadedUrl, + error: error instanceof Error ? error.message : String(error), + }); + } + } + } + + await enqueueLinks({ + globs: crawled_globs, + exclude: excluded_crawled_globs, + transformRequestFunction: (req: any) => { + if (this.__is_file_url(req.url)) { + return false; + } + const urlObject = new URL(req.url); + urlObject.search = ""; + urlObject.hash = ""; + req.url = urlObject.toString(); + return req; + }, + }); + } + + protected __generate_globs(urls: string[]): string[] { + return urls.flatMap((url) => { + if (url.endsWith("/")) { + return [url, url + "**"]; + } + return [url, url + "/**"]; + }); + } + + protected __match_globs(url: string, globs: string[]): boolean { + return globs.some((glob) => minimatch(url, glob)); + } + + protected __is_file_url(url: string): boolean { + // Add more file extensions to check for + const fileExtensions = [ + ".json", + ".csv", + ".yaml", + ".yml", + ".md", + ".markdown", + ".ini", + ".config", + ".log", + ".sql", + ".db", + ".sqlite", + ".exe", + ".bin", + ".iso", + ".dmg", + ".apk", + ".ipa", + ".zip", + ".doc", + ".docx", + ".xls", + ".xlsx", + ".ppt", + ".pptx", + ".rar", + ".tar", + ".gz", + ".tgz", + ".7z", + ".bz2", + ".jpg", + ".jpeg", + ".png", + ".gif", + ".svg", + ".css", + ".js", + ".xml", + ".txt", + ".csv", + ".rtf", + ".mp3", + ".wav", + ".mp4", + ".avi", + ".mkv", + ".mov", + ".flv", + ".wmv", + ".m4v", + ".ogg", + ".mpg", + ".mpeg", + ".swf", + ]; + return fileExtensions.some((extension) => url.endsWith(extension)); + } + + protected __is404Page($: cheerio.CheerioAPI): boolean { + // Use custom selectors if provided, otherwise use defaults + const customSelectors = this.config.not_found_selectors; + + if (customSelectors && customSelectors.length > 0) { + return customSelectors.some((selector) => $(selector).length > 0); + } + + // Default selectors if no custom ones provided + const defaultSelectors = [ + // Basic text content selectors + 'h1:contains("404")', + 'h1:contains("Page Not Found")', + 'title:contains("404")', + + // Multiple elements check + 'div:contains("404"), span:contains("404")', + + // Class-based selectors + ".error-404", + ".not-found", + "#error-page", + + // Attribute selectors + '[data-error="404"]', + '[data-page-type="404"]', + ]; + + // Common error texts to check in body + const commonErrorTexts = [ + "page not found", + "page doesn't exist", + "page could not be found", + "404 error", + ]; + + // Check default selectors + const hasErrorSelector = defaultSelectors.some( + (selector) => $(selector).length > 0 + ); + + // Check text content + const bodyText = $("body") + .clone() + .find("script") + .remove() + .end() + .text() + .toLowerCase(); + + const hasErrorText = commonErrorTexts.some((text) => + bodyText.includes(text) + ); + + return hasErrorSelector || hasErrorText; + } +} diff --git a/src/crawlers/cheerio.ts b/src/crawlers/cheerio.ts new file mode 100644 index 0000000..8ced5e6 --- /dev/null +++ b/src/crawlers/cheerio.ts @@ -0,0 +1,64 @@ +import { + createCheerioRouter, + CheerioCrawler as CrawleeCheerioCrawler, + CheerioCrawlerOptions, + CheerioHook, + CheerioCrawlingContext, + Router, + RequestQueue, +} from "crawlee"; +import { BaseCrawler } from "./base"; +import { Sender } from "../sender"; +import { Config } from "../types"; + +export class CheerioCrawler extends BaseCrawler { + constructor(sender: Sender, config: Config) { + super(sender, config); + } + + createRouter(): Router { + return createCheerioRouter(); + } + + getCrawlerOptions( + requestQueue: RequestQueue, + router: Router + ): CheerioCrawlerOptions { + const preNavigationHooks: CheerioHook[] = + this.config.additional_request_headers ? + [ + (crawlingContext) => { + const { request } = crawlingContext; + request.headers = { + ...request.headers, + ...this.config.additional_request_headers, + }; + }, + ] + : []; + + return { + requestQueue, + requestHandler: router as any, + preNavigationHooks: preNavigationHooks, + ...(this.config.max_concurrency && { + maxConcurrency: this.config.max_concurrency, + }), + ...(this.config.max_requests_per_minute && { + maxRequestsPerMinute: this.config.max_requests_per_minute, + }), + }; + } + + createCrawlerInstance(options: CheerioCrawlerOptions): CrawleeCheerioCrawler { + if (this.config.strategy === "pdf") { + options.additionalMimeTypes = ["application/pdf"]; + } + + return new CrawleeCheerioCrawler(options); + } + + override async defaultHandler(context: CheerioCrawlingContext) { + await this.handlePage(context); + } +} diff --git a/src/crawlers/index.ts b/src/crawlers/index.ts new file mode 100644 index 0000000..7a7bd09 --- /dev/null +++ b/src/crawlers/index.ts @@ -0,0 +1,122 @@ +import { Log, RequestQueue } from "crawlee"; +import { PuppeteerCrawler } from "./puppeteer"; +import { CheerioCrawler } from "./cheerio"; +import { Sender } from "../sender"; +import { Config, CrawlerType } from "../types"; +import { Webhook } from "../webhook"; +import { BaseCrawler } from "./base"; +import { extractUrlsFromSitemap } from "../utils/sitemap"; + +const log = new Log({ prefix: "Crawler" }); + +export class Crawler { + private static config: Config; + + static create( + crawlerType: CrawlerType, + sender: Sender, + config: Config, + launchOptions: Record = {} + ): BaseCrawler { + this.config = config; + log.info(`Creating ${crawlerType} crawler`, { config }); + switch (crawlerType) { + case "puppeteer": + return new PuppeteerCrawler(sender, config, launchOptions); + case "cheerio": + return new CheerioCrawler(sender, config); + default: + throw new Error(`Unsupported crawler type: ${crawlerType}`); + } + } + + static async run(crawler: BaseCrawler): Promise { + log.info(`Starting ${crawler.constructor.name} run`); + const requestQueue = await Crawler.setupRequestQueue(crawler.urls); + + const router = crawler.createRouter(); + router.addDefaultHandler(crawler.defaultHandler.bind(crawler)); + + const crawlerOptions = crawler.getCrawlerOptions(requestQueue, router); + const crawlerInstance = crawler.createCrawlerInstance(crawlerOptions); + + let interval = 5000; + if (process.env.WEBHOOK_INTERVAL) { + interval = parseInt(process.env.WEBHOOK_INTERVAL); + } + + const intervalId = Crawler.handleWebhook(crawler, interval); + + try { + await crawlerInstance.run(); + + await Webhook.get(crawler.config).active(crawler.config, { + nb_page_crawled: crawler.nb_page_crawled, + nb_page_indexed: crawler.nb_page_indexed, + nb_documents_sent: crawler.sender.nb_documents_sent, + }); + } catch (err) { + await Webhook.get(crawler.config).failed(crawler.config, err as Error); + } finally { + clearInterval(intervalId); + } + await requestQueue.drop(); + log.info(`${crawler.constructor.name} run completed`, { + pagesCrawled: crawler.nb_page_crawled, + pagesIndexed: crawler.nb_page_indexed, + }); + } + + private static async setupRequestQueue( + urls: string[] + ): Promise { + if (!urls || !Array.isArray(urls)) { + log.error("Invalid or missing start_urls", { urls }); + throw new Error("start_urls must be an array of strings"); + } + + const requestQueue = await RequestQueue.open('default'); + + if (this.config?.use_sitemap == true) { + try { + log.info("Extracting URLs from sitemaps"); + const sitemapUrls = await extractUrlsFromSitemap( + this.config?.sitemap_urls || urls + ); + + if (sitemapUrls.length > 0) { + log.info(`Found ${sitemapUrls.length} URLs in sitemaps`); + await requestQueue.addRequests(sitemapUrls.map((url) => ({ url }))); + } else { + log.info("No URLs found in sitemaps, falling back to start URLs"); + await requestQueue.addRequests(urls.map((url) => ({ url }))); + } + } catch (error) { + log.warning( + "Failed to extract URLs from sitemaps, falling back to start URLs", + { + error: (error as Error).message, + } + ); + await requestQueue.addRequests(urls.map((url) => ({ url }))); + } + } else { + await requestQueue.addRequests(urls.map((url) => ({ url }))); + } + + return requestQueue; + } + + private static handleWebhook( + crawler: BaseCrawler, + interval: number + ): NodeJS.Timeout { + return setInterval(async () => { + await Webhook.get(crawler.config).active(crawler.config, { + nb_page_crawled: crawler.nb_page_crawled, + nb_page_indexed: crawler.nb_page_indexed, + nb_documents_sent: crawler.sender.nb_documents_sent, + }); + }, interval); + } +} diff --git a/src/crawlers/playwright.ts b/src/crawlers/playwright.ts new file mode 100644 index 0000000..29d4894 --- /dev/null +++ b/src/crawlers/playwright.ts @@ -0,0 +1,80 @@ +import { + createPlaywrightRouter, + PlaywrightCrawler as CrawleePlaywrightCrawler, + PlaywrightCrawlerOptions, + PlaywrightHook, + PlaywrightCrawlingContext, + Router, + RequestQueue, +} from "crawlee"; +import { LaunchOptions } from "playwright"; +// import { firefox } from "playwright"; +import { BaseCrawler } from "./base"; +import { Sender } from "../sender"; +import { Config } from "../types"; + +export class PlaywrightCrawler extends BaseCrawler { + launchOptions: LaunchOptions = {}; + + constructor( + sender: Sender, + config: Config, + launchOptions: LaunchOptions = {} + ) { + super(sender, config); + this.launchOptions = launchOptions; + } + + createRouter(): Router { + return createPlaywrightRouter(); + } + + getCrawlerOptions( + requestQueue: RequestQueue, + router: Router + ): PlaywrightCrawlerOptions { + const preNavigationHooks: PlaywrightHook[] = this.config + .additional_request_headers + ? [ + async (crawlingContext) => { + await crawlingContext.page.route("**/*", async (route) => { + const request = route.request(); + await route.continue({ + headers: { + ...request.headers(), + ...this.config.additional_request_headers, + }, + }); + }); + }, + ] + : []; + + return { + requestQueue, + requestHandler: router as any, + preNavigationHooks: preNavigationHooks, + ...(this.config.max_concurrency && { + maxConcurrency: this.config.max_concurrency, + }), + ...(this.config.max_requests_per_minute && { + maxRequestsPerMinute: this.config.max_requests_per_minute, + }), + launchContext: { + launchOptions: { + ...this.launchOptions, + }, + }, + }; + } + + createCrawlerInstance( + options: PlaywrightCrawlerOptions + ): CrawleePlaywrightCrawler { + return new CrawleePlaywrightCrawler(options); + } + + override async defaultHandler(context: PlaywrightCrawlingContext) { + await this.handlePage(context); + } +} diff --git a/src/crawlers/puppeteer.ts b/src/crawlers/puppeteer.ts new file mode 100644 index 0000000..fda888c --- /dev/null +++ b/src/crawlers/puppeteer.ts @@ -0,0 +1,82 @@ +import { + createPuppeteerRouter, + PuppeteerCrawler as CrawleePuppeteerCrawler, + PuppeteerCrawlerOptions, + PuppeteerHook, + PuppeteerCrawlingContext, + Router, + RequestQueue, +} from "crawlee"; +import { BaseCrawler } from "./base"; +import { Sender } from "../sender"; +import { Config } from "../types"; + +export class PuppeteerCrawler extends BaseCrawler { + launchOptions: Record = {}; + + constructor( + sender: Sender, + config: Config, + launchOptions: Record = {} + ) { + super(sender, config); + this.launchOptions = launchOptions; + } + + createRouter(): Router { + return createPuppeteerRouter(); + } + + getCrawlerOptions( + requestQueue: RequestQueue, + router: Router + ): PuppeteerCrawlerOptions { + const preNavigationHooks: PuppeteerHook[] = this.config + .additional_request_headers + ? [ + async (crawlingContext) => { + await crawlingContext.addInterceptRequestHandler( + async (request) => { + return await request.continue({ + headers: { + ...request.headers(), + ...this.config.additional_request_headers, + }, + }); + } + ); + }, + ] + : []; + + return { + requestQueue, + requestHandler: router as any, + preNavigationHooks: preNavigationHooks, + ...(this.config.max_concurrency && { + maxConcurrency: this.config.max_concurrency, + }), + ...(this.config.max_requests_per_minute && { + maxRequestsPerMinute: this.config.max_requests_per_minute, + }), + launchContext: { + launchOptions: { + headless: true, + args: ["--no-sandbox", "--disable-setuid-sandbox"], + ignoreDefaultArgs: ["--disable-extensions"], + ...this.launchOptions, + }, + }, + }; + } + + createCrawlerInstance( + options: PuppeteerCrawlerOptions + ): CrawleePuppeteerCrawler { + return new CrawleePuppeteerCrawler(options); + } + + override async defaultHandler(context: PuppeteerCrawlingContext) { + await this.handlePage(context); + } +} diff --git a/src/index.ts b/src/index.ts index fdeaba1..0a79b44 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,2 @@ -export { Crawler } from './crawler' -export { Sender } from './sender' -export { TaskQueue } from './taskQueue' +export { Crawler } from "./crawlers"; +export { Sender } from "./sender"; diff --git a/src/scrapers/custom.ts b/src/scrapers/custom.ts new file mode 100644 index 0000000..6293f40 --- /dev/null +++ b/src/scrapers/custom.ts @@ -0,0 +1,71 @@ +/* eslint-disable @typescript-eslint/no-unsafe-call */ +import { v4 as uuidv4 } from "uuid"; +import { Sender } from "../sender"; +import { Config, CustomDocument } from "../types"; +import { CheerioAPI } from "cheerio"; +import { Log } from "@crawlee/core"; + +const log = new Log({ prefix: "CustomScraper" }); + +export default class CustomScraper { + sender: Sender; + settings: Config["meilisearch_settings"]; + selectors: Config["selectors"]; + + constructor(sender: Sender, config: Config) { + log.info("Initializing CustomScraper", { config }); + this.sender = sender; + this.selectors = config.selectors; + this.settings = config.meilisearch_settings || { + searchableAttributes: Object.keys(this.selectors || {}), + distinctAttribute: "url", + }; + void this.sender.updateSettings(this.settings); + } + + async get(url: string, $: CheerioAPI) { + try { + log.debug("Starting content extraction", { url }); + + const data: CustomDocument = { + uid: uuidv4(), + url, + }; + + for (const [key, selector] of Object.entries(this.selectors || {})) { + const elements = + typeof selector === "string" ? $(selector) : $(selector.join(", ")); + if (elements.length > 0) { + data[key] = elements + .map((_, el) => this._clean_text($(el).text())) + .get(); + if (data[key].length === 1) { + data[key] = data[key][0]; + } + } + } + + await this._add_data(data); + log.info("Content extraction completed", { url }); + } catch (error) { + log.error("Content extraction failed", { error, url }); + } + } + + async _add_data(data: CustomDocument) { + try { + await this.sender.add(data); + log.debug("Document added successfully", { url: data.url }); + } catch (error) { + log.error("Failed to add document", { error, url: data.url }); + } + } + + _clean_text(text: string) { + text = text.replace(/[\r\n]+/gm, " "); + text = text.replace(/\s+/g, " "); + text = text.replace("# ", ""); + text = text.replace(/^\s+|\s+$/g, ""); + return text; + } +} diff --git a/src/scrapers/default.ts b/src/scrapers/default.ts index 4becd43..3d0ee1d 100644 --- a/src/scrapers/default.ts +++ b/src/scrapers/default.ts @@ -1,221 +1,194 @@ -import prettier from 'prettier' -import { v4 as uuidv4 } from 'uuid' -import { Sender } from '../sender' -import { Config, Meta, DefaultDocument } from '../types' -import { Page } from 'puppeteer' +/* eslint-disable @typescript-eslint/no-unsafe-call */ +import { v4 as uuidv4 } from "uuid"; +import { Sender } from "../sender"; +import { Config, Meta, DefaultDocument } from "../types"; +import { CheerioAPI } from "cheerio"; +import { Log } from "@crawlee/core"; + +const log = new Log({ prefix: "DefaultScraper" }); export default class DefaultScraper { - sender: Sender - settings: Config['meilisearch_settings'] + sender: Sender; + settings: Config["meilisearch_settings"]; constructor(sender: Sender, config: Config) { - console.info('DefaultScraper::constructor') - this.sender = sender + log.info("Initializing DefaultScraper", { config }); + this.sender = sender; this.settings = config.meilisearch_settings || { searchableAttributes: [ - 'h1', - 'h2', - 'h3', - 'h4', - 'h5', - 'h6', - 'p', - 'title', - 'meta.description', + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "p", + "title", + "meta.description", ], - filterableAttributes: ['urls_tags'], - distinctAttribute: 'url', - } - void this.sender.updateSettings(this.settings) + filterableAttributes: ["urls_tags"], + distinctAttribute: "url", + }; + void this.sender.updateSettings(this.settings); } - async get(url: string, page: Page) { - const title = await page.title() - //get the meta of the page - const meta = await this._extract_metadata_from_page(page) + async get(url: string, $: CheerioAPI) { + try { + log.debug("Starting content extraction", { url }); + const title = $("title").text(); + const meta = this._extract_metadata_from_page($); - //for each page create dataset of consecutive h1, h2, h3, p. at each header after a paragraph, create a new dataset - let data: DefaultDocument = {} as DefaultDocument - let elems = await page.$$( - 'main h1, main h2, main h3, main h4, main h5, main h6, main p, main td, main li, main span' - ) - if (elems.length === 0) { - elems = await page.$$('h1, h2, h3, h4, h5, h6, p, td, li, span') - } - let page_block = 0 - for (let i = 0; i < elems.length; i++) { - const elem = elems[i] - const tag = await elem.evaluate((el) => el.tagName) - let text = (await elem.evaluate((el) => el.textContent)) || '' - text = this._clean_text(text) - data.uid = uuidv4() - data.url = url - data.title = title - data.meta = meta - data.image_url = this._get_image_url_from_meta(meta) - data.page_block = page_block - const urls_tags = new URL(url).pathname.split('/') - data.urls_tags = urls_tags.slice(1, urls_tags.length - 1) + let data: DefaultDocument = {} as DefaultDocument; + let elems = $( + "main h1, main h2, main h3, main h4, main h5, main h6, main p, main td, main li, main span" + ); + if (elems.length === 0) { + elems = $("h1, h2, h3, h4, h5, h6, p, td, li, span"); + } + let page_block = 0; - const id = await elem.evaluate((el) => el.id) - if (tag === 'H1') { - if (data['h1']) { - await this._add_data(data) - page_block++ - data = {} as DefaultDocument - } - data['h1'] = text - data.anchor = '#' + id - } else if (tag === 'H2') { - if (data['h2']) { - await this._add_data(data) - page_block++ - data = { h1: data['h1'] } as DefaultDocument - } - data.anchor = '#' + id - data['h2'] = text - } else if (tag === 'H3') { - if (data['h3']) { - await this._add_data(data) - page_block++ - data = { h1: data['h1'], h2: data['h2'] } as DefaultDocument - } - data.anchor = '#' + id - data['h3'] = text - } else if (tag === 'H4') { - if (data['h4']) { - await this._add_data(data) - page_block++ - data = { - h1: data['h1'], - h2: data['h2'], - h3: data['h3'], - } as DefaultDocument - } - data.anchor = '#' + id - data['h4'] = text - } else if (tag === 'H5') { - if (data['h5']) { - await this._add_data(data) - page_block++ - data = { - h1: data['h1'], - h2: data['h2'], - h3: data['h3'], - h4: data['h4'], - } as DefaultDocument - } - data.anchor = '#' + id - data['h5'] = text - } else if (tag === 'H6') { - if (data['h6']) { - await this._add_data(data) - page_block++ - data = { - h1: data['h1'], - h2: data['h2'], - h3: data['h3'], - h4: data['h4'], - h5: data['h5'], - } as DefaultDocument - } - data.anchor = '#' + id - data['h6'] = text - } else if ( - tag === 'P' || - tag === 'TD' || - tag === 'LI' || - tag === 'SPAN' - ) { - if (!data['p']) { - data['p'] = [] - } - // TODO: should we leave `null` values in the `p` array? - if (text && Array.isArray(data['p']) && !data['p'].includes(text)) { - data['p'].push(text) + for (const elem of elems.toArray()) { + const tag: any = elem.tagName.toUpperCase(); + let text = $(elem).text(); + text = this._clean_text(text); + data.uid = uuidv4(); + data.url = url; + data.title = title; + data.meta = meta; + data.image_url = this._get_image_url_from_meta(meta); + data.page_block = page_block; + const urls_tags = new URL(url).pathname.split("/"); + data.urls_tags = urls_tags.slice(1, urls_tags.length - 1); + + const id = ($(elem).attr("id") as string) || ""; + if (tag === "H1") { + if (data["h1"]) { + await this._add_data(data); + page_block++; + data = {} as DefaultDocument; + } + data["h1"] = text; + data.anchor = "#" + id; + } else if (tag === "H2") { + if (data["h2"]) { + await this._add_data(data); + page_block++; + data = { h1: data["h1"] } as DefaultDocument; + } + data.anchor = "#" + id; + data["h2"] = text; + } else if (tag === "H3") { + if (data["h3"]) { + await this._add_data(data); + page_block++; + data = { h1: data["h1"], h2: data["h2"] } as DefaultDocument; + } + data.anchor = "#" + id; + data["h3"] = text; + } else if (tag === "H4") { + if (data["h4"]) { + await this._add_data(data); + page_block++; + data = { + h1: data["h1"], + h2: data["h2"], + h3: data["h3"], + } as DefaultDocument; + } + data.anchor = "#" + id; + data["h4"] = text; + } else if (tag === "H5") { + if (data["h5"]) { + await this._add_data(data); + page_block++; + data = { + h1: data["h1"], + h2: data["h2"], + h3: data["h3"], + h4: data["h4"], + } as DefaultDocument; + } + data.anchor = "#" + id; + data["h5"] = text; + } else if (tag === "H6") { + if (data["h6"]) { + await this._add_data(data); + page_block++; + data = { + h1: data["h1"], + h2: data["h2"], + h3: data["h3"], + h4: data["h4"], + h5: data["h5"], + } as DefaultDocument; + } + data.anchor = "#" + id; + data["h6"] = text; + } else if ( + tag === "P" || + tag === "TD" || + tag === "LI" || + tag === "SPAN" + ) { + if (!data["p"]) { + data["p"] = []; + } + if (text && Array.isArray(data["p"]) && !data["p"].includes(text)) { + data["p"].push(text); + } } } - if (i === elems.length - 1) { - await this._add_data(data) + + // Add the last data block if it exists + if (data.title) { + await this._add_data(data); } + log.info("Content extraction completed", { url }); + } catch (error) { + log.error("Content extraction failed", { error, url }); } } async _add_data(data: DefaultDocument) { - if (Array.isArray(data['p'])) { - data['p'] = data['p'].join('\n') + try { + if (Array.isArray(data["p"])) { + data["p"] = data["p"].join("\n"); + } + await this.sender.add(data); + log.debug("Document added successfully", { url: data.url }); + } catch (error) { + log.error("Failed to add document", { error, url: data.url }); } - await this.sender.add(data) } - // Remove from a text all multiple spaces, new lines, and leading and trailing spaces, and - // remove '# ' from the beginning of the text _clean_text(text: string) { - text = text.replace(/[\r\n]+/gm, ' ') - ///remove multiple spaces - text = text.replace(/\s+/g, ' ') - ///remove '# ' - text = text.replace('# ', '') - /// Trim leading and trailing spaces - text = text.replace(/^\s+|\s+$/g, '') - return text + text = text.replace(/[\r\n]+/gm, " "); + text = text.replace(/\s+/g, " "); + text = text.replace("# ", ""); + text = text.replace(/^\s+|\s+$/g, ""); + return text; } - // Extract the meta of a page - async _extract_metadata_from_page(page: Page) { - return await page.evaluate(() => { - const metas = document.getElementsByTagName('meta') - const meta: Meta = {} as Meta - for (let i = 0; i < metas.length; i++) { - const name = metas[i].getAttribute('name') - const content = metas[i].getAttribute('content') - if (name && content) { - meta[name] = content - } + _extract_metadata_from_page($: CheerioAPI): Meta { + const meta: Meta = {}; + $("meta").each((_, elem) => { + const name = $(elem).attr("name"); + const content = $(elem).attr("content"); + if (name && content) { + meta[name] = content; } - return meta - }) + }); + return meta; } - // Extract the image url from the meta of a page _get_image_url_from_meta(meta: Meta) { - if (meta['og:image']) { - return meta['og:image'] - } else if (meta['twitter:image']) { - return meta['twitter:image'] - } else if (meta['image']) { - return meta['image'] - } - return - } - - // A function that retro-engineer the hljs generated html to extract the code - async _extract_code_from_page(page: Page) { - const code = await page.evaluate(() => { - let code = '' - const pre = document.getElementsByTagName('pre') - for (let i = 0; i < pre.length; i++) { - const code_elem = pre[i].getElementsByTagName('code') - if (code_elem.length > 0) { - code += code_elem[0].innerText - } - } - return code - }) - return this._format_code(code) - } - // A function that use prettier to format the code that has been extracted in a html page. - // Format only if the language is supported by prettier - _format_code(code: string) { - let formatted_code = '' - try { - formatted_code = prettier.format(code, { - parser: 'babel', - }) - } catch (e) { - console.log('Error while formatting code', e) - return code + if (meta["og:image"]) { + return meta["og:image"]; + } else if (meta["twitter:image"]) { + return meta["twitter:image"]; + } else if (meta["image"]) { + return meta["image"]; } - return formatted_code + return undefined; } } diff --git a/src/scrapers/docssearch.ts b/src/scrapers/docssearch.ts index b3c7fdb..529ced9 100644 --- a/src/scrapers/docssearch.ts +++ b/src/scrapers/docssearch.ts @@ -1,29 +1,33 @@ -import { v4 as uuidv4 } from 'uuid' -import { Sender } from '../sender' -import { Config } from '../types' -import { Page } from 'puppeteer' +/* eslint-disable @typescript-eslint/no-unsafe-call */ +import { v4 as uuidv4 } from "uuid"; +import { Sender } from "../sender"; +import { Config } from "../types"; +import { CheerioAPI } from "cheerio"; import { DocsSearchDocument, HTag, HierarchyLevel, RadioHierarchyLevel, -} from '../types' +} from "../types"; +import { Log } from "@crawlee/core"; + +const log = new Log({ prefix: "DocsearchScraper" }); const RADIO_HIERARCHY_LEVELS: Record = { - H1: 'hierarchy_radio_lvl1', - H2: 'hierarchy_radio_lvl2', - H3: 'hierarchy_radio_lvl3', - H4: 'hierarchy_radio_lvl4', - H5: 'hierarchy_radio_lvl5', -} + H1: "hierarchy_radio_lvl1", + H2: "hierarchy_radio_lvl2", + H3: "hierarchy_radio_lvl3", + H4: "hierarchy_radio_lvl4", + H5: "hierarchy_radio_lvl5", +}; const HIERARCHY_LEVELS: Record = { - H1: 'hierarchy_lvl1', - H2: 'hierarchy_lvl2', - H3: 'hierarchy_lvl3', - H4: 'hierarchy_lvl4', - H5: 'hierarchy_lvl5', -} + H1: "hierarchy_lvl1", + H2: "hierarchy_lvl2", + H3: "hierarchy_lvl3", + H4: "hierarchy_lvl4", + H5: "hierarchy_lvl5", +}; const TAG_LEVELS: Record = { H1: 100, @@ -31,61 +35,61 @@ const TAG_LEVELS: Record = { H3: 80, H4: 70, H5: 60, -} +}; -export default class DocsearchScaper { - sender: Sender - settings: Config['meilisearch_settings'] +export default class DocsearchScraper { + sender: Sender; + settings: Config["meilisearch_settings"]; constructor(sender: Sender, config?: Config) { - console.info('DocsearchScaper::constructor') - this.sender = sender + log.info("Initializing DocsearchScraper", { config }); + this.sender = sender; // Predefined settings const defaultSettings = { - distinctAttribute: 'url', + distinctAttribute: "url", rankingRules: [ - 'words', - 'typo', - 'attribute', - 'proximity', - 'exactness', - 'page_rank:desc', - 'level:desc', - 'position:asc', + "words", + "typo", + "attribute", + "proximity", + "exactness", + "page_rank:desc", + "level:desc", + "position:asc", ], searchableAttributes: [ - 'hierarchy_radio_lvl1', - 'hierarchy_radio_lvl2', - 'hierarchy_radio_lvl3', - 'hierarchy_radio_lvl4', - 'hierarchy_radio_lvl5', - 'hierarchy_lvl1', - 'hierarchy_lvl2', - 'hierarchy_lvl3', - 'hierarchy_lvl4', - 'hierarchy_lvl5', - 'hierarchy_radio_lvl0', - 'hierarchy_lvl0', - 'content', + "hierarchy_radio_lvl1", + "hierarchy_radio_lvl2", + "hierarchy_radio_lvl3", + "hierarchy_radio_lvl4", + "hierarchy_radio_lvl5", + "hierarchy_lvl1", + "hierarchy_lvl2", + "hierarchy_lvl3", + "hierarchy_lvl4", + "hierarchy_lvl5", + "hierarchy_radio_lvl0", + "hierarchy_lvl0", + "content", ], - } + }; // Merge user-defined settings with predefined settings this.settings = { ...defaultSettings, ...(config?.meilisearch_settings || {}), - } + }; - void this.sender.updateSettings(this.settings) + void this.sender.updateSettings(this.settings); } _amount_of_hierarchies(pageMap: DocsSearchDocument) { - return Object.keys(pageMap).filter((key) => key.startsWith('hierarchy_lvl')) - .length + return Object.keys(pageMap).filter((key) => key.startsWith("hierarchy_lvl")) + .length; } _is_h_tag(tag: string) { - return tag.startsWith('H') + return tag.startsWith("H"); } // Remove all hierarchies that are lower than the current level. @@ -95,15 +99,15 @@ export default class DocsearchScaper { currentLevel: string ): DocsSearchDocument { for (const hierarchy in pageMap) { - const levelMatch = hierarchy.match(/\d+/) || [] - const currentLevelMatch = currentLevel.match(/\d+/) || [] + const levelMatch = hierarchy.match(/\d+/) || []; + const currentLevelMatch = currentLevel.match(/\d+/) || []; if (levelMatch[0] && currentLevelMatch[0]) { if (parseInt(levelMatch[0]) > parseInt(currentLevelMatch[0])) { - delete pageMap[hierarchy as keyof DocsSearchDocument] + delete pageMap[hierarchy as keyof DocsSearchDocument]; } } } - return pageMap + return pageMap; } _empty_radio_lvl_hierarchies( @@ -117,7 +121,7 @@ export default class DocsearchScaper { hierarchy_radio_lvl3: null, hierarchy_radio_lvl4: null, hierarchy_radio_lvl5: null, - } + }; } _fill_lvl_fields( @@ -129,7 +133,7 @@ export default class DocsearchScaper { ...document, [HIERARCHY_LEVELS[tag]]: text, [RADIO_HIERARCHY_LEVELS[tag]]: text, - } + }; } _update_document( @@ -141,125 +145,122 @@ export default class DocsearchScaper { document = { ...document, level: TAG_LEVELS[tag], - } - document = this._empty_radio_lvl_hierarchies(document) + }; + document = this._empty_radio_lvl_hierarchies(document); document = this._remove_lower_lvl_hierarchies( document, HIERARCHY_LEVELS[tag] - ) - document = this._fill_lvl_fields(document, tag, text) - document['anchor'] = anchor ? `#${anchor}` : '' - return document + ); + document = this._fill_lvl_fields(document, tag, text); + document["anchor"] = anchor ? `#${anchor}` : ""; + return document; } - async get(url: string, page: Page) { - //for each page create dataset of consecutive h1, h2, h3, p. at each header after a paragraph, create a new dataset - // needs to be able to provide the `main` or `article` tag - // TODO: create a configuration to provide the main tag in which the content is - let elems = await page.$$( - 'main h1, main h2, main h3, main h4, main h5, main p, main td, main li, main span' - ) + async get(url: string, $: CheerioAPI) { + let elems = $( + "main h1, main h2, main h3, main h4, main h5, main p, main td, main li, main span" + ); if (elems.length === 0) { - elems = await page.$$('h1, h2, h3, h4, h5, p, td, li, span') + elems = $("h1, h2, h3, h4, h5, p, td, li, span"); } - let document = {} as DocsSearchDocument - document = this._empty_radio_lvl_hierarchies(document) + let document = {} as DocsSearchDocument; + document = this._empty_radio_lvl_hierarchies(document); - for (let i = 0; i < elems.length; i++) { - const elem = elems[i] - const tag = await elem.evaluate((el) => el.tagName) - let text = (await elem.evaluate((el) => el.textContent)) || '' - text = this._clean_text(text) + for (const elem of elems.toArray()) { + const tag = elem.tagName.toUpperCase(); + let text = $(elem).text(); + text = this._clean_text(text); - const urls_tags = new URL(url).pathname.split('/') - const only_urls_tags = urls_tags.slice(1, urls_tags.length - 1) - document['hierarchy_lvl0'] = only_urls_tags.join(' > ') || '' - document['url'] = url + const urls_tags = new URL(url).pathname.split("/"); + const only_urls_tags = urls_tags.slice(1, urls_tags.length - 1); + document["hierarchy_lvl0"] = only_urls_tags.join(" > ") || ""; + document["url"] = url; - // Every time a H tag is found, the previous content is indexed and then emptied if ( this._is_h_tag(tag) && this._amount_of_hierarchies(document) > 1 && - document['content'] && - document['content'].length > 0 + document["content"] && + document["content"].length > 0 ) { - await this._send_data({ ...document, type: 'content' }) - document['content'] = [] + await this._send_data({ ...document, type: "content" }); + document["content"] = []; } - const anchor = await elem.evaluate((el) => el.id) - if (tag === 'H1') { + const anchor = $(elem).attr("id") || ""; + if (tag === "H1") { document = Object.assign( {}, - this._update_document(document, tag, text, anchor) - ) - } else if (tag === 'H2') { + this._update_document(document, tag as HTag, text, anchor) + ); + } else if (tag === "H2") { document = Object.assign( {}, - this._update_document(document, tag, text, anchor) - ) - } else if (tag === 'H3') { + this._update_document(document, tag as HTag, text, anchor) + ); + } else if (tag === "H3") { document = Object.assign( {}, - this._update_document(document, tag, text, anchor) - ) - } else if (tag === 'H4') { + this._update_document(document, tag as HTag, text, anchor) + ); + } else if (tag === "H4") { document = Object.assign( {}, - this._update_document(document, tag, text, anchor) - ) - } else if (tag === 'H5') { + this._update_document(document, tag as HTag, text, anchor) + ); + } else if (tag === "H5") { document = Object.assign( {}, - this._update_document(document, tag, text, anchor) - ) + this._update_document(document, tag as HTag, text, anchor) + ); } else if ( - (tag === 'P' || tag === 'TD' || tag === 'LI' || tag === 'SPAN') && + (tag === "P" || tag === "TD" || tag === "LI" || tag === "SPAN") && this._amount_of_hierarchies(document) > 1 ) { - if (!document['content']) { - document['content'] = [] + if (!document["content"]) { + document["content"] = []; } if ( text !== null && - Array.isArray(document['content']) && - !document['content'].includes(text) + Array.isArray(document["content"]) && + !document["content"].includes(text) ) { - document['content'].push(text) + document["content"].push(text); } } } + // Send remaining data if (document.content && document.content?.length > 0) { - await this._send_data({ ...document }) + await this._send_data({ ...document }); } } async _send_data(data: DocsSearchDocument) { try { - data.uid = uuidv4() - data.url = data.url + data.anchor - if (Array.isArray(data['content'])) { - data['content'] = data['content'].join('\n') + data.uid = uuidv4(); + data.url = data.url + data.anchor; + if (Array.isArray(data["content"])) { + data["content"] = data["content"].join("\n"); } else { - data['content'] = '' + data["content"] = ""; } - await this.sender.add(data) + await this.sender.add(data); + log.debug("Document sent successfully", { url: data.url }); } catch (e) { - console.log('error', e) + log.error("Failed to send document", { error: e, url: data.url }); } } // Remove from a text all multiple spaces, new lines, and leading and trailing spaces, and // remove '# ' from the beginning of the text _clean_text(text: string) { - text = text.replace(/[\r\n]+/gm, ' ') + text = text.replace(/[\r\n]+/gm, " "); ///remove multiple spaces - text = text.replace(/\s+/g, ' ') + text = text.replace(/\s+/g, " "); ///remove '# ' - text = text.replace('# ', '') + text = text.replace("# ", ""); /// Trim leading and trailing spaces - text = text.replace(/^\s+|\s+$/g, '') - return text + text = text.replace(/^\s+|\s+$/g, ""); + return text; } } diff --git a/src/scrapers/markdown.ts b/src/scrapers/markdown.ts new file mode 100644 index 0000000..0d49c67 --- /dev/null +++ b/src/scrapers/markdown.ts @@ -0,0 +1,91 @@ +/* eslint-disable @typescript-eslint/no-unsafe-call */ +import { v4 as uuidv4 } from "uuid"; +import { Sender } from "../sender"; +import { Config, Meta, MarkdownDocument } from "../types"; +import { CheerioAPI, load } from "cheerio"; +import { Log } from "@crawlee/core"; +import { NodeHtmlMarkdown } from "node-html-markdown"; + +const log = new Log({ prefix: "MarkdownScraper" }); + +export default class MarkdownScraper { + sender: Sender; + settings: Config["meilisearch_settings"]; + + constructor(sender: Sender, config: Config) { + log.info("Initializing MarkdownScraper", { config }); + this.sender = sender; + this.settings = config.meilisearch_settings || { + searchableAttributes: ["title", "description", "content"], + filterableAttributes: ["urls_tags"], + distinctAttribute: "url", + }; + void this.sender.updateSettings(this.settings); + } + + async get(url: string, $: CheerioAPI) { + try { + log.debug("Starting content extraction", { url }); + const title = $("title").text(); + const meta = this._extract_metadata_from_page($); + const metaDescription = meta.description || ""; + + const sanitizedHtml = this.sanitizeHtml($.html()); + const content = NodeHtmlMarkdown.translate(sanitizedHtml); + + const data: MarkdownDocument = { + uid: uuidv4(), + url, + title, + description: metaDescription, + content, + meta, + urls_tags: new URL(url).pathname.split("/").filter(Boolean), + }; + + await this._add_data(data); + log.info("Content extraction completed", { url }); + } catch (error) { + log.error("Content extraction failed", { error, url }); + } + } + + async _add_data(data: MarkdownDocument) { + try { + await this.sender.add(data); + log.debug("Document added successfully", { url: data.url }); + } catch (error) { + log.error("Failed to add document", { error, url: data.url }); + } + } + + private sanitizeHtml(html: string, selector?: string) { + const $ = load(html); + + if (selector) { + const selectedHtml = $(selector).html(); + + if (!selectedHtml || !selectedHtml.trim()) { + throw new Error(`No content found for selector: ${selector}`); + } + + return selectedHtml; + } + + $("script, style, path, footer, header, head, nav").remove(); + + return $.html(); + } + + _extract_metadata_from_page($: CheerioAPI): Meta { + const meta: Meta = {}; + $("meta").each((_, elem) => { + const name = $(elem).attr("name"); + const content = $(elem).attr("content"); + if (name && content) { + meta[name] = content; + } + }); + return meta; + } +} diff --git a/src/scrapers/pdf.ts b/src/scrapers/pdf.ts new file mode 100644 index 0000000..6b0495d --- /dev/null +++ b/src/scrapers/pdf.ts @@ -0,0 +1,100 @@ +import { Log } from "crawlee"; +import { v4 as uuidv4 } from "uuid"; +import pdfParse from "pdf-parse"; +import { Config } from "../types"; +import { Sender } from "../sender"; +import { CheerioAPI } from "cheerio"; + +const log = new Log({ prefix: "PDFScraper" }); + +interface PDFDocument { + uid: string; + url: string; + title?: string; + content?: string; + page_number?: number; + total_pages?: number; + metadata?: { + title?: string; + author?: string; + subject?: string; + keywords?: string; + creator?: string; + producer?: string; + created_date?: string; + modified_date?: string; + }; +} + +export default class PDFScraper { + sender: Sender; + settings: Config["meilisearch_settings"]; + extractContent: boolean; + extractMetadata: boolean; + + constructor(sender: Sender, config: Config) { + log.info("Initializing PDFScraper", { config }); + this.sender = sender; + this.extractContent = config.pdf_settings?.extract_content ?? false; + this.extractMetadata = config.pdf_settings?.extract_metadata ?? true; + + this.settings = config.meilisearch_settings || { + searchableAttributes: ["title", "content"], + filterableAttributes: ["page_number", "total_pages"], + sortableAttributes: ["page_number"], + distinctAttribute: "url", + }; + + void this.sender.updateSettings(this.settings); + } + async get(url: string, _: CheerioAPI) { + if (!url.toLowerCase().endsWith(".pdf")) { + log.debug("Skipping non-PDF URL", { url }); + return; + } + + try { + log.debug("Starting PDF extraction", { url }); + + const response = await fetch(url); + const buffer = await response.arrayBuffer(); + const pdf = await pdfParse(Buffer.from(buffer)); + + // Extract entire PDF as one document + await this._addData({ + uid: uuidv4(), + url, + content: this.extractContent ? pdf.text : undefined, + total_pages: pdf.numpages, + metadata: this.extractMetadata ? this._extractMetadata(pdf) : undefined, + }); + + log.info("PDF extraction completed", { url }); + } catch (error) { + log.error("PDF extraction failed", { error, url }); + } + } + + private _extractMetadata(pdf: any) { + const info = pdf.info; + return { + title: info.Title, + author: info.Author, + subject: info.Subject, + keywords: info.Keywords, + creator: info.Creator, + producer: info.Producer, + created_date: info.CreationDate, + modified_date: info.ModDate, + }; + } + + private async _addData(data: PDFDocument) { + try { + await this.sender.add(data); + log.debug("Document added successfully", { url: data.url }); + } catch (error) { + log.error("Failed to add document", { error, url: data.url }); + } + } +} diff --git a/src/scrapers/schema.ts b/src/scrapers/schema.ts index aac31a6..a321682 100644 --- a/src/scrapers/schema.ts +++ b/src/scrapers/schema.ts @@ -1,82 +1,89 @@ -import { v4 as uuidv4 } from 'uuid' -import { Page } from 'puppeteer' -import { Sender } from '../sender' -import { Config, SchemaDocument } from '../types' +/* eslint-disable @typescript-eslint/no-unsafe-call */ +import { v4 as uuidv4 } from "uuid"; +import { Sender } from "../sender"; +import { Config, SchemaDocument } from "../types"; +import { CheerioAPI } from "cheerio"; +import { Log } from "@crawlee/core"; -export default class SchemaScaper { - sender: Sender - config: Config - settings_sent: boolean +const log = new Log({ prefix: "SchemaScraper" }); + +export default class SchemaScraper { + sender: Sender; + config: Config; + settings_sent: boolean; constructor(sender: Sender, config: Config) { - console.info('SchemaScaper::constructor') - this.sender = sender - this.config = config - this.settings_sent = false + log.info("Initializing SchemaScraper", { config }); + this.sender = sender; + this.config = config; + this.settings_sent = false; if (this.config.meilisearch_settings) { - void this.sender.updateSettings(this.config.meilisearch_settings) - this.settings_sent = true + void this.sender.updateSettings(this.config.meilisearch_settings); + this.settings_sent = true; } } - async get(url: string, page: Page) { - console.log('__extractContent', url) + async get(url: string, $: CheerioAPI) { + log.debug("Extracting schema content", { url }); // Get the schema.org data - const data = (await page.evaluate((): Record => { - const schema = document.querySelector( - "script[type='application/ld+json']" - ) - if (schema) { - return JSON.parse(schema.innerText) as Record - } - return {} // TODO: raise error - })) as SchemaDocument + const schemaScript = $('script[type="application/ld+json"]'); + let data: SchemaDocument = { uid: "" }; - // TODO: use zod here instead of forcing `as SchemaDocument`? + if (schemaScript.length > 0) { + try { + data = JSON.parse(schemaScript.html() || "{}") as SchemaDocument; + log.debug("Schema data parsed successfully", { url }); + } catch (error) { + log.error("Failed to parse JSON-LD schema", { error, url }); + return; + } + } - if (data.length === 0) return + if (Object.keys(data).length === 0) return; if (this.config.schema_settings?.only_type) { - if (data['@type'] !== this.config.schema_settings?.only_type) return + if (data["@type"] !== this.config.schema_settings?.only_type) return; } - this._clean_schema(data) + this._clean_schema(data); if (this.config.schema_settings?.convert_dates) { // convert dates to timestamps Object.keys(data).forEach((key) => { - if (typeof data[key] === 'string') { + if (typeof data[key] === "string") { // check if it is a date if (Date.parse(data[key])) { - data[key] = Date.parse(data[key]) + data[key] = Date.parse(data[key]); } } - }) + }); } - if (data['@graph']) { - for (const graph of data['@graph']) { - graph.uid = uuidv4() - await this.sender.add(graph) + if (data["@graph"]) { + for (const graph of data["@graph"]) { + graph.uid = uuidv4(); + await this.sender.add(graph); + log.debug("Graph data sent", { url, type: graph["@type"] }); } } else { - data.uid = uuidv4() - await this.sender.add(data) + data.uid = uuidv4(); + await this.sender.add(data); + log.debug("Schema data sent", { url, type: data["@type"] }); } } _clean_schema(data: SchemaDocument) { - if (data['@context']) { - delete data['@context'] + if (data["@context"]) { + delete data["@context"]; } - if (data['@type']) { - delete data['@type'] + if (data["@type"]) { + delete data["@type"]; } Object.keys(data).forEach((key) => { - if (typeof data[key] === 'object') { - this._clean_schema(data[key]) + if (typeof data[key] === "object") { + this._clean_schema(data[key]); } - }) + }); } } diff --git a/src/sender.ts b/src/sender.ts index 2fcebdc..cc21329 100644 --- a/src/sender.ts +++ b/src/sender.ts @@ -1,130 +1,230 @@ -import { MeiliSearch, Settings } from 'meilisearch' -import { Config, DocumentType } from './types' -import { initMeilisearchClient } from './meilisearch_client' -import { Webhook } from './webhook' +import { MeiliSearch, Settings } from "meilisearch"; +import { Config, DocumentType } from "./types"; +import { initMeilisearchClient } from "./utils/meilisearch_client"; +import { Webhook } from "./webhook"; +import { Log } from "@crawlee/core"; + +const log = new Log({ prefix: "MeilisearchSender" }); //Create a class called Sender that will queue the json data and batch it to a Meilisearch instance export class Sender { - config: Config - queue: DocumentType[] = [] - initial_index_uid: string - index_uid: string - batch_size: number - client: MeiliSearch - nb_documents_sent = 0 + config: Config; + queue: DocumentType[] = []; + initial_index_uid: string; + index_uid: string; + batch_size: number; + client: MeiliSearch; + nb_documents_sent = 0; constructor(config: Config) { - console.info('Sender::constructor') - this.config = config - this.initial_index_uid = config.meilisearch_index_uid - this.index_uid = this.initial_index_uid - this.batch_size = config.batch_size || 1000 + log.info("Initializing MeilisearchSender", { config }); + this.config = config; + this.initial_index_uid = config.meilisearch_index_uid; + this.index_uid = this.initial_index_uid; + this.batch_size = config.batch_size || 1000; //Create a Meilisearch client this.client = initMeilisearchClient({ host: config.meilisearch_url, apiKey: config.meilisearch_api_key, clientAgents: config.user_agents, - }) + }); } + //Initialize the Sender - The sender is responsible for sending the documents to the Meilisearch instance + //If the index does not exist, it will be created + //If the index exists, it will create a temporary index and swap it with the existing one async init() { - console.log('Sender::init') + log.debug("Starting Sender initialization"); try { - await Webhook.get(this.config).started(this.config) - const index = await this.client.getIndex(this.initial_index_uid) + await Webhook.get(this.config).started(this.config); + + // Validate required config + if (!this.initial_index_uid) { + throw new Error("Meilisearch index UID is required"); + } - if (index) { - this.index_uid = this.initial_index_uid + '_crawler_tmp' + let existingSettings = null; + let indexExists = false; + + try { + const index = await this.client.getIndex(this.initial_index_uid); + log.debug("Index exists", { indexUid: this.initial_index_uid }); + if (index) { + indexExists = true; + if (this.config.keep_settings !== false) { + try { + existingSettings = await index.getSettings(); + } catch (err) { + log.warning("Failed to retrieve existing settings", { + error: err, + }); + } + } + } + } catch (err) { + // Index doesn't exist, we'll create it + log.debug("Index does not exist, will create new one", { + indexUid: this.initial_index_uid, + }); + } - const tmp_index = await this.client.getIndex(this.index_uid) - if (tmp_index) { - const task = await this.client.deleteIndex(this.index_uid) - await this.client.waitForTask(task.taskUid) + // If index exists, create temporary index + if (indexExists) { + this.index_uid = `${this.initial_index_uid}_crawler_tmp`; + + try { + // Check if temp index exists and delete if needed + const tmp_index = await this.client.getIndex(this.index_uid); + if (tmp_index) { + const deleteTask = await this.client.deleteIndex(this.index_uid); + await this.client.waitForTask(deleteTask.taskUid); + } + } catch (err) { + // Temp index doesn't exist, which is fine } } - await this.client.createIndex(this.index_uid, { - primaryKey: this.config.primary_key || 'uid', - }) - } catch (e) { - console.log('try to delete a tmp index if it exists') + // Create the index (either temp or initial) + try { + const createTask = await this.client.createIndex(this.index_uid, { + primaryKey: this.config.primary_key || "uid", + }); + await this.client.waitForTask(createTask.taskUid); + + // Apply existing settings if needed + if (existingSettings && this.config.keep_settings !== false) { + log.info("Applying kept settings to index", { + indexUid: this.index_uid, + }); + const settingsTask = await this.client + .index(this.index_uid) + .updateSettings(existingSettings); + await this.client.waitForTask(settingsTask.taskUid); + } + + log.info("Sender initialization completed", { + indexUid: this.index_uid, + }); + } catch (err) { + throw new Error( + `Failed to create index: ${err instanceof Error ? err.message : String(err)}` + ); + } + } catch (err) { + const errorMsg = err instanceof Error ? err.message : "Unknown error"; + log.error("Error during Sender initialization", { error: errorMsg }); + throw new Error(`Sender initialization failed: ${errorMsg}`); } } //Add a json object to the queue async add(data: DocumentType) { - this.nb_documents_sent++ + this.nb_documents_sent++; + if (!data.uid) { + log.warning("Document without uid", { data }); + } - if (this.config.primary_key && this.config.primary_key !== 'uid') { - delete data['uid'] + if (this.config.primary_key && this.config.primary_key !== "uid") { + delete data["uid"]; } if (this.batch_size) { - this.queue.push(data) + this.queue.push(data); if (this.queue.length >= this.batch_size) { - this.__batchSend() - this.queue = [] + this.__batchSend(); + this.queue = []; } } else { - await this.client.index(this.index_uid).addDocuments([data]) + await this.client.index(this.index_uid).addDocuments([data]); } + log.debug("Adding document to queue", { uid: data.uid }); } async updateSettings(settings: Settings) { - console.log('Sender::updateSettings') - const task = await this.client - .index(this.index_uid) - .updateSettings(settings) - await this.client.waitForTask(task.taskUid) + try { + // Check if original index exists and we want to keep settings + if (this.config.keep_settings && this.initial_index_uid) { + try { + // Try to get existing settings from original index + const existingSettings = await this.client + .index(this.initial_index_uid) + .getSettings(); + + log.debug("Copying existing settings to temporary index"); + const task = await this.client + .index(this.index_uid) + .updateSettings(existingSettings); + await this.client.waitForTask(task.taskUid); + return; + } catch (error) { + // If original index doesn't exist, fall through to applying new settings + log.debug("Original index not found, will apply new settings"); + } + } + + // Apply new settings if keep_settings is false or original index doesn't exist + log.debug("Updating Meilisearch index settings"); + const task = await this.client + .index(this.index_uid) + .updateSettings(settings); + await this.client.waitForTask(task.taskUid); + } catch (error) { + log.error("Failed to update settings", { error }); + throw error; + } } async finish() { - await this.__batchSendSync() - const index = await this.client.getIndex(this.index_uid) - const stats = await index.getStats() + log.debug("Starting Sender finish process"); + await this.__batchSendSync(); + const index = await this.client.getIndex(this.index_uid); + const stats = await index.getStats(); if ( this.index_uid !== this.initial_index_uid && stats.numberOfDocuments > 0 ) { - await this.__swapIndex() + await this.__swapIndex(); } else if (this.index_uid !== this.initial_index_uid) { - const task = await this.client.deleteIndex(this.index_uid) - await this.client.index(this.index_uid).waitForTask(task.taskUid) + const task = await this.client.deleteIndex(this.index_uid); + await this.client.index(this.index_uid).waitForTask(task.taskUid); } await Webhook.get(this.config).completed( this.config, this.nb_documents_sent - ) - console.log('Sender::Finish') + ); + log.info("Sender finish process completed", { + documentsSent: this.nb_documents_sent, + }); } __batchSend() { - console.log(`Sender::__batchSend - size: ${this.queue.length}`) + log.debug("Batch sending documents", { queueSize: this.queue.length }); this.client .index(this.index_uid) .addDocuments(this.queue) .catch((e) => { - console.log(e) - console.log('Error while sending data to MeiliSearch') - }) + log.error("Error while sending data to MeiliSearch", { error: e }); + }); } async __batchSendSync() { - console.log(`Sender::__batchSend - size: ${this.queue.length}`) + log.debug("Synchronous batch sending of documents", { + queueSize: this.queue.length, + }); const task = await this.client .index(this.index_uid) - .addDocuments(this.queue) - await this.client.waitForTask(task.taskUid, { timeOutMs: 15000 }) + .addDocuments(this.queue); + await this.client.waitForTask(task.taskUid, { timeOutMs: 15000 }); } async __swapIndex() { - console.log('Sender::__swapIndex') + log.debug("Swapping Meilisearch indexes"); await this.client.swapIndexes([ { indexes: [this.initial_index_uid, this.index_uid] }, - ]) - const task = await this.client.deleteIndex(this.index_uid) - await this.client.index(this.index_uid).waitForTask(task.taskUid) + ]); + const task = await this.client.deleteIndex(this.index_uid); + await this.client.index(this.index_uid).waitForTask(task.taskUid); } } diff --git a/src/server.ts b/src/server.ts deleted file mode 100644 index 4185948..0000000 --- a/src/server.ts +++ /dev/null @@ -1,79 +0,0 @@ -import * as dotenv from 'dotenv' -dotenv.config() - -import express from 'express' -import { TaskQueue } from './taskQueue' -import { Sender } from './sender' -import { Crawler } from './crawler' - -const port = process.env.PORT || 8080 - -class Server { - taskQueue: TaskQueue - app: express.Application - - constructor() { - this.__check_env() - - this.taskQueue = new TaskQueue() - this.app = express() - this.app.use(express.json()) - this.app.post('/crawl', this.__asyncCrawl.bind(this)) - this.app.post('/crawl/async', this.__asyncCrawl.bind(this)) - this.app.post('/crawl/sync', this.__syncCrawl.bind(this)) - this.app.post('/crawl/start', this.__startCrawl.bind(this)) - this.app.post('/webhook', this.__log_webhook.bind(this)) - - this.app.listen(port, () => - console.log(`Crawler app listening on port ${port}!`) - ) - } - - __check_env() { - const { REDIS_URL, WEBHOOK_URL, WEBHOOK_TOKEN, WEBHOOK_INTERVAL } = - process.env - - console.log('REDIS_URL: ', REDIS_URL) - console.log('WEBHOOK_URL: ', WEBHOOK_URL) - console.log('WEBHOOK_TOKEN: ', WEBHOOK_TOKEN) - console.log('WEBHOOK_INTERVAL: ', WEBHOOK_INTERVAL) - } - - __asyncCrawl(req: express.Request, res: express.Response) { - this.taskQueue.add(req.body) - console.log('Crawling started') - res.send('Crawling started') - } - - async __syncCrawl(req: express.Request, res: express.Response) { - const sender = new Sender(req.body) - await sender.init() - - const crawler = new Crawler(sender, req.body) - - await crawler.run() - await sender.finish() - - res.send('Crawling finished') - } - - async __startCrawl(req: express.Request, res: express.Response) { - console.log('Crawling started') - res.send('Crawling started') - - const sender = new Sender(req.body) - await sender.init() - - const crawler = new Crawler(sender, req.body) - - await crawler.run() - await sender.finish() - } - - __log_webhook(req: express.Request, res: express.Response) { - console.log('webhook received: ', req.body) - res.send('ok') - } -} - -new Server() diff --git a/src/server/crawler_process.ts b/src/server/crawler_process.ts new file mode 100644 index 0000000..261dab0 --- /dev/null +++ b/src/server/crawler_process.ts @@ -0,0 +1,25 @@ +import { Sender } from "../sender"; +import { Crawler } from "../crawlers"; +import { Config } from "../types"; + +async function startCrawling(config: Config) { + const sender = new Sender(config); + await sender.init(); + + const crawler = await Crawler.create( + config.crawler_type || "cheerio", + sender, + config + ); + + await Crawler.run(crawler); + await sender.finish(); +} + +// Listen for messages from the parent thread +process.on("message", async (message: Config) => { + await startCrawling(message); + if (process.send) { + process.send("Crawling finished"); + } +}); diff --git a/src/server/index.ts b/src/server/index.ts new file mode 100644 index 0000000..355b860 --- /dev/null +++ b/src/server/index.ts @@ -0,0 +1,102 @@ +import * as dotenv from "dotenv"; +dotenv.config(); + +import express from "express"; +import { TaskQueue } from "./taskQueue"; +import { Sender } from "../sender"; +import { Crawler } from "../crawlers"; +import { ConfigSchema } from "../types"; +import { Log } from "@crawlee/core"; + +const port = process.env.PORT || 8080; + +const log = new Log({ prefix: "CrawlerServer" }); + +class Server { + taskQueue: TaskQueue; + app: express.Application; + + constructor() { + this.__check_env(); + + this.taskQueue = new TaskQueue(); + this.app = express(); + this.app.use(express.json()); + this.app.post("/crawl", this.__asyncCrawl.bind(this)); + this.app.post("/crawl/async", this.__asyncCrawl.bind(this)); + this.app.post("/crawl/sync", this.__syncCrawl.bind(this)); + this.app.post("/webhook", this.__log_webhook.bind(this)); + + this.app.listen(port, () => + log.debug(`Crawler app listening on port ${port}!`) + ); + } + + __check_env() { + const { REDIS_URL } = process.env; + log.debug("Checking environment variables", { REDIS_URL }); + if (!REDIS_URL) { + log.warning("REDIS_URL is not set", { + message: "Some features may not work properly", + }); + } + } + + __asyncCrawl(req: express.Request, res: express.Response) { + try { + const config = ConfigSchema.parse(req.body); + this.taskQueue.add(config); + log.info("Asynchronous crawl task added to queue", { config }); + res.status(200).send({ + status: "ok", + indexUid: config.meilisearch_index_uid, + }); + } catch (error) { + const errorMessage = + error instanceof Error ? error.message : "Unknown error"; + log.error("Invalid configuration received", { error }); + res + .status(400) + .send({ status: "error", error: { message: errorMessage } }); + } + } + + async __syncCrawl(req: express.Request, res: express.Response) { + try { + const config = ConfigSchema.parse(req.body); + log.info("Starting synchronous crawl", { config }); + const sender = new Sender(config); + await sender.init(); + + const crawler = await Crawler.create(config.crawler_type, sender, config); + + await Crawler.run(crawler); + await sender.finish(); + + log.info("Synchronous crawl completed", { config }); + res.status(200).send({ + status: "ok", + indexUid: config.meilisearch_index_uid, + }); + } catch (error) { + const errorMessage = + error instanceof Error ? error.message : "Unknown error"; + log.error("Invalid configuration or crawl error", { error }); + res + .status(400) + .send({ status: "error", error: { message: errorMessage } }); + } + } + + /** + * Logs the webhook request and sends a response + * + * This is an internal endpoint and does not need to be documented. + */ + __log_webhook(req: express.Request, res: express.Response) { + log.info("Webhook received", { body: req.body }); + res.status(200).send({ status: "ok" }); + } +} + +new Server(); diff --git a/src/server/taskQueue.ts b/src/server/taskQueue.ts new file mode 100644 index 0000000..2b80567 --- /dev/null +++ b/src/server/taskQueue.ts @@ -0,0 +1,110 @@ +import Queue, { Job, DoneCallback } from "bull"; +import { initMeilisearchClient } from "../utils/meilisearch_client"; +import { fork } from "child_process"; +import { Config } from "../types"; +import { Log } from "@crawlee/core"; + +const log = new Log({ prefix: "CrawlTaskQueue" }); + +export class TaskQueue { + queue: Queue.Queue; + + constructor() { + log.info("Initializing CrawlTaskQueue", { + redisUrl: process.env.REDIS_URL, + }); + + const queueName = "crawling"; + + try { + // Initialize queue with Redis URL if available + this.queue = + process.env.REDIS_URL ? + new Queue(queueName, process.env.REDIS_URL) + : new Queue(queueName); + + if (process.env.REDIS_URL) { + // Set up queue event handlers + void this.queue.process(this.__process.bind(this)); + + const eventHandlers = { + added: this.__jobAdded, + completed: this.__jobCompleted, + failed: this.__jobFailed, + active: this.__jobActive, + wait: this.__jobWaiting, + delayed: this.__jobDelayed, + }; + + // Bind all event handlers + Object.entries(eventHandlers).forEach(([event, handler]) => { + this.queue.on(event, handler.bind(this)); + }); + } + } catch (error) { + // Fallback to local queue if Redis connection fails + this.queue = new Queue(queueName); + log.error("Error while initializing CrawlTaskQueue", { + error, + message: (error as Error).message, + }); + } + } + + add(data: Config) { + log.debug("Adding task to queue", { config: data }); + void this.queue.add(data); + } + + __process(job: Job, done: DoneCallback) { + log.debug("Processing job", { jobId: job.id }); + const childProcess = fork("./dist/src/crawler_process.js"); + childProcess.send(job.data); + childProcess.on("message", (message) => { + log.info("Crawler process message", { message }); + done(); + }); + } + + __jobAdded(job: Job) { + log.debug("Job added to queue", { jobId: job.id }); + } + + __jobCompleted(job: Job) { + log.debug("Job completed", { jobId: job.id }); + } + + async __jobFailed(job: Job) { + log.error("Job failed", { jobId: job.id }); + //Create a Meilisearch client + const client = initMeilisearchClient({ + host: job.data.meilisearch_url, + apiKey: job.data.meilisearch_api_key, + clientAgents: job.data.user_agents, + }); + + //check if the tmp index exists + const tmp_index_uid = job.data.meilisearch_index_uid + "_crawler_tmp"; + try { + const index = await client.getIndex(tmp_index_uid); + if (index) { + const task = await client.deleteIndex(tmp_index_uid); + await client.waitForTask(task.taskUid); + } + } catch (e) { + log.error("Error while deleting tmp index", { error: e }); + } + } + + __jobActive(job: Job) { + log.debug("Job became active", { jobId: job.id }); + } + + __jobWaiting(job: Job) { + log.debug("Job is waiting", { jobId: job.id }); + } + + __jobDelayed(job: Job) { + log.debug("Job is delayed", { jobId: job.id }); + } +} diff --git a/src/taskQueue.ts b/src/taskQueue.ts deleted file mode 100644 index ca67e5c..0000000 --- a/src/taskQueue.ts +++ /dev/null @@ -1,81 +0,0 @@ -import Queue, { Job, DoneCallback } from 'bull' -import { initMeilisearchClient } from './meilisearch_client' -import { fork } from 'child_process' -import { Config } from './types' - -export class TaskQueue { - queue: Queue.Queue - - constructor() { - console.info('TaskQueue::constructor') - if (process.env.REDIS_URL) { - this.queue = new Queue('crawling', process.env.REDIS_URL) - } else { - this.queue = new Queue('crawling') - } - void this.queue.process(this.__process.bind(this)) - this.queue.on('added', this.__jobAdded.bind(this)) - this.queue.on('completed', this.__jobCompleted.bind(this)) - this.queue.on('failed', this.__jobFailed.bind(this)) - this.queue.on('active', this.__jobActive.bind(this)) - this.queue.on('wait', this.__jobWaiting.bind(this)) - this.queue.on('delayed', this.__jobDelayed.bind(this)) - } - - add(data: Config) { - void this.queue.add(data) - } - - __process(job: Job, done: DoneCallback) { - console.log('Job process', job.id) - const childProcess = fork('./dist/src/crawler_process.js') - childProcess.send(job.data) - childProcess.on('message', (message) => { - console.log(message) - done() - }) - } - - __jobAdded(job: Job) { - console.log('Job added', job.id) - } - - __jobCompleted(job: Job) { - console.log('Job completed', job.id) - } - - async __jobFailed(job: Job) { - console.log('Job failed', job.id) - //Create a Meilisearch client - const client = initMeilisearchClient({ - host: job.data.meilisearch_url, - apiKey: job.data.meilisearch_api_key, - clientAgents: job.data.user_agents, - }) - - //check if the tmp index exists - const tmp_index_uid = job.data.meilisearch_index_uid + '_crawler_tmp' - try { - const index = await client.getIndex(tmp_index_uid) - if (index) { - const task = await client.deleteIndex(tmp_index_uid) - await client.waitForTask(task.taskUid) - } - } catch (e) { - console.error(e) - } - } - - __jobActive(job: Job) { - console.log({ job }) - console.log('Job active', job.id) - } - - __jobWaiting(job: Job) { - console.log('Job waiting', job.id) - } - - __jobDelayed(job: Job) { - console.log('Job delayed', job.id) - } -} diff --git a/src/types.ts b/src/types.ts index 4bf5568..512ae7d 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,91 +1,632 @@ -import { Settings } from 'meilisearch' -import DocsearchScraper from './scrapers/docssearch' -import DefaultScraper from './scrapers/default' -import SchemaScraper from './scrapers/schema' - -export type Config = { - meilisearch_index_uid: string - meilisearch_url: string - meilisearch_api_key: string - start_urls: string[] - urls_to_exclude?: string[] - additional_request_headers?: Record - queue?: string[] - primary_key?: string - batch_size?: number - meilisearch_settings?: Settings - strategy?: 'docssearch' | 'default' | 'schema' - headless?: boolean - urls_to_index?: string[] // Overwrites start_urls if present - urls_to_not_index?: string[] - schema_settings?: SchemaSettings - user_agents?: string[] - webhook_payload?: Record - webhook_url?: string +import { Settings } from "meilisearch"; +import { CheerioAPI } from "cheerio"; +import { z } from "zod"; + +export const ConfigSchema = z.object({ + // Required Meilisearch Configuration + meilisearch_index_uid: z.string(), + meilisearch_url: z.string().url(), + meilisearch_api_key: z.string(), + + // Required Crawling Configuration + start_urls: z.array(z.string().url()), + crawler_type: z + .enum(["cheerio", "puppeteer", "playwright"]) + .optional() + .default("cheerio"), + + // Content Extraction Configuration + strategy: z + .enum(["docssearch", "default", "schema", "markdown", "custom", "pdf"]) + .optional() + .default("default"), + selectors: z.record(z.union([z.string(), z.array(z.string())])).nullish(), + schema_settings: z + .object({ + convert_dates: z.boolean().optional().default(false), + only_type: z.string().nullish(), + }) + .nullish(), + + // URL Control Configuration + urls_to_exclude: z.array(z.string()).nullish(), + urls_to_index: z.array(z.string()).nullish(), + urls_to_not_index: z.array(z.string()).nullish(), + use_sitemap: z.boolean().optional().default(false), + sitemap_urls: z.array(z.string()).nullish(), + + // Performance Configuration + max_concurrency: z.number().positive().optional(), + max_requests_per_minute: z.number().positive().optional(), + batch_size: z.number().positive().optional().default(1000), + + // Meilisearch Configuration + primary_key: z.string().nullish(), + meilisearch_settings: z.any().nullish(), // Settings type from meilisearch + + // Request Configuration + additional_request_headers: z.record(z.string()).nullish(), + user_agents: z.array(z.string()).optional().default([]), + launch_options: z.record(z.any()).nullish(), + + // Webhook Configuration + webhook_url: z.string().url().nullish(), + webhook_payload: z.record(z.any()).nullish(), + + // Error Detection + not_found_selectors: z.array(z.string()).nullish(), + keep_settings: z.boolean().optional().default(false), + + // PDF Configuration + pdf_settings: z + .object({ + extract_content: z.boolean().optional().default(false), + extract_metadata: z.boolean().optional().default(true), + }) + .nullish(), +}); + +export type CrawlerType = "cheerio" | "puppeteer" | "playwright"; + +export const CrawlerTypes = { + Cheerio: "cheerio" as CrawlerType, + Puppeteer: "puppeteer" as CrawlerType, + Playwright: "playwright" as CrawlerType, +} as const; + +export type Strategy = + | "docssearch" + | "default" + | "schema" + | "markdown" + | "custom" + | "pdf"; + +export const Strategies = { + DocSearch: "docssearch" as Strategy, + Default: "default" as Strategy, + Schema: "schema" as Strategy, + Markdown: "markdown" as Strategy, + Custom: "custom" as Strategy, + PDF: "pdf" as Strategy, +} as const; + +export interface Config { + /** Required Meilisearch Configuration */ + + /** The unique identifier for the Meilisearch index */ + meilisearch_index_uid: string; + + /** The URL of the Meilisearch server instance */ + meilisearch_url: string; + + /** The API key for authenticating with Meilisearch */ + meilisearch_api_key: string; + + /** Required Crawling Configuration */ + + /** + * Array of URLs where crawling will begin. These URLs are: + * 1. Added to the initial crawling queue + * 2. Used to generate URL patterns that determine which additional URLs to crawl + * 3. Used as base URLs for sitemap discovery if use_sitemap is true + * + * Example: If start_urls = ["https://example.com"], only URLs beginning with + * "https://example.com" will be crawled + */ + start_urls: string[]; + + /** Type of crawler to use for web scraping + * + * Specifies which web scraping engine to use. Each has different tradeoffs: + * + * - `cheerio`: Fast and lightweight HTML parser. Best for static sites. + * - Pros: Fastest option, low memory usage + * - Cons: Cannot execute JavaScript or render dynamic content + * - Recommended for: Static websites, documentation sites + * + * - `puppeteer`: Full Chrome browser automation. + * - Pros: Can execute JavaScript, render dynamic content + * - Cons: Higher resource usage, slower than cheerio + * - Recommended for: Single page applications (SPAs), JavaScript-heavy sites + * + * - `playwright` (beta): Modern browser automation framework. + * - Pros: Cross-browser support, modern APIs + * - Cons: Higher resource usage, slower than cheerio + * - Recommended for: Testing cross-browser compatibility + * - Note: Currently in beta, API may change + * + * Choose based on your site's requirements: + * - Use `cheerio` for static content (fastest) + * - Use `puppeteer`/`playwright` for dynamic JavaScript content + * + * @default "cheerio" + */ + crawler_type?: CrawlerType; + + /** Content Extraction Configuration */ + + /** Content extraction strategy to use + * + * Specifies how content should be extracted from crawled web pages. Available strategies: + * + * `default`: General-purpose strategy suitable for any website. Creates a hierarchical + * content structure by: + * - Extracting all page text + * - Using `p` tags for content blocks + * - Building logical sections based on heading tags (h1-h6) + * - Grouping content between headings into cohesive blocks + * + * `docssearch`: Compatible with DocSearch plugin implementations. Preserves content + * structure for seamless integration with existing DocSearch frontend components. + * + * `schema`: Extracts structured data from Schema.org compatible websites, including: + * - CMS-generated content + * - E-commerce product pages + * - Rich metadata and schema-defined content blocks + * Ideal for sites with standardized semantic markup. + * + * `markdown`: Converts webpage content to Markdown format. Particularly useful for: + * - Documentation sites + * - Code-heavy content + * - Building RAG (Retrieval Augmented Generation) systems + * + * `custom`: Provides full control over content extraction through user-defined selectors. + * Allows precise targeting of specific page elements and custom data structures. + * + * `pdf`: Extracts PDF content and metadata. Particularly useful for: + * - PDF documents + * + * @default "default" + */ + strategy?: Strategy; + + /** Custom CSS selectors for content extraction + * + * Only used when the strategy is set to `custom`. + * Those will be the selectors used to extract the content from the page. + * + * e.g. + * ```ts + * selectors: { + * title: "h1", + * content: ["p", "div.content"] + * } + * ``` + * + * @default null + */ + selectors?: Record | null; + + /** Settings for schema-based extraction + * Those settings are usefull only if strategy is set to `schema`. + * + * This allow to get more fine-grained control over the data extracted from the pages. Like getting only some specific types of data. + * + * For the list of the supported types, see https://schema.org/docs/full.html + * + * @default null + */ + schema_settings?: SchemaSettings | null; + + /** URL Control Configuration */ + + /** URLs to skip during crawling + * + * An array of URLs that will be excluded from the crawling process. The crawler will not visit or process these URLs. + * Supports glob patterns for flexible URL matching. + * + * Example: + * ```ts + * urls_to_exclude: [ + * "https://example.com/private", // Exclude all URLs under /private + * ] + * ``` + * + * Default: No URLs will be excluded. + * @default null + */ + urls_to_exclude?: string[] | null; + + /** Specific URLs to index (overrides start_urls if provided) + * + * Allows you to specify an exact list of URLs that should be indexed, overriding the start_urls + * crawling configuration. This is useful when you want to: + * + * - Crawl a large site but only index specific sections + * - Index a subset of pages while still crawling the full site structure + * - Precisely control which content gets added to your search index + * + * The crawler will still traverse all URLs according to the crawling rules, but will only + * extract and index content from URLs that match this list. + * + * When adding URLs to this list, keep in mind that it will also add all the sub-pages. + * + * Example: + * ```ts + * urls_to_index: [ + * "https://example.com/products", + * ] + * ``` + * + * Supports glob patterns: + * - `*` matches any sequence within a path segment + * - `**` matches across path segments + * + * @default null + */ + urls_to_index?: string[] | null; + + /** URLs to exclude from indexing + * + * Allows you to specify URLs that should be excluded from indexing, even if they match + * start_urls or urls_to_index patterns. The crawler will still traverse these URLs but + * won't extract or index their content. + * + * This is useful when you want to: + * - Exclude specific pages or sections from appearing in search results + * - Skip indexing duplicate/mirror pages to avoid content duplication + * - Prevent indexing of sensitive, private or internal pages + * - Exclude dynamically generated pages with duplicate content + * - Skip indexing of utility pages like login, admin, etc. + * + * Supports glob patterns: + * - `*` matches any sequence within a path segment + * - `**` matches across path segments + * + * Example: + * ```ts + * urls_to_not_index: [ + * "https://example.com/private", // Exclude all pages under /private + * "https://example.com/login", // Exclude specific page + * ] + * ``` + * + * @default null + */ + urls_to_not_index?: string[] | null; + + /** Whether to use sitemap for URL discovery + * + * When enabled (default), the crawler will: + * 1. Try to find sitemaps at common locations (/sitemap.xml, /sitemap_index.xml, etc.) + * 2. Parse robots.txt for Sitemap directives + * 3. Extract URLs from all discovered sitemaps + * 4. Add found URLs to the crawling queue + * + * If no sitemaps are found or if disabled, the crawler will use start_urls directly. + * + * @default false + */ + use_sitemap?: boolean; + + /** Optional custom sitemap URLs + * + * Allows specifying exact sitemap locations instead of auto-discovery. + * The crawler will: + * 1. Skip the default sitemap discovery process + * 2. Directly fetch and parse the provided sitemap URLs + * 3. Extract and queue all URLs found in these sitemaps + * + * Example: + * ```ts + * sitemap_urls: [ + * "https://example.com/custom-sitemap.xml", + * "https://example.com/playground-sitemap.xml" + * ] + * ``` + * + * If provided URLs are invalid or unreachable, the crawler will fall back to using start_urls. + * + * @default null + */ + sitemap_urls?: string[] | null; + + /** Performance Configuration */ + + /** Maximum number of concurrent requests + * + * Allow to rate limit the crawler by limiting the number of concurrent requests. + * The crawler will start slowly to crawl the site, and increase the concurrency until it reaches the limit. + * + * @default Infinity + */ + max_concurrency?: number | null; + + /** Maximum requests per minute rate limit + * + * This controls how many total requests can be made per minute. It counts the amount of requests done every second, to ensure there is not a burst of requests at the `maxConcurrency` limit followed by a long period of waiting. By default, it is set to `Infinity` which means the crawler will keep going up to the `maxConcurrency`. We would set this if we wanted our crawler to work at full throughput, but also not keep hitting the website we're crawling with non-stop requests. + * @default Infinity + */ + max_requests_per_minute?: number | null; + + /** Number of documents to index in each batch + * + * Controls how many documents are sent to Meilisearch in a single indexing request. + * Considerations for setting this value: + * - Higher values improve indexing throughput + * - Lower values provide more frequent progress feedback + * - Memory usage increases with batch size + * - Network stability may affect optimal batch size + * + * Example: + * ```ts + * batch_size: 500 // Send documents in batches of 500 + * ``` + * + * Default: 1000 documents per batch + * @default 1000 + */ + batch_size?: number | null; + + /** Meilisearch Configuration */ + + /** Primary key field for Meilisearch documents + * + * Specifies which field should be used as the unique identifier for documents in the Meilisearch index. + * This field must: + * - Be present in all documents + * - Contain unique values + * - Not change over time + * + * Example: + * ```ts + * primary_key: "product_id" // Use product_id field as unique identifier + * ``` + * + * Default: A random UUID will be generated and stored in the `uid` field. + */ + primary_key?: string | null; + + /** Custom Meilisearch index settings. + * These settings will be applied to the Meilisearch index each time the crawler runs. + * This will override any existing settings on the index. + * + * Common settings include: + * - searchableAttributes: Fields that can be searched + * - filterableAttributes: Fields that can be filtered + * - sortableAttributes: Fields that can be sorted + * - distinctAttribute: Field used for deduplication + * - rankingRules: Rules that determine search result order + * - stopWords: Words to ignore during search + * - synonyms: Word equivalences for search + * + * Example: + * ```ts + * meilisearch_settings: { + * searchableAttributes: ['title', 'content'], + * filterableAttributes: ['category'], + * distinctAttribute: 'url' + * } + * ``` + * + * @see https://www.meilisearch.com/docs/learn/configuration/settings + * + * Default: Strategy-specific settings will be applied. + */ + meilisearch_settings?: Settings | null; + + /** Request Configuration */ + + /** Custom headers to include with HTTP requests + * + * Allows adding custom HTTP headers to all requests made during crawling. + * Common use cases: + * - Authentication headers for protected sites + * - Custom user agents + * - API keys or tokens + * + * Example: + * ```ts + * additional_request_headers: { + * "Authorization": "Bearer token123", + * "User-Agent": "Custom Bot 1.0" + * } + * ``` + * + * Default: No additional headers will be added. + * @default null + */ + additional_request_headers?: Record | null; + + /** Custom User-Agent strings to rotate through + * Used to send a custom user agent to Meilisearch. + * + * @default [] + */ + user_agents?: string[]; + + /** Custom Puppeteer instance + * Not useful for most users, but can be used to pass custom options to the Puppeteer instance. + * @default null + */ + launch_options?: Record | null; + + /** Webhook Configuration */ + + /** URL to send webhook notifications to + * + * When configured, the crawler will send HTTP POST notifications to this URL + * at key points during execution: + * - started: When crawling begins + * - active: During crawling with current progress + * - paused: If crawling is paused + * - completed: When crawling finishes successfully + * - failed: If an error occurs + * + * The payload will include: + * - status: The notification type (see above) + * - date: ISO timestamp + * - meilisearch_url: Target Meilisearch instance + * - meilisearch_index_uid: Target index + * - webhook_payload: Any custom payload if configured + * - error: Error message if status is "failed" + * - nb_documents_sent: Document count if status is "completed" + * + * @default null + */ + webhook_url?: string | null; + + /** Custom payload to include in webhook requests + * + * Additional data that will be included in every webhook notification payload. + * Only applies when webhooks are enabled via webhook_url. + * + * This allows you to add custom context or metadata to help identify and process + * webhook notifications in your application. + * + * Example: + * ```ts + * webhook_payload: { + * environment: 'production', + * source: 'docs-crawler', + * version: '1.0.0' + * } + * ``` + * + * @default {} + */ + webhook_payload?: Record | null; + + /** Error Detection */ + + /** Selectors that indicate a page was not found + * Interesting if you see some 404 pages in the answer of your searches. You can here add some selector to identify if the page is a 404. In some case the not found page are responing a 200 with a message "Page not found". + * + * e.g. + * ```ts + * not_found_selectors: ["h1.error-message", "h1:contains('Page not found')"] + * ``` + * + * The selectors are JQuery selector used by Cheerio. + * + * @default null + */ + not_found_selectors?: string[] | null; + + /** Whether to keep existing Meilisearch index settings + * + * When true and the primary index already exists, the crawler will keep + * the existing index settings instead of applying new ones. + * When false or the index doesn't exist, new settings will be applied. + * + * @default true + */ + keep_settings?: boolean | null; + + /** PDF Strategy Configuration */ + pdf_settings?: { + /** Extract PDF content + * + * @default false + */ + extract_content?: boolean; + + /** Extract PDF metadata + * + * @default false + */ + extract_metadata?: boolean; + } | null; } export type SchemaSettings = { - convert_dates: boolean - only_type: string -} + /** Convert dates to timestamp format + * + * Dates on schema.org are often represented as strings with the format "2024-01-01". This option will convert those dates to timestamp format, which is easier for search engines to understand. + * + * @default false + */ + convert_dates?: boolean; + + /** Only extract data from the specified type + * + * See type list here: https://schema.org/docs/full.html + * + * @default null + */ + only_type?: string | null; +}; -export type Scraper = DocsearchScraper | DefaultScraper | SchemaScraper +export type Scraper = { + get: (url: string, $: CheerioAPI) => Promise; +}; -export type DocumentType = DocsSearchDocument | DefaultDocument | SchemaDocument +export type DocumentType = + | DocsSearchDocument + | DefaultDocument + | SchemaDocument + | MarkdownDocument + | CustomDocument; export type HierarchyLevel = { - hierarchy_lvl0: string | null - hierarchy_lvl1: string | null - hierarchy_lvl2: string | null - hierarchy_lvl3: string | null - hierarchy_lvl4: string | null - hierarchy_lvl5: string | null -} + hierarchy_lvl0?: string | null; + hierarchy_lvl1?: string | null; + hierarchy_lvl2?: string | null; + hierarchy_lvl3?: string | null; + hierarchy_lvl4?: string | null; + hierarchy_lvl5?: string | null; +}; export type RadioHierarchyLevel = { - hierarchy_radio_lvl0: string | null - hierarchy_radio_lvl1: string | null - hierarchy_radio_lvl2: string | null - hierarchy_radio_lvl3: string | null - hierarchy_radio_lvl4: string | null - hierarchy_radio_lvl5: string | null -} + hierarchy_radio_lvl0?: string | null; + hierarchy_radio_lvl1?: string | null; + hierarchy_radio_lvl2?: string | null; + hierarchy_radio_lvl3?: string | null; + hierarchy_radio_lvl4?: string | null; + hierarchy_radio_lvl5?: string | null; +}; -export type HTag = 'H1' | 'H2' | 'H3' | 'H4' | 'H5' +export type HTag = "H1" | "H2" | "H3" | "H4" | "H5"; export type DocsSearchDocument = HierarchyLevel & RadioHierarchyLevel & { - url: string - uid?: string - anchor: string - content?: string[] | string - level: number - type: 'lvl0' | 'lvl1' | 'lvl2' | 'lvl3' | 'lvl4' | 'lvl5' | 'content' - } + url: string; + uid?: string; + anchor: string; + content?: string[] | string; + level: number; + type: "lvl0" | "lvl1" | "lvl2" | "lvl3" | "lvl4" | "lvl5" | "content"; + }; export type DefaultDocument = { - url: string - uid?: string - anchor: string - title: string - meta: Meta - image_url?: string - page_block: number - urls_tags: string[] - h1?: string | null - h2?: string | null - h3?: string | null - h4?: string | null - h5?: string | null - h6?: string | null - p: string[] | string -} + url: string; + uid?: string; + anchor: string; + title: string; + meta: Meta; + image_url?: string; + page_block: number; + urls_tags: string[]; + h1?: string | null; + h2?: string | null; + h3?: string | null; + h4?: string | null; + h5?: string | null; + h6?: string | null; + p: string[] | string; +}; export type SchemaDocument = { - uid: string - [key: string]: any -} + uid: string; + [key: string]: any; +}; export type Meta = { - [name: string]: string -} + [name: string]: string; +}; + +export type MarkdownDocument = { + uid: string; + url: string; + title: string; + description: string; + content: string; + urls_tags: string[]; + meta?: Meta; +}; + +export type CustomDocument = { + uid: string; + [key: string]: any; +}; diff --git a/src/meilisearch_client.ts b/src/utils/meilisearch_client.ts similarity index 69% rename from src/meilisearch_client.ts rename to src/utils/meilisearch_client.ts index 6d65d38..3df6003 100644 --- a/src/meilisearch_client.ts +++ b/src/utils/meilisearch_client.ts @@ -1,5 +1,5 @@ -import { Config, MeiliSearch } from 'meilisearch' -import { PACKAGE_VERSION } from './package_version' +import { Config, MeiliSearch } from "meilisearch"; +import { PACKAGE_VERSION } from "./package_version"; export function initMeilisearchClient({ host, @@ -13,5 +13,5 @@ export function initMeilisearchClient({ `Meilisearch Crawler (v${PACKAGE_VERSION})`, ...clientAgents, ], - }) + }); } diff --git a/src/package_version.ts b/src/utils/package_version.ts similarity index 100% rename from src/package_version.ts rename to src/utils/package_version.ts diff --git a/src/utils/sitemap.ts b/src/utils/sitemap.ts new file mode 100644 index 0000000..bb34a73 --- /dev/null +++ b/src/utils/sitemap.ts @@ -0,0 +1,193 @@ +import { Log } from "crawlee"; +import { XMLParser } from "fast-xml-parser"; + +const log = new Log({ prefix: "SitemapUtils" }); + +export async function extractUrlsFromSitemap( + startUrls: string[] +): Promise { + log.info("Starting sitemap URL extraction", { startUrls }); + const sitemapUrls = new Set(); + const processedSitemaps = new Set(); + + const parser = new XMLParser({ + ignoreAttributes: false, + attributeNamePrefix: "@_", + }); + + async function processSitemap(url: string) { + log.debug("Checking if sitemap already processed", { + url, + processed: processedSitemaps.has(url), + }); + if (processedSitemaps.has(url)) return; + processedSitemaps.add(url); + log.debug("Added sitemap to processed set", { + url, + totalProcessed: processedSitemaps.size, + }); + + try { + log.debug("Processing sitemap", { url }); + const response = await fetch(url); + log.debug("Received response from sitemap fetch", { + url, + status: response.status, + ok: response.ok, + }); + + if (!response.ok) { + log.warning("Failed to fetch sitemap", { + url, + status: response.status, + statusText: response.statusText, + }); + return; + } + + const content = await response.text(); + const parsed = parser.parse(content); + + // Handle sitemap index files + if (parsed.sitemapindex?.sitemap) { + const sitemaps = Array.isArray(parsed.sitemapindex.sitemap) + ? parsed.sitemapindex.sitemap + : [parsed.sitemapindex.sitemap]; + + log.debug("Found sitemap index", { count: sitemaps.length }); + + for (const sitemap of sitemaps) { + const loc = sitemap.loc; + if (typeof loc === "string") { + await processSitemap(loc); + } + } + return; + } + + // Handle regular sitemaps + if (parsed.urlset?.url) { + const urls = Array.isArray(parsed.urlset.url) + ? parsed.urlset.url + : [parsed.urlset.url]; + + log.debug("Processing found URLs", { count: urls.length }); + + const previousSize = sitemapUrls.size; + urls.forEach((urlObj: any) => { + if (typeof urlObj.loc === "string") { + sitemapUrls.add(urlObj.loc); + } + }); + const newUrls = sitemapUrls.size - previousSize; + + log.debug("Added URLs to collection", { + url, + totalFound: urls.length, + newUrlsAdded: newUrls, + totalUrlsNow: sitemapUrls.size, + }); + + // Check for nested sitemaps + for (const urlObj of urls) { + if (typeof urlObj.loc === "string" && urlObj.loc.endsWith(".xml")) { + log.debug("Found nested sitemap", { url: urlObj.loc }); + await processSitemap(urlObj.loc); + } + } + } + } catch (error) { + log.warning("Failed to process sitemap", { + url, + error: error instanceof Error ? error.message : String(error), + stack: error instanceof Error ? error.stack : undefined, + }); + } + } + + for (const startUrl of startUrls) { + try { + log.info("Processing start URL", { startUrl }); + const baseUrl = new URL(startUrl); + const possibleSitemapUrls = [ + `${baseUrl.origin}/sitemap.xml`, + `${baseUrl.origin}/sitemap.0.xml`, + `${baseUrl.origin}/sitemap_index.xml`, + `${baseUrl.origin}/sitemap`, + `${baseUrl.origin}/robots.txt`, + ]; + log.debug("Generated possible sitemap URLs", { + baseUrl: baseUrl.origin, + possibleUrls: possibleSitemapUrls, + }); + + for (const sitemapUrl of possibleSitemapUrls) { + try { + log.debug("Attempting to fetch possible sitemap", { + url: sitemapUrl, + }); + const response = await fetch(sitemapUrl); + log.debug("Received response for possible sitemap", { + url: sitemapUrl, + status: response.status, + ok: response.ok, + }); + + if (response.ok) { + const content = await response.text(); + log.debug("Successfully fetched content", { + url: sitemapUrl, + contentLength: content.length, + }); + + // If it's robots.txt, extract sitemap URLs + if (sitemapUrl.endsWith("robots.txt")) { + log.debug("Processing robots.txt file", { url: sitemapUrl }); + const sitemapMatches = content.match(/^Sitemap: (.+)$/gm); + log.debug("Found sitemap directives in robots.txt", { + url: sitemapUrl, + matchesFound: sitemapMatches?.length || 0, + }); + + if (sitemapMatches) { + const extractedUrls = sitemapMatches.map((line) => + line.replace("Sitemap: ", "").trim() + ); + log.debug("Extracted sitemap URLs from robots.txt", { + count: extractedUrls.length, + urls: extractedUrls, + }); + + for (const url of extractedUrls) { + await processSitemap(url); + } + } + } else { + await processSitemap(sitemapUrl); + } + } + } catch (error) { + log.debug("Failed to fetch possible sitemap", { + url: sitemapUrl, + error: (error as Error).message, + stack: (error as Error).stack, + }); + continue; + } + } + } catch (error) { + log.warning("Failed to process start URL for sitemap", { + url: startUrl, + error: (error as Error).message, + stack: (error as Error).stack, + }); + } + } + + log.info("Completed sitemap URL extraction", { + totalUrlsFound: sitemapUrls.size, + totalSitemapsProcessed: processedSitemaps.size, + }); + log.debug("Final sitemap URLs", { urls: Array.from(sitemapUrls) }); + return Array.from(sitemapUrls); +} diff --git a/src/webhook.ts b/src/webhook.ts index d5b5e03..cde770d 100644 --- a/src/webhook.ts +++ b/src/webhook.ts @@ -1,89 +1,109 @@ -import axios, { AxiosResponse } from 'axios' -import { Config } from './types' +import axios, { AxiosResponse } from "axios"; +import { Config } from "./types"; +import { Log } from "@crawlee/core"; + +const log = new Log({ prefix: "WebhookNotifier" }); // This webhook sender is a singleton export class Webhook { - private static instance: Webhook - private webhook_url: string | undefined + private static instance: Webhook; + private webhook_url: string | undefined; - configured = false + configured = false; constructor(config: Config) { - console.info('Webhook::constructor') + log.info("Initializing WebhookNotifier", { + webhookConfigured: !!config.webhook_url, + }); if (config.webhook_url || process.env.WEBHOOK_URL) { - this.configured = true - this.webhook_url = config.webhook_url || process.env.WEBHOOK_URL + this.configured = true; + this.webhook_url = config.webhook_url || process.env.WEBHOOK_URL; } else { - console.warn( - 'Webhook not configured; if you want to use a webhook, set the WEBHOOK_URL environment variable or provide the webhook_url option in the config' - ) + log.warning( + "WebhookNotifier not configured. Set WEBHOOK_URL environment variable or provide webhook_url in config for notifications." + ); } } public static get(config: Config): Webhook { if (!Webhook.instance) { - Webhook.instance = new Webhook(config) + Webhook.instance = new Webhook(config); } - return Webhook.instance + return Webhook.instance; } async started(config: Config) { - if (!this.configured) return - await this.__callWebhook(config, { status: 'started' }) + if (!this.configured) return; + await this.__callWebhook(config, { status: "started" }); } async active(config: Config, data: Record) { - if (!this.configured) return - await this.__callWebhook(config, { status: 'active', ...data }) + if (!this.configured) return; + await this.__callWebhook(config, { status: "active", ...data }); } async paused(config: Config) { - if (!this.configured) return - await this.__callWebhook(config, { status: 'paused' }) + if (!this.configured) return; + await this.__callWebhook(config, { status: "paused" }); } async completed(config: Config, nbDocumentsSent: number) { - if (!this.configured) return + if (!this.configured) return; await this.__callWebhook(config, { - status: 'completed', + status: "completed", nb_documents_sent: nbDocumentsSent, - }) + }); } async failed(config: Config, error: Error) { - if (!this.configured) return - await this.__callWebhook(config, { status: 'failed', error: error.message }) + if (!this.configured) return; + await this.__callWebhook(config, { + status: "failed", + error: error.message, + }); } async __callWebhook(config: Config, data: any) { - if (!this.webhook_url) return + if (!this.webhook_url) return; try { - data.meilisearch_url = config.meilisearch_url - data.meilisearch_index_uid = config.meilisearch_index_uid + data.meilisearch_url = config.meilisearch_url; + data.meilisearch_index_uid = config.meilisearch_index_uid; if (config.webhook_payload) { - data.webhook_payload = config.webhook_payload + data.webhook_payload = config.webhook_payload; } - const date = new Date() - data.date = date.toISOString() + const date = new Date(); + data.date = date.toISOString(); const headers: Record = { - 'Content-Type': 'application/json', - } + "Content-Type": "application/json", + }; if (process.env.WEBHOOK_TOKEN) { - headers['Authorization'] = `Bearer ${process.env.WEBHOOK_TOKEN}` + headers["Authorization"] = `Bearer ${process.env.WEBHOOK_TOKEN}`; } + log.debug("Sending webhook notification", { + url: this.webhook_url, + status: data.status, + }); const response: AxiosResponse = await axios.post(this.webhook_url, data, { headers: headers, - }) + }); + log.debug("Webhook notification sent successfully", { + status: response.status, + webhookStatus: data.status, + }); if (response.status == 401 || response.status == 403) { - this.configured = false + log.error("Webhook authentication failed", { status: response.status }); + this.configured = false; } } catch (error) { - console.error('Error calling webhook:', error) + log.error("Failed to send webhook notification", { + error, + status: data.status, + }); } } } diff --git a/test/globalSetup.ts b/test/globalSetup.ts new file mode 100644 index 0000000..3fec6d0 --- /dev/null +++ b/test/globalSetup.ts @@ -0,0 +1,19 @@ +import { MeiliSearch } from "meilisearch"; + +export default async function globalSetup() { + const meiliClient = new MeiliSearch({ + host: process.env.MEILI_HOST || "http://localhost:7700", + apiKey: process.env.MEILI_MASTER_KEY || "masterKey", + }); + + console.log("Cleaning up Meilisearch indexes..."); + try { + const { results: indexes } = await meiliClient.getIndexes(); + await Promise.all( + indexes.map((index) => meiliClient.deleteIndex(index.uid)) + ); + console.log(`Cleaned up ${indexes.length} indexes`); + } catch (error) { + console.error("Failed to clean up Meilisearch:", error); + } +} diff --git a/test/helpers/BaseTest.ts b/test/helpers/BaseTest.ts new file mode 100644 index 0000000..27617b4 --- /dev/null +++ b/test/helpers/BaseTest.ts @@ -0,0 +1,86 @@ +import { ScraperTestHelper } from "./ScraperTestHelper"; +import { Config } from "../../src/types"; + +export interface TestMetrics { + testName: string; + startTime: number; + endTime: number; + duration: number; + indexSize: number; + isAsync: boolean; +} + +export class BaseTest { + public helper: ScraperTestHelper; + public currentIndexUid: string; + private metrics: TestMetrics | null = null; + + constructor() { + this.currentIndexUid = this.generateRandomIndexUid(); + + this.helper = new ScraperTestHelper(this.currentIndexUid); + } + + async setup() { + // Can be extended by child classes + } + + async teardown() { + if (this.currentIndexUid) { + // Save metrics before deleting the index + if (this.metrics) { + await this.saveMetrics(); + } + await this.helper.deleteIndex(); + } + } + + private generateRandomIndexUid(): string { + const testName = expect.getState().currentTestName || "unknown"; + // Clean the test name to make it URL-safe + const safeTestName = testName + .toLowerCase() + .replace(/[^a-z0-9]+/g, "-") + .replace(/(^-|-$)/g, ""); + + return `test-${safeTestName}-${Date.now()}`; + } + + public async runScraper(config: Config, useAsync = false) { + const startTime = Date.now(); + + config.meilisearch_index_uid = this.currentIndexUid; + + await this.helper.startScraping(config, useAsync); + + if (useAsync) { + await this.helper.waitForScrapingToComplete(); + } + + const endTime = Date.now(); + const stats = await this.helper.getStats(); + + this.metrics = { + testName: expect.getState().currentTestName || "unknown", + startTime, + endTime, + duration: endTime - startTime, + indexSize: stats?.numberOfDocuments || 0, + isAsync: useAsync, + }; + + return this.currentIndexUid; + } + + private async saveMetrics() { + if (!this.metrics) return; + + console.log("Test Metrics:", { + testName: this.metrics.testName, + duration: `${this.metrics.duration}ms`, + indexSize: this.metrics.indexSize, + isAsync: this.metrics.isAsync, + timestamp: new Date(this.metrics.startTime).toISOString(), + }); + } +} diff --git a/test/helpers/ScraperTestHelper.ts b/test/helpers/ScraperTestHelper.ts new file mode 100644 index 0000000..e9032b5 --- /dev/null +++ b/test/helpers/ScraperTestHelper.ts @@ -0,0 +1,161 @@ +import axios from "axios"; +import { Config } from "../../src/types"; +import { MeiliSearch } from "meilisearch"; + +export class ScraperTestHelper { + private meiliClient: MeiliSearch; + private scraperUrl: string; + private indexUid: string; + + constructor(indexUid: string) { + this.indexUid = indexUid; + this.meiliClient = new MeiliSearch({ + host: process.env.MEILI_HOST || "http://localhost:7700", + apiKey: process.env.MEILI_MASTER_KEY || "masterKey", + }); + this.scraperUrl = process.env.SCRAPER_URL || "http://localhost:8080"; + } + + async startScraping(config: Config, useAsync = false): Promise { + const endpoint = useAsync ? "/crawl/async" : "/crawl/sync"; + const url = `${this.scraperUrl}${endpoint}`; + console.log(`Scraping URL: ${url}`); + + try { + const response = await axios.post(url, config); + console.log("Response:", response.status, response.statusText); + if (!response.data?.indexUid && !config.meilisearch_index_uid) { + throw new Error("No index UID returned from server or config"); + } + return response.data?.indexUid || config.meilisearch_index_uid; + } catch (error) { + if (axios.isAxiosError(error)) { + console.error("Axios Error Details:", { + message: error.message, + status: error.response?.status, + statusText: error.response?.statusText, + data: error.response?.data, + url: error.config?.url, + method: error.config?.method, + requestData: error.config?.data, + }); + } else { + console.error("Non-Axios Error:", error); + } + throw error; + } + } + + async waitForScrapingToComplete(timeoutMs = 30000): Promise { + const startTime = Date.now(); + + while (Date.now() - startTime < timeoutMs) { + const tasks = await this.meiliClient.index(this.indexUid).getTasks(); + const pendingTasks = tasks.results.filter( + (task) => task.status !== "succeeded" && task.status !== "failed" + ); + + if (pendingTasks.length === 0) { + return; + } + + await new Promise((resolve) => setTimeout(resolve, 1000)); + } + + throw new Error(`Scraping didn't complete within ${timeoutMs}ms timeout`); + } + + async getSearchResults( + query: string = "", + options: Record | undefined = undefined, + maxAttempts = 10, + delayMs = 1000 + ): Promise { + return await this.retryOperation( + async () => { + const response = await this.meiliClient + .index(this.indexUid) + .search(query, options); + + if (response.hits.length === 0) { + throw new Error("No search results found"); + } else { + return response.hits; + } + }, + maxAttempts, + delayMs + ); + } + + async debugStats() { + const stats = await this.getStats(); + console.log("Stats:", stats); + } + + async debugSearchResults( + query: string = "", + options: Record | undefined = undefined + ) { + const searchResults = await this.getSearchResults(query, options); + console.log("Search Results:", searchResults); + } + + async debugSettings() { + const settings = await this.getSettings(); + console.log("Settings:", settings); + } + + async getStats(maxAttempts = 10, delayMs = 1000): Promise { + return await this.retryOperation( + async () => { + const stats = await this.meiliClient.index(this.indexUid).getStats(); + return stats; + }, + maxAttempts, + delayMs + ); + } + + async getSettings(maxAttempts = 10, delayMs = 1000): Promise { + return await this.retryOperation( + async () => { + const settings = await this.meiliClient + .index(this.indexUid) + .getSettings(); + return settings; + }, + maxAttempts, + delayMs + ); + } + + async deleteIndex() { + try { + await this.meiliClient.deleteIndex(this.indexUid); + } catch (error) { + // Ignore if index doesn't exist + } + } + + private async retryOperation( + operation: () => Promise, + maxAttempts: number, + delayMs: number + ): Promise { + for (let attempt = 1; attempt <= maxAttempts; attempt++) { + try { + return await operation(); + } catch (error) { + if (attempt === maxAttempts) { + throw error; + } + console.log( + `Attempt ${attempt}/${maxAttempts} failed, retrying in ${delayMs}ms...` + ); + await new Promise((resolve) => setTimeout(resolve, delayMs)); + } + } + throw new Error("Operation failed after all attempts"); + } +} diff --git a/test/integration/blog-scraping.test.ts b/test/integration/blog-scraping.test.ts new file mode 100644 index 0000000..5a53551 --- /dev/null +++ b/test/integration/blog-scraping.test.ts @@ -0,0 +1,46 @@ +import { BaseTest } from "../helpers/BaseTest"; +import { createTestConfig } from "../setup"; + +describe("Blog Scraping", () => { + let testInstance: BaseTest; + + beforeEach(() => { + testInstance = new BaseTest(); + return testInstance.setup(); + }); + + afterEach(() => { + return testInstance.teardown(); + }); + + it("scrap blog posts with no options", async () => { + const config = createTestConfig({ + start_urls: ["http://playground:3000/blog"], + }); + + await testInstance.runScraper(config); + + // Test search results + const searchResults = await testInstance.helper.getSearchResults(); + expect(searchResults).toHaveSearchResult({ + h3: "The Art and History of Camembert Cheese", + }); + + // Test stats + const stats = await testInstance.helper.getStats(); + expect(stats).toHaveDocumentCount(3); // Assuming 3 blog posts + }); + + it("scrap blog posts with strategy schema", async () => { + const config = createTestConfig({ + start_urls: ["http://playground:3000/blog"], + strategy: "schema", + }); + + await testInstance.runScraper(config); + + await testInstance.helper.debugStats(); + await testInstance.helper.debugSearchResults(); + await testInstance.helper.debugSettings(); + }); +}); diff --git a/test/setup.ts b/test/setup.ts new file mode 100644 index 0000000..eb36318 --- /dev/null +++ b/test/setup.ts @@ -0,0 +1,68 @@ +import { Config } from "../src/types"; + +// Extend the global jest object with our custom matchers +declare global { + namespace jest { + interface Matchers { + toHaveSearchResult(expected: any): R; + toHaveDocumentCount(expected: number): R; + toMatchSearchResults(expected: any[]): R; + } + } +} + +// Custom matchers +expect.extend({ + toHaveSearchResult(received: any[], expected: any) { + const found = received.some((item) => + Object.entries(expected).every(([key, value]) => item[key] === value) + ); + + return { + message: () => + `expected ${JSON.stringify(received)} to have an item matching ${JSON.stringify(expected)}`, + pass: found, + }; + }, + + toHaveDocumentCount( + received: { numberOfDocuments: number }, + expected: number + ) { + const pass = received.numberOfDocuments === expected; + + return { + message: () => + `expected ${received.numberOfDocuments} documents to equal ${expected}`, + pass, + }; + }, + + toMatchSearchResults(received: any[], expected: any[]) { + const pass = + received.length === expected.length && + received.every((item, index) => { + const expectedItem = expected[index]; + return Object.entries(expectedItem).every( + ([key, value]) => item[key] === value + ); + }); + + return { + message: () => + `expected search results to match:\n` + + `Received: ${JSON.stringify(received, null, 2)}\n` + + `Expected: ${JSON.stringify(expected, null, 2)}`, + pass, + }; + }, +}); + +// Test configuration helper +export const createTestConfig = (overrides: Partial = {}): Config => ({ + start_urls: ["http://playground:3000"], + meilisearch_index_uid: `test-${Date.now()}`, + meilisearch_url: "http://meilisearch:7700", + meilisearch_api_key: "masterKey", + ...overrides, +}); diff --git a/tsconfig.json b/tsconfig.json index 30c83e8..7b14e50 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,11 +3,20 @@ "compilerOptions": { "module": "CommonJS", "target": "ES2022", - "outDir": "./dist/src", + "lib": ["ES2019", "DOM"], + "outDir": "./dist/", "allowJs": true, "strict": true, - "esModuleInterop": true + "noImplicitAny": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "strictBindCallApply": true, + "strictPropertyInitialization": true, + "noImplicitThis": true, + "alwaysStrict": true, + "esModuleInterop": true, + "skipLibCheck": true }, - "include": ["src/**/*"], - "exclude": ["node_modules"] + "include": ["src/**/*", "test/**/*"], + "exclude": ["node_modules", "playground", "dist"] } diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 74fb8c3..0000000 --- a/yarn.lock +++ /dev/null @@ -1,4051 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@apify/consts@^2.11.0", "@apify/consts@^2.15.0": - version "2.15.0" - resolved "https://registry.yarnpkg.com/@apify/consts/-/consts-2.15.0.tgz#3938053c012304e631e22ec9473f3a6504e28e93" - integrity sha512-sOFJoAtndoz6gTG7NcgMfuHeFy/iJ7Y4cFgCf2tqXZsq+VV3F3s5qU6RzYPg4Ya/iWqum6ufa948cs4JtNWPNA== - -"@apify/consts@^2.16.0": - version "2.16.0" - resolved "https://registry.yarnpkg.com/@apify/consts/-/consts-2.16.0.tgz#d2fa7a07ce3f358c13c44d8820987711428cae5e" - integrity sha512-L+pRDDiwnT+O4nf49EKUrSrnCrIfhtff3YPk9hyrZmOCqI0LjYRbPHhpLBfBJrKOoWKTa31MyhWS0V5EoRIqEQ== - -"@apify/datastructures@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@apify/datastructures/-/datastructures-2.0.0.tgz#de2cb4cd81ddc982b2d5b65cb6e2cdddc9e86b24" - integrity sha512-O7I31PvG4Qb/Zc2lAIkSUBRDLKDKLrmqtWG3Ea8To5xvbPKdiLuVx3IuAzjCs1UQVTbhN590Sw5xBoFghreAYA== - -"@apify/log@^2.0.0", "@apify/log@^2.2.18", "@apify/log@^2.2.8": - version "2.2.18" - resolved "https://registry.yarnpkg.com/@apify/log/-/log-2.2.18.tgz#534f96c5fa4b3f5db3ad62afedd80c993720ff1d" - integrity sha512-9WVTBw3ZjIPCW3YW1srPkzJO5+S43mol5upgoR318KRFgiunXl/sI0ThP0DmfboIW3Yr66OqyjFPs432hdS7ww== - dependencies: - "@apify/consts" "^2.15.0" - ansi-colors "^4.1.1" - -"@apify/log@^2.1.3": - version "2.2.19" - resolved "https://registry.yarnpkg.com/@apify/log/-/log-2.2.19.tgz#b5d5a67ef31599c422cdfd60df4324863af3d40a" - integrity sha512-tIAt9pWDgs7EYM/YoKZy2w57v53urU+5yVInAJBmDybOiuu3e3wQyVMYhNyrhPyHdllWoCW3b4ZnBikjwCRcFQ== - dependencies: - "@apify/consts" "^2.16.0" - ansi-colors "^4.1.1" - -"@apify/ps-tree@^1.1.4": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@apify/ps-tree/-/ps-tree-1.2.0.tgz#e6a7831b207a1e26e6b2c3523bf501c83ef1c45c" - integrity sha512-VHIswI7rD/R4bToeIDuJ9WJXt+qr5SdhfoZ9RzdjmCs9mgy7l0P4RugQEUCcU+WB4sfImbd4CKwzXcn0uYx1yw== - dependencies: - event-stream "3.3.4" - -"@apify/pseudo_url@^2.0.14": - version "2.0.24" - resolved "https://registry.yarnpkg.com/@apify/pseudo_url/-/pseudo_url-2.0.24.tgz#144492e2f32d1b582e7518d5e6f35317e95b3a7a" - integrity sha512-HDEkcJ54hjQ2yZZgYoPIhV0kaogBbUngIQJnIu3BzwfKPcOd4RnvE793V/cAhTI59r8PbRHORc/GOxfQJxt3PA== - dependencies: - "@apify/log" "^2.2.18" - "@sapphire/shapeshift" "^3.6.0" - -"@apify/timeout@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@apify/timeout/-/timeout-0.3.0.tgz#73819a877649e274a6cc2a574bbe3f4586b078b5" - integrity sha512-jLwg4vC1hHsU1UWbwO5suYFGPBANPy5Dovc6P9y56TZ1B2RsRYjfDaX3BdfaAa6E2akib19EinF9EjuN13m5AA== - -"@apify/tsconfig@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@apify/tsconfig/-/tsconfig-0.1.0.tgz#c3d2169d54ab06190721ae329cafe941af83f3c5" - integrity sha512-ba9Y6AMocRucO3AVTb6GM2V+oy1wByNlCDzamK+IC+aqU3pCgJwSN87uNu6iEgu+uetsqYvVbXJYakwiQO1LGA== - -"@apify/utilities@^2.0.0", "@apify/utilities@^2.1.4", "@apify/utilities@^2.3.3": - version "2.7.4" - resolved "https://registry.yarnpkg.com/@apify/utilities/-/utilities-2.7.4.tgz#557bc49ee8e6b21f9c13c0878e5dfc1aa97bfa50" - integrity sha512-ziP7bC3VPHTIx6RkWrcNuKxsZVaSnB9Bv0eeTsudK4Yo9XNzlKn6mGiw2yZursei09TP9Kvl8q3lLsemf2llWA== - dependencies: - "@apify/consts" "^2.15.0" - "@apify/log" "^2.2.18" - -"@babel/code-frame@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" - integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== - dependencies: - "@babel/highlight" "^7.22.5" - -"@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== - -"@babel/highlight@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" - integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== - dependencies: - "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/runtime@^7.21.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.5.tgz#8564dd588182ce0047d55d7a75e93921107b57ec" - integrity sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA== - dependencies: - regenerator-runtime "^0.13.11" - -"@crawlee/basic@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@crawlee/basic/-/basic-3.4.0.tgz#b2b90dac67d026f1c27f4fc41882450619decaba" - integrity sha512-4K03tF9r30fGwHBNBHoI/S0HCmleMpjq9v5e8Llzo/yM0bvI32I2ygCtI/Ri9kgkjLDjF873AM13Sm3DQa8Slw== - dependencies: - "@apify/log" "^2.0.0" - "@apify/timeout" "^0.3.0" - "@apify/utilities" "^2.0.0" - "@crawlee/core" "^3.4.0" - "@crawlee/types" "^3.4.0" - "@crawlee/utils" "^3.4.0" - got-scraping "^3.2.9" - ow "^0.28.1" - tslib "^2.4.0" - type-fest "^3.0.0" - -"@crawlee/browser-pool@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@crawlee/browser-pool/-/browser-pool-3.4.0.tgz#6c309db916807ae277906813f0383d3ee55c0e5a" - integrity sha512-PrdJRvFuUY7f2RXAvCKvhGwQE2FK9kKDwNXJOUwI/BDh047bxwf33PRM2kMN2fUFE6KhFYec4rC+RdVUg1gwZQ== - dependencies: - "@apify/log" "^2.0.0" - "@apify/timeout" "^0.3.0" - "@crawlee/types" "^3.4.0" - fingerprint-generator "^2.0.6" - fingerprint-injector "^2.0.5" - lodash.merge "^4.6.2" - nanoid "^3.3.4" - ow "^0.28.1" - p-limit "^3.1.0" - proxy-chain "^2.0.1" - quick-lru "^5.1.1" - tiny-typed-emitter "^2.1.0" - tslib "^2.4.0" - -"@crawlee/browser@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@crawlee/browser/-/browser-3.4.0.tgz#6bd9b413cb0d5b762010071210aa45173ca522e1" - integrity sha512-o3GmnGouJB+WvdDZWiZ/VojeXfTkXKGhidBGtBCOfffb6nf1CCbwhMVo1uHX5IOAuBzRQNbVZw4+fHd+BuT06A== - dependencies: - "@apify/timeout" "^0.3.0" - "@crawlee/basic" "^3.4.0" - "@crawlee/browser-pool" "^3.4.0" - "@crawlee/types" "^3.4.0" - "@crawlee/utils" "^3.4.0" - ow "^0.28.1" - tslib "^2.4.0" - -"@crawlee/cheerio@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@crawlee/cheerio/-/cheerio-3.4.0.tgz#001f3ca881c9757f4a9b9efe38bbace3509e3d97" - integrity sha512-L3ToudykjfLRlmJaGoPjKZ05tB5DY0eKblmarv+n/oO55Tm3Dapfwm/sNJxxc6JF0DhstMZ/1a/9YDTx3HIVqA== - dependencies: - "@crawlee/http" "^3.4.0" - "@crawlee/types" "^3.4.0" - cheerio "^1.0.0-rc.12" - htmlparser2 "^9.0.0" - tslib "^2.4.0" - -"@crawlee/cli@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@crawlee/cli/-/cli-3.4.0.tgz#fb3eb90467867d250da2c344672f4039924804ae" - integrity sha512-BM9eqSH3Tec0sRt1uHAIJgHW9aQfYGFogkfxvBdTyXRvKu/Xwm+OL+RkHv5kWA5twQHAwNMSyZ71uWbHSVgovg== - dependencies: - "@crawlee/templates" "^3.4.0" - ansi-colors "^4.1.3" - fs-extra "^11.0.0" - inquirer "^8.2.4" - tslib "^2.4.0" - yargonaut "^1.1.4" - yargs "^17.5.1" - -"@crawlee/core@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@crawlee/core/-/core-3.4.0.tgz#0a1336171eb15e06ae2ffc0a30f4c53a9eb9957e" - integrity sha512-3sdSfBuV6J7IZCAyDXFo5yZCoVcPYu2T7cpkRidL9x41lSNpDaY+knw9ImcHqzQ5P5ubhk3IeG03FJ/wIQtwSw== - dependencies: - "@apify/consts" "^2.11.0" - "@apify/datastructures" "^2.0.0" - "@apify/log" "^2.2.8" - "@apify/pseudo_url" "^2.0.14" - "@apify/timeout" "^0.3.0" - "@apify/utilities" "^2.3.3" - "@crawlee/memory-storage" "^3.4.0" - "@crawlee/types" "^3.4.0" - "@crawlee/utils" "^3.4.0" - "@sapphire/async-queue" "^1.5.0" - "@types/tough-cookie" "^4.0.2" - "@vladfrangu/async_event_emitter" "^2.0.0" - csv-stringify "^6.2.0" - fs-extra "^11.0.0" - json5 "^2.2.3" - minimatch "^9.0.0" - ow "^0.28.1" - stream-chain "^2.2.5" - stream-json "^1.7.4" - tldts "^6.0.0" - tough-cookie "^4.0.0" - tslib "^2.4.0" - type-fest "^3.0.0" - -"@crawlee/http@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@crawlee/http/-/http-3.4.0.tgz#6d43746a5510e788a4fc2b91da9e51d553871813" - integrity sha512-wOv5kqyTWem8EEkYSHjQAYORes03fOUETbAj5o8yNFu7/0kpHVM99e5pGJtm0DKfkTh4qoRDaqXZ0hQL8Zxw2A== - dependencies: - "@apify/timeout" "^0.3.0" - "@apify/utilities" "^2.0.0" - "@crawlee/basic" "^3.4.0" - "@crawlee/types" "^3.4.0" - "@types/content-type" "^1.1.5" - cheerio "^1.0.0-rc.12" - content-type "^1.0.4" - got-scraping "^3.2.9" - iconv-lite "^0.6.3" - mime-types "^2.1.35" - ow "^0.28.1" - tslib "^2.4.0" - type-fest "^3.0.0" - -"@crawlee/jsdom@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@crawlee/jsdom/-/jsdom-3.4.0.tgz#ddf689c23ea2266115dd40c20d38847f29ac3990" - integrity sha512-7EnMgdPQaiQvVtMrx6CGAH6hBnCoWJVKLDUFPze61VMA36IX0dDPU/F9gndb/eujfqZvpL5kfMYEDMycUWblcQ== - dependencies: - "@apify/timeout" "^0.3.0" - "@apify/utilities" "^2.1.4" - "@crawlee/http" "^3.4.0" - "@crawlee/types" "^3.4.0" - "@types/jsdom" "^21.0.0" - cheerio "^1.0.0-rc.12" - jsdom "^22.0.0" - ow "^0.28.2" - tslib "^2.4.0" - -"@crawlee/linkedom@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@crawlee/linkedom/-/linkedom-3.4.0.tgz#250d0b115ca7b81735d3982be84d4a4a137be16a" - integrity sha512-kBgjVbr9x2BwMix3+ux869bU9IL0bKQUx+Jbv7pBjEMIuVFARL4ydiI6BFi5bPq9NCqimuF69FKAufr/jvMXMg== - dependencies: - "@apify/timeout" "^0.3.0" - "@apify/utilities" "^2.1.4" - "@crawlee/http" "^3.4.0" - "@crawlee/types" "^3.4.0" - linkedom "^0.14.25" - ow "^0.28.2" - tslib "^2.4.0" - -"@crawlee/memory-storage@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@crawlee/memory-storage/-/memory-storage-3.4.0.tgz#b52c88545258575c4b86c8a5ae986d5cb6197960" - integrity sha512-1qoljWbu3VPFW40FptJixCMdKZXJyDAfJN7OuqIT0aQa7TS/+U/V2W2TLoSWFJh3WAxny69Iq1oCjkeNvFJDTw== - dependencies: - "@apify/log" "^2.0.0" - "@crawlee/types" "^3.4.0" - "@sapphire/async-queue" "^1.5.0" - "@sapphire/shapeshift" "^3.0.0" - content-type "^1.0.4" - fs-extra "^11.0.0" - json5 "^2.2.3" - mime-types "^2.1.35" - proper-lockfile "^4.1.2" - tslib "^2.4.0" - -"@crawlee/playwright@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@crawlee/playwright/-/playwright-3.4.0.tgz#145e3388ab7852b79cc3224e536ed7406573a46d" - integrity sha512-guwq95u0m7eP8r713WdtjQ+xoegX5D5e4qSo/zof8pTwmBxEhdF6AGuTYAXt7qLZDdzA9vToRM921LMrSgkcsg== - dependencies: - "@apify/datastructures" "^2.0.0" - "@apify/log" "^2.0.0" - "@crawlee/browser" "^3.4.0" - "@crawlee/browser-pool" "^3.4.0" - "@crawlee/types" "^3.4.0" - "@crawlee/utils" "^3.4.0" - cheerio "^1.0.0-rc.12" - jquery "^3.6.0" - ow "^0.28.1" - tslib "^2.4.0" - -"@crawlee/puppeteer@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@crawlee/puppeteer/-/puppeteer-3.4.0.tgz#680955362171ca22c67139d957a05bf69ec074bc" - integrity sha512-G6FY8Ue8PJoPjvc8NePNbRMuW+ss8yOOWwiYpf19J0uBV1d83cln7ybbKAyQ+Y/tg9ZpfqQIndjD2vRz0nRgng== - dependencies: - "@apify/datastructures" "^2.0.0" - "@apify/log" "^2.0.0" - "@crawlee/browser" "^3.4.0" - "@crawlee/browser-pool" "^3.4.0" - "@crawlee/types" "^3.4.0" - "@crawlee/utils" "^3.4.0" - cheerio "^1.0.0-rc.12" - devtools-protocol "*" - jquery "^3.6.0" - ow "^0.28.1" - tslib "^2.4.0" - -"@crawlee/templates@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@crawlee/templates/-/templates-3.4.0.tgz#69e88e195847b9114934da80a9754213fb1baa96" - integrity sha512-28XhGBUKIKXBpeN2wOY6TZqbAJi9bVuGP6sq+b+HWujZ8qfL7mRik/21jpm7J8/ZzOv96ODpLvg0whhzO6Eimw== - dependencies: - ansi-colors "^4.1.3" - inquirer "^9.0.0" - tslib "^2.4.0" - yargonaut "^1.1.4" - yargs "^17.5.1" - -"@crawlee/types@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@crawlee/types/-/types-3.4.0.tgz#7061c8fa73c68d851c7e08c7d17ccd273d02021c" - integrity sha512-1kpAH/hvUF5UoEjrcW2GyFxH1oqtnXNKkZ/0/9kU2npewBoLUREJW1qUsJn6kY0cmHrkbzZyXK0YTK/7h/crpQ== - dependencies: - tslib "^2.4.0" - -"@crawlee/utils@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@crawlee/utils/-/utils-3.4.0.tgz#61b9e397b0509a11b350999baa3f30cac052ef90" - integrity sha512-p/lQ62fl+dwS4fb49kU/ek1v4hhFwZ+9ZVdPDoPQhOFSQLCpDjcpyVFZFGAguN+qNTx9lVQJJj1TYZgUpvhM+A== - dependencies: - "@apify/log" "^2.0.0" - "@apify/ps-tree" "^1.1.4" - "@crawlee/types" "^3.4.0" - cheerio "^1.0.0-rc.12" - got-scraping "^3.2.9" - ow "^0.28.1" - tslib "^2.4.0" - -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.4.0": - version "4.5.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" - integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== - -"@eslint/eslintrc@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" - integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.5.2" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.43.0": - version "8.43.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.43.0.tgz#559ca3d9ddbd6bf907ad524320a0d14b85586af0" - integrity sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg== - -"@humanwhocodes/config-array@^0.11.10": - version "0.11.10" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" - integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@ioredis/commands@^1.1.1": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11" - integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg== - -"@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.2.tgz#44d752c1a2dc113f15f781b7cc4f53a307e3fa38" - integrity sha512-9bfjwDxIDWmmOKusUcqdS4Rw+SETlp9Dy39Xui9BEGEk19dDwH0jhipwFzEff/pFg95NKymc6TOTbRKcWeRqyQ== - -"@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.2.tgz#f954f34355712212a8e06c465bc06c40852c6bb3" - integrity sha512-lwriRAHm1Yg4iDf23Oxm9n/t5Zpw1lVnxYU3HnJPTi2lJRkKTrps1KVgvL6m7WvmhYVt/FIsssWay+k45QHeuw== - -"@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.2.tgz#45c63037f045c2b15c44f80f0393fa24f9655367" - integrity sha512-FU20Bo66/f7He9Fp9sP2zaJ1Q8L9uLPZQDub/WlUip78JlPeMbVL8546HbZfcW9LNciEXc8d+tThSJjSC+tmsg== - -"@msgpackr-extract/msgpackr-extract-linux-arm@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.2.tgz#35707efeafe6d22b3f373caf9e8775e8920d1399" - integrity sha512-MOI9Dlfrpi2Cuc7i5dXdxPbFIgbDBGgKR5F2yWEa6FVEtSWncfVNKW5AKjImAQ6CZlBK9tympdsZJ2xThBiWWA== - -"@msgpackr-extract/msgpackr-extract-linux-x64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.2.tgz#091b1218b66c341f532611477ef89e83f25fae4f" - integrity sha512-gsWNDCklNy7Ajk0vBBf9jEx04RUxuDQfBse918Ww+Qb9HCPoGzS+XJTLe96iN3BVK7grnLiYghP/M4L8VsaHeA== - -"@msgpackr-extract/msgpackr-extract-win32-x64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.2.tgz#0f164b726869f71da3c594171df5ebc1c4b0a407" - integrity sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@puppeteer/browsers@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-1.5.0.tgz#2c445f7e41133d4aa23f776748d70211ea4e98ed" - integrity sha512-za318PweGINh5LnHSph7C4xhs0tmRjCD8EPpzcKlw4nzSPhnULj+LTG3+TGefZvW1ti5gjw2JkdQvQsivBeZlg== - dependencies: - debug "4.3.4" - extract-zip "2.0.1" - progress "2.0.3" - proxy-agent "6.3.0" - tar-fs "3.0.4" - unbzip2-stream "1.4.3" - yargs "17.7.1" - -"@sapphire/async-queue@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.5.0.tgz#2f255a3f186635c4fb5a2381e375d3dfbc5312d8" - integrity sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA== - -"@sapphire/shapeshift@^3.0.0", "@sapphire/shapeshift@^3.6.0": - version "3.9.2" - resolved "https://registry.yarnpkg.com/@sapphire/shapeshift/-/shapeshift-3.9.2.tgz#a9c12cd51e1bc467619bb56df804450dd14871ac" - integrity sha512-YRbCXWy969oGIdqR/wha62eX8GNHsvyYi0Rfd4rNW6tSVVa8p0ELiMEuOH/k8rgtvRoM+EMV7Csqz77YdwiDpA== - dependencies: - fast-deep-equal "^3.1.3" - lodash "^4.17.21" - -"@sindresorhus/is@4.6.0", "@sindresorhus/is@^4.2.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" - integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== - -"@szmarczak/http-timer@4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" - integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== - dependencies: - defer-to-connect "^2.0.0" - -"@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== - -"@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/body-parser@*": - version "1.19.2" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/connect@*": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== - dependencies: - "@types/node" "*" - -"@types/content-type@^1.1.5": - version "1.1.5" - resolved "https://registry.yarnpkg.com/@types/content-type/-/content-type-1.1.5.tgz#aa02dca40864749a9e2bf0161a6216da57e3ede5" - integrity sha512-dgMN+syt1xb7Hk8LU6AODOfPlvz5z1CbXpPuJE5ZrX9STfBOIXF09pEB8N7a97WT9dbngt3ksDCm6GW6yMrxfQ== - -"@types/express-serve-static-core@^4.17.33": - version "4.17.35" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" - integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - -"@types/express@^4.17.17": - version "4.17.17" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" - integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/jsdom@^21.0.0": - version "21.1.1" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-21.1.1.tgz#e59e26352071267b507bf04d51841a1d7d3e8617" - integrity sha512-cZFuoVLtzKP3gmq9eNosUL1R50U+USkbLtUQ1bYVgl/lKp0FZM7Cq4aIHAL8oIvQ17uSHi7jXPtfDOdjPwBE7A== - dependencies: - "@types/node" "*" - "@types/tough-cookie" "*" - parse5 "^7.0.0" - -"@types/json-schema@^7.0.9": - version "7.0.12" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== - -"@types/mime@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" - integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== - -"@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== - -"@types/node@*": - version "20.3.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe" - integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg== - -"@types/prettier@^2.7.3": - version "2.7.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" - integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== - -"@types/qs@*": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== - -"@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== - -"@types/responselike@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== - dependencies: - "@types/node" "*" - -"@types/semver@^7.3.12": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" - integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== - -"@types/send@*": - version "0.17.1" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" - integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/serve-static@*": - version "1.15.1" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.1.tgz#86b1753f0be4f9a1bee68d459fcda5be4ea52b5d" - integrity sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ== - dependencies: - "@types/mime" "*" - "@types/node" "*" - -"@types/tough-cookie@*", "@types/tough-cookie@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397" - integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw== - -"@types/uuid@^9.0.2": - version "9.0.2" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.2.tgz#ede1d1b1e451548d44919dc226253e32a6952c4b" - integrity sha512-kNnC1GFBLuhImSnV7w4njQkUiJi0ZXUycu1rUaouPqiKlXkh77JKgdRnTAp1x5eBwcIwbtI+3otwzuIDEuDoxQ== - -"@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== - -"@types/yargs@^17.0.24": - version "17.0.24" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" - integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== - dependencies: - "@types/yargs-parser" "*" - -"@types/yauzl@^2.9.1": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" - integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== - dependencies: - "@types/node" "*" - -"@typescript-eslint/eslint-plugin@^5.60.0": - version "5.60.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.60.0.tgz#2f4bea6a3718bed2ba52905358d0f45cd3620d31" - integrity sha512-78B+anHLF1TI8Jn/cD0Q00TBYdMgjdOn980JfAVa9yw5sop8nyTfVOQAv6LWywkOGLclDBtv5z3oxN4w7jxyNg== - dependencies: - "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.60.0" - "@typescript-eslint/type-utils" "5.60.0" - "@typescript-eslint/utils" "5.60.0" - debug "^4.3.4" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - natural-compare-lite "^1.4.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@^5.60.0": - version "5.60.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.60.0.tgz#08f4daf5fc6548784513524f4f2f359cebb4068a" - integrity sha512-jBONcBsDJ9UoTWrARkRRCgDz6wUggmH5RpQVlt7BimSwaTkTjwypGzKORXbR4/2Hqjk9hgwlon2rVQAjWNpkyQ== - dependencies: - "@typescript-eslint/scope-manager" "5.60.0" - "@typescript-eslint/types" "5.60.0" - "@typescript-eslint/typescript-estree" "5.60.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.60.0": - version "5.60.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.60.0.tgz#ae511967b4bd84f1d5e179bb2c82857334941c1c" - integrity sha512-hakuzcxPwXi2ihf9WQu1BbRj1e/Pd8ZZwVTG9kfbxAMZstKz8/9OoexIwnmLzShtsdap5U/CoQGRCWlSuPbYxQ== - dependencies: - "@typescript-eslint/types" "5.60.0" - "@typescript-eslint/visitor-keys" "5.60.0" - -"@typescript-eslint/type-utils@5.60.0": - version "5.60.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.60.0.tgz#69b09087eb12d7513d5b07747e7d47f5533aa228" - integrity sha512-X7NsRQddORMYRFH7FWo6sA9Y/zbJ8s1x1RIAtnlj6YprbToTiQnM6vxcMu7iYhdunmoC0rUWlca13D5DVHkK2g== - dependencies: - "@typescript-eslint/typescript-estree" "5.60.0" - "@typescript-eslint/utils" "5.60.0" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.60.0": - version "5.60.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.60.0.tgz#3179962b28b4790de70e2344465ec97582ce2558" - integrity sha512-ascOuoCpNZBccFVNJRSC6rPq4EmJ2NkuoKnd6LDNyAQmdDnziAtxbCGWCbefG1CNzmDvd05zO36AmB7H8RzKPA== - -"@typescript-eslint/typescript-estree@5.60.0": - version "5.60.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.0.tgz#4ddf1a81d32a850de66642d9b3ad1e3254fb1600" - integrity sha512-R43thAuwarC99SnvrBmh26tc7F6sPa2B3evkXp/8q954kYL6Ro56AwASYWtEEi+4j09GbiNAHqYwNNZuNlARGQ== - dependencies: - "@typescript-eslint/types" "5.60.0" - "@typescript-eslint/visitor-keys" "5.60.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.60.0", "@typescript-eslint/utils@^5.10.0": - version "5.60.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.60.0.tgz#4667c5aece82f9d4f24a667602f0f300864b554c" - integrity sha512-ba51uMqDtfLQ5+xHtwlO84vkdjrqNzOnqrnwbMHMRY8Tqeme8C2Q8Fc7LajfGR+e3/4LoYiWXUM6BpIIbHJ4hQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.60.0" - "@typescript-eslint/types" "5.60.0" - "@typescript-eslint/typescript-estree" "5.60.0" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.60.0": - version "5.60.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.0.tgz#b48b29da3f5f31dd1656281727004589d2722a66" - integrity sha512-wm9Uz71SbCyhUKgcaPRauBdTegUyY/ZWl8gLwD/i/ybJqscrrdVSFImpvUz16BLPChIeKBK5Fa9s6KDQjsjyWw== - dependencies: - "@typescript-eslint/types" "5.60.0" - eslint-visitor-keys "^3.3.0" - -"@vladfrangu/async_event_emitter@^2.0.0": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@vladfrangu/async_event_emitter/-/async_event_emitter-2.2.2.tgz#84c5a3f8d648842cec5cc649b88df599af32ed88" - integrity sha512-HIzRG7sy88UZjBJamssEczH5q7t5+axva19UbZLO6u0ySbYPrwzWiXBcC0WuHyhKKoeCyneH+FvYzKQq/zTtkQ== - -abab@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn@^8.8.0: - version "8.9.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59" - integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ== - -adm-zip@^0.5.9: - version "0.5.10" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.5.10.tgz#4a51d5ab544b1f5ce51e1b9043139b639afff45b" - integrity sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ== - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -agent-base@^7.0.1, agent-base@^7.0.2, agent-base@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" - integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== - dependencies: - debug "^4.3.4" - -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-colors@^4.1.1, ansi-colors@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== - -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@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -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-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -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" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -axios@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.4.0.tgz#38a7bf1224cd308de271146038b551d725f0be1f" - integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -b4a@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.4.tgz#ef1c1422cae5ce6535ec191baeed7567443f36c9" - integrity sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -basic-ftp@^5.0.2: - version "5.0.3" - resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.3.tgz#b14c0fe8111ce001ec913686434fe0c2fb461228" - integrity sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -bl@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browserslist@^4.21.1: - version "4.21.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.8.tgz#db2498e1f4b80ed199c076248a094935860b6017" - integrity sha512-j+7xYe+v+q2Id9qbBeCI8WX5NmZSRe8es1+0xntD/+gaWXznP8tFEkv5IgSaHf5dS1YwVMbX/4W6m937mj+wQw== - dependencies: - caniuse-lite "^1.0.30001502" - electron-to-chromium "^1.4.428" - node-releases "^2.0.12" - update-browserslist-db "^1.0.11" - -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, buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -bull@^4.10.4: - version "4.10.4" - resolved "https://registry.yarnpkg.com/bull/-/bull-4.10.4.tgz#db39ee0c3bfbe3b76f1f35db800501de5bba4f84" - integrity sha512-o9m/7HjS/Or3vqRd59evBlWCXd9Lp+ALppKseoSKHaykK46SmRjAilX98PgmOz1yeVaurt8D5UtvEt4bUjM3eA== - dependencies: - cron-parser "^4.2.1" - debuglog "^1.0.0" - get-port "^5.1.1" - ioredis "^5.0.0" - lodash "^4.17.21" - msgpackr "^1.5.2" - semver "^7.3.2" - uuid "^8.3.0" - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cacheable-lookup@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz#0330a543471c61faa4e9035db583aad753b36385" - integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww== - -cacheable-request@7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" - integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^4.0.0" - lowercase-keys "^2.0.0" - normalize-url "^6.0.1" - responselike "^2.0.0" - -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0, callsites@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -caniuse-lite@^1.0.30001502: - version "1.0.30001503" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001503.tgz#88b6ff1b2cf735f1f3361dc1a15b59f0561aa398" - integrity sha512-Sf9NiF+wZxPfzv8Z3iS0rXM1Do+iOy2Lxvib38glFX+08TCYYYGR5fRJXk4d77C4AYwhUjgYgMsMudbh2TqCKw== - -chalk@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" - integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -cheerio-select@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" - integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== - dependencies: - boolbase "^1.0.0" - css-select "^5.1.0" - css-what "^6.1.0" - domelementtype "^2.3.0" - domhandler "^5.0.3" - domutils "^3.0.1" - -cheerio@^1.0.0-rc.12: - version "1.0.0-rc.12" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" - integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== - dependencies: - cheerio-select "^2.1.0" - dom-serializer "^2.0.0" - domhandler "^5.0.3" - domutils "^3.0.1" - htmlparser2 "^8.0.1" - parse5 "^7.0.0" - parse5-htmlparser2-tree-adapter "^7.0.0" - -chokidar@^3.5.2: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chromium-bidi@0.4.20: - version "0.4.20" - resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-0.4.20.tgz#1cd56426638452b40b29b7054e83c379e7e2b20a" - integrity sha512-ruHgVZFEv00mAQMz1tQjfjdG63jiPWrQPF6HLlX2ucqLqVTJoWngeBEKHaJ6n1swV/HSvgnBNbtTRIlcVyW3Fw== - dependencies: - mitt "3.0.1" - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-spinners@^2.5.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db" - integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g== - -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - -cli-width@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.0.0.tgz#a5622f6a3b0a9e3e711a25f099bf2399f608caf6" - integrity sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw== - -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-response@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" - integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== - dependencies: - mimic-response "^1.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== - -cluster-key-slot@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac" - integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -concurrently@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-8.2.0.tgz#cdc9f621a4d913366600355d68254df2c5e782f3" - integrity sha512-nnLMxO2LU492mTUj9qX/az/lESonSZu81UznYDoXtz1IQf996ixVqPAgHXwvHiHCAef/7S8HIK+fTFK7Ifk8YA== - dependencies: - chalk "^4.1.2" - date-fns "^2.30.0" - lodash "^4.17.21" - rxjs "^7.8.1" - shell-quote "^1.8.1" - spawn-command "0.0.2" - supports-color "^8.1.1" - tree-kill "^1.2.2" - yargs "^17.7.2" - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@^1.0.4, content-type@~1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -cosmiconfig@8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" - integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== - dependencies: - import-fresh "^3.2.1" - js-yaml "^4.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - -crawlee@^3.0.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/crawlee/-/crawlee-3.4.0.tgz#57ab0737c77e5b0c816b2992befbcb2b81e64a30" - integrity sha512-kBUKJM18nq6Eg3Yalf6la6IThjQAfwK/9NxjxCCPqhmqoBX/tXxmu5D3qSLc7nsSsExIxjjHWWOOhKIaESDQTw== - dependencies: - "@crawlee/basic" "^3.4.0" - "@crawlee/browser" "^3.4.0" - "@crawlee/cheerio" "^3.4.0" - "@crawlee/cli" "^3.4.0" - "@crawlee/core" "^3.4.0" - "@crawlee/http" "^3.4.0" - "@crawlee/jsdom" "^3.4.0" - "@crawlee/linkedom" "^3.4.0" - "@crawlee/playwright" "^3.4.0" - "@crawlee/puppeteer" "^3.4.0" - "@crawlee/utils" "^3.4.0" - import-local "^3.1.0" - tslib "^2.4.0" - -cron-parser@^4.2.1: - version "4.8.1" - resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-4.8.1.tgz#47062ea63d21d78c10ddedb08ea4c5b6fc2750fb" - integrity sha512-jbokKWGcyU4gl6jAfX97E1gDpY12DJ1cLJZmoDzaAln/shZ+S3KBFBuA2Q6WeUN4gJf/8klnV1EfvhA2lK5IRQ== - dependencies: - luxon "^3.2.1" - -cross-fetch@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-4.0.0.tgz#f037aef1580bb3a1a35164ea2a848ba81b445983" - integrity sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== - dependencies: - node-fetch "^2.6.12" - -cross-fetch@^3.1.5: - version "3.1.6" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.6.tgz#bae05aa31a4da760969756318feeee6e70f15d6c" - integrity sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g== - dependencies: - node-fetch "^2.6.11" - -cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -css-select@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" - integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== - dependencies: - boolbase "^1.0.0" - css-what "^6.1.0" - domhandler "^5.0.2" - domutils "^3.0.1" - nth-check "^2.0.1" - -css-what@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== - -cssom@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" - integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== - -cssstyle@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-3.0.0.tgz#17ca9c87d26eac764bb8cfd00583cff21ce0277a" - integrity sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg== - dependencies: - rrweb-cssom "^0.6.0" - -csv-stringify@^6.2.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-6.4.0.tgz#6d006dca9194700e44f9fbc541bee8bbbd4f459c" - integrity sha512-HQsw0QXiN5fdlO+R8/JzCZnR3Fqp8E87YVnhHlaPtNGJjt6ffbV0LpOkieIb1x6V1+xt878IYq77SpXHWAqKkA== - -data-uri-to-buffer@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-5.0.1.tgz#db89a9e279c2ffe74f50637a59a32fb23b3e4d7c" - integrity sha512-a9l6T1qqDogvvnw0nKlfZzqsyikEBZBClF39V3TFoKhDtGBqHu2HkuomJc02j5zft8zrUaXEuoicLeW54RkzPg== - -data-urls@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-4.0.0.tgz#333a454eca6f9a5b7b0f1013ff89074c3f522dd4" - integrity sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g== - dependencies: - abab "^2.0.6" - whatwg-mimetype "^3.0.0" - whatwg-url "^12.0.0" - -date-fns@^2.30.0: - version "2.30.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" - integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== - dependencies: - "@babel/runtime" "^7.21.0" - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debuglog@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== - -decimal.js@^10.4.3: - version "10.4.3" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" - integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== - -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -defaults@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" - integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== - dependencies: - clone "^1.0.2" - -defer-to-connect@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== - -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" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -denque@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" - integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -devtools-protocol@*: - version "0.0.1157354" - resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1157354.tgz#9fe52a4fbe672334a52e7fd4a510bdf3010a2107" - integrity sha512-dZUFBDZe3/k6Jj9eT4kcWB39xNdnFvBPSv8cNVrrc1/uBtWtcaiGcgf3AGIGit6tr7wz8xvhJGQ9MpgOEP+uig== - -devtools-protocol@0.0.1147663: - version "0.0.1147663" - resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1147663.tgz#4ec5610b39a6250d1f87e6b9c7e16688ed0ac78e" - integrity sha512-hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-serializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" - integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.2" - entities "^4.2.0" - -domelementtype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domexception@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" - integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== - dependencies: - webidl-conversions "^7.0.0" - -domhandler@^5.0.2, domhandler@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" - integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== - dependencies: - domelementtype "^2.3.0" - -domutils@^3.0.1, domutils@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" - integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== - dependencies: - dom-serializer "^2.0.0" - domelementtype "^2.3.0" - domhandler "^5.0.3" - -dot-prop@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" - integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== - dependencies: - is-obj "^2.0.0" - -dotenv@^16.0.3: - version "16.1.4" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.1.4.tgz#67ac1a10cd9c25f5ba604e4e08bc77c0ebe0ca8c" - integrity sha512-m55RtE8AsPeJBpOIFKihEmqUcoVncQIwo7x9U8ZwLEZw9ZpXboz2c+rvog+jUaJvVrZ5kBOeYQBX5+8Aa/OZQw== - -duplexer@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -electron-to-chromium@^1.4.428: - version "1.4.431" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.431.tgz#47990d6e43465d69aa1fbd0abdec43114946edd0" - integrity sha512-m232JTVmCawA2vG+1azVxhKZ9Sv1Q//xxNv5PkP5rWxGgQE8c3CiZFrh8Xnp+d1NmNxlu3QQrGIfdeW5TtXX5w== - -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== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -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" - -entities@^4.2.0, entities@^4.4.0, entities@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escape-string-regexp@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" - integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== - -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" - -eslint-config-prettier@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" - integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== - -eslint-plugin-jest@^27.2.2: - version "27.2.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.2.2.tgz#be4ded5f91905d9ec89aa8968d39c71f3b072c0c" - integrity sha512-euzbp06F934Z7UDl5ZUaRPLAc9MKjh0rMPERrHT7UhlCEwgb25kBj37TvMgWeHZVkR5I9CayswrpoaqZU1RImw== - dependencies: - "@typescript-eslint/utils" "^5.10.0" - -eslint-plugin-prettier@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" - integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== - dependencies: - prettier-linter-helpers "^1.0.0" - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" - integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== - -eslint@^8.43.0: - version "8.43.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.43.0.tgz#3e8c6066a57097adfd9d390b8fc93075f257a094" - integrity sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.3" - "@eslint/js" "8.43.0" - "@humanwhocodes/config-array" "^0.11.10" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.5.2" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.1" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - -espree@^9.5.2: - version "9.5.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" - integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.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== - -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, 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== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -event-stream@3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" - integrity sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g== - dependencies: - duplexer "~0.1.1" - from "~0" - map-stream "~0.1.0" - pause-stream "0.0.11" - split "0.3" - stream-combiner "~0.0.4" - through "~2.3.1" - -express@^4.18.2: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -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-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - -fast-fifo@^1.1.0, fast-fifo@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.0.tgz#03e381bcbfb29932d7c3afde6e15e83e05ab4d8b" - integrity sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw== - -fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== - dependencies: - reusify "^1.0.4" - -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" - -figlet@^1.1.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.6.0.tgz#812050fa9f01043b4d44ddeb11f20fb268fa4b93" - integrity sha512-31EQGhCEITv6+hi2ORRPyn3bulaV9Fl4xOdR169cBzH/n1UqcxsiSB/noo6SJdD7Kfb1Ljit+IgR1USvF/XbdA== - -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -figures@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-5.0.0.tgz#126cd055052dea699f8a54e8c9450e6ecfc44d5f" - integrity sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg== - dependencies: - escape-string-regexp "^5.0.0" - is-unicode-supported "^1.2.0" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -fingerprint-generator@^2.0.6, fingerprint-generator@^2.1.30: - version "2.1.30" - resolved "https://registry.yarnpkg.com/fingerprint-generator/-/fingerprint-generator-2.1.30.tgz#8d7ae69e878524ac2cf2dab61f05f633b784ce05" - integrity sha512-D/7EegnWOsglTfw2GqiX0NPi9rn1mDpr2Axq8yNZ0z8tJaNxp91ifDcsleFallMDLyPYybtvDBmceTaOReGxEQ== - dependencies: - generative-bayesian-network "^2.1.29" - header-generator "^2.1.30" - tslib "^2.4.0" - -fingerprint-injector@^2.0.5: - version "2.1.30" - resolved "https://registry.yarnpkg.com/fingerprint-injector/-/fingerprint-injector-2.1.30.tgz#94700612c371876817dcb38be627df2e4480be45" - integrity sha512-aKPUBEJsj682F3f+oj4fRgFfT5SNkPqXhIFGRV+PJiV7T2bTfVQIGHWD5e8Y1ZsApTxFZgtOtyx1sOjg1wvJYg== - dependencies: - fingerprint-generator "^2.1.30" - tslib "^2.4.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== - -follow-redirects@^1.15.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== - -form-data-encoder@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.2.tgz#1f1ae3dccf58ed4690b86d87e4f57c654fbab040" - integrity sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A== - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -from@~0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g== - -fs-extra@^11.0.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" - integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -generative-bayesian-network@^2.1.29: - version "2.1.29" - resolved "https://registry.yarnpkg.com/generative-bayesian-network/-/generative-bayesian-network-2.1.29.tgz#aace4cff5df6c668f749953b459c7a4d61e33646" - integrity sha512-Fdkmd3UIAR2A6H1uTOBC+XX/+1jwby14M3r6YjLXhEtHExSHvw3vL6QYQv1LYSUXACBR3kXKoOGwFqj8RDg9qA== - dependencies: - adm-zip "^0.5.9" - tslib "^2.4.0" - -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.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-proto "^1.0.1" - has-symbols "^1.0.3" - -get-port@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" - integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== - -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-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-uri@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.1.tgz#cff2ba8d456c3513a04b70c45de4dbcca5b1527c" - integrity sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q== - dependencies: - basic-ftp "^5.0.2" - data-uri-to-buffer "^5.0.1" - debug "^4.3.4" - fs-extra "^8.1.0" - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^13.19.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== - dependencies: - type-fest "^0.20.2" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -got-cjs@12.5.4: - version "12.5.4" - resolved "https://registry.yarnpkg.com/got-cjs/-/got-cjs-12.5.4.tgz#b46419c0e8e5fb5503b926941807408049ae2e11" - integrity sha512-Uas6lAsP8bRCt5WXGMhjFf/qEHTrm4v4qxGR02rLG2kdG9qedctvlkdwXVcDJ7Cs84X+r4dPU7vdwGjCaspXug== - dependencies: - "@sindresorhus/is" "4.6.0" - "@szmarczak/http-timer" "4.0.6" - "@types/responselike" "1.0.0" - cacheable-lookup "6.1.0" - cacheable-request "7.0.2" - decompress-response "^6.0.0" - form-data-encoder "1.7.2" - get-stream "^6.0.1" - http2-wrapper "^2.1.10" - lowercase-keys "2.0.0" - p-cancelable "2.1.1" - responselike "2.0.1" - -got-scraping@^3.2.9: - version "3.2.13" - resolved "https://registry.yarnpkg.com/got-scraping/-/got-scraping-3.2.13.tgz#2fe15e592535f60561d59d37cbf274917dd16c77" - integrity sha512-IAy5hufJP1VQT8FYhiUEZPhItTXvr9nGk3TCnyJd6h6ZCyo9y+M14yLVkHspuIMEXlLzELObi1IRqB/9Q8EU2w== - dependencies: - got-cjs "12.5.4" - header-generator "^2.1.3" - http2-wrapper "^2.1.11" - mimic-response "^3.1.0" - ow "^0.28.1" - quick-lru "^5.1.1" - tslib "^2.4.0" - -graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - 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== - -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== - dependencies: - ansi-regex "^2.0.0" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -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@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -header-generator@^2.1.3, header-generator@^2.1.30: - version "2.1.30" - resolved "https://registry.yarnpkg.com/header-generator/-/header-generator-2.1.30.tgz#7a4efd770e0bcfa6da0171077a4287e4393fc0b2" - integrity sha512-/5RFRvNb1lM1v1R7AHXVcaxocGM1JHI/CBZ5TWMMMSLjZBGE5o6TJS56Nva0mZ9ZjQ8yMlCDul5i/Bq566T6pg== - dependencies: - browserslist "^4.21.1" - generative-bayesian-network "^2.1.29" - ow "^0.28.1" - tslib "^2.4.0" - -html-encoding-sniffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" - integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== - dependencies: - whatwg-encoding "^2.0.0" - -html-escaper@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-3.0.3.tgz#4d336674652beb1dcbc29ef6b6ba7f6be6fdfed6" - integrity sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ== - -htmlparser2@^8.0.1: - version "8.0.2" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" - integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.3" - domutils "^3.0.1" - entities "^4.4.0" - -htmlparser2@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-9.0.0.tgz#e431142b7eeb1d91672742dea48af8ac7140cddb" - integrity sha512-uxbSI98wmFT/G4P2zXx4OVx04qWUmyFPrD2/CNepa2Zo3GPNaCaaxElDgwUrwYWkK1nr9fft0Ya8dws8coDLLQ== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.3" - domutils "^3.1.0" - entities "^4.5.0" - -http-cache-semantics@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" - integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== - dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" - -http-proxy-agent@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673" - integrity sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ== - dependencies: - agent-base "^7.1.0" - debug "^4.3.4" - -http2-wrapper@^2.1.10, http2-wrapper@^2.1.11: - version "2.2.0" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.0.tgz#b80ad199d216b7d3680195077bd7b9060fa9d7f3" - integrity sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.2.0" - -https-proxy-agent@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -https-proxy-agent@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.0.tgz#75cb70d04811685667183b31ab158d006750418a" - integrity sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw== - dependencies: - agent-base "^7.0.2" - debug "4" - -iconv-lite@0.4.24, iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@0.6.3, iconv-lite@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore-by-default@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" - integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== - -ignore@^5.2.0: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inquirer@^8.2.4: - version "8.2.5" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" - integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.1" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.21" - mute-stream "0.0.8" - ora "^5.4.1" - run-async "^2.4.0" - rxjs "^7.5.5" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - wrap-ansi "^7.0.0" - -inquirer@^9.0.0: - version "9.2.7" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.2.7.tgz#61e00658efa9b4c76a83c2c3cb3ceb88fec70ac7" - integrity sha512-Bf52lnfvNxGPJPltiNO2tLBp3zC339KNlGMqOkW+dsvNikBhcVDK5kqU2lVX2FTPzuXUFX5WJDlsw//w3ZwoTw== - dependencies: - ansi-escapes "^4.3.2" - chalk "^5.2.0" - cli-cursor "^3.1.0" - cli-width "^4.0.0" - external-editor "^3.0.3" - figures "^5.0.0" - lodash "^4.17.21" - mute-stream "1.0.0" - ora "^5.4.1" - run-async "^3.0.0" - rxjs "^7.8.1" - string-width "^4.2.3" - strip-ansi "^6.0.1" - through "^2.3.6" - wrap-ansi "^6.0.1" - -instantsearch.css@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/instantsearch.css/-/instantsearch.css-8.0.0.tgz#66a56b52400c7a14f678859e35a12eb32696a417" - integrity sha512-yU63cF9KdkyFFh7ynYQy39nh1MD1eVDHIaa/gdm8a/O9dTG/5P6hBF1ONoIbKTtjlxxsHS2S8MarCZZ0l31ajg== - -ioredis@^5.0.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.3.2.tgz#9139f596f62fc9c72d873353ac5395bcf05709f7" - integrity sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA== - dependencies: - "@ioredis/commands" "^1.1.1" - cluster-key-slot "^1.1.0" - debug "^4.3.4" - denque "^2.1.0" - lodash.defaults "^4.2.0" - lodash.isarguments "^3.1.0" - redis-errors "^1.2.0" - redis-parser "^3.0.0" - standard-as-callback "^2.1.0" - -ip@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" - integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== - -ip@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" - integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -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-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -is-unicode-supported@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" - integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -jquery@^3.6.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.0.tgz#fe2c01a05da500709006d8790fe21c8a39d75612" - integrity sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ== - -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" - -jsdom@^22.0.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-22.1.0.tgz#0fca6d1a37fbeb7f4aac93d1090d782c56b611c8" - integrity sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw== - dependencies: - abab "^2.0.6" - cssstyle "^3.0.0" - data-urls "^4.0.0" - decimal.js "^10.4.3" - domexception "^4.0.0" - form-data "^4.0.0" - html-encoding-sniffer "^3.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.1" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.4" - parse5 "^7.1.2" - rrweb-cssom "^0.6.0" - saxes "^6.0.0" - symbol-tree "^3.2.4" - tough-cookie "^4.1.2" - w3c-xmlserializer "^4.0.0" - webidl-conversions "^7.0.0" - whatwg-encoding "^2.0.0" - whatwg-mimetype "^3.0.0" - whatwg-url "^12.0.1" - ws "^8.13.0" - xml-name-validator "^4.0.0" - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json5@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== - optionalDependencies: - graceful-fs "^4.1.6" - -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" - -keyv@^4.0.0: - version "4.5.2" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" - integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== - dependencies: - json-buffer "3.0.1" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.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== - -linkedom@^0.14.25: - version "0.14.26" - resolved "https://registry.yarnpkg.com/linkedom/-/linkedom-0.14.26.tgz#fd8ddaef1a052e1191fb2e881605a1a001409f3b" - integrity sha512-mK6TrydfFA7phrnp+1j57ycBwFI5bGSW6YXlw9acHoqF+mP/y+FooEYYyniOt5Ot57FSKB3iwmnuQ1UUyNLm5A== - dependencies: - css-select "^5.1.0" - cssom "^0.5.0" - html-escaper "^3.0.3" - htmlparser2 "^8.0.1" - uhyphen "^0.2.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== - -lodash.isarguments@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== - -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -lowercase-keys@2.0.0, lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -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== - -luxon@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.3.0.tgz#d73ab5b5d2b49a461c47cedbc7e73309b4805b48" - integrity sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg== - -map-stream@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" - integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -meilisearch@^0.31.1: - version "0.31.1" - resolved "https://registry.yarnpkg.com/meilisearch/-/meilisearch-0.31.1.tgz#c526274c3cda844e8ee8d9562cbd3febbe1b9508" - integrity sha512-ajMieU0e25lLkT+05J0snX0Ycow1UofxIy5sag03flERUbjXq8ouVwkrJkW27JsKftIeDeffRRRr89LasU9+0w== - dependencies: - cross-fetch "^3.1.5" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@^2.1.35, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^9.0.0, minimatch@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.1.tgz#8a555f541cf976c622daf078bb28f29fb927c253" - integrity sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w== - dependencies: - brace-expansion "^2.0.1" - -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== - -mkdirp-classic@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3, ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -msgpackr-extract@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/msgpackr-extract/-/msgpackr-extract-3.0.2.tgz#e05ec1bb4453ddf020551bcd5daaf0092a2c279d" - integrity sha512-SdzXp4kD/Qf8agZ9+iTu6eql0m3kWm1A2y1hkpTeVNENutaB0BwHlSvAIaMxwntmRUAUjon2V4L8Z/njd0Ct8A== - dependencies: - node-gyp-build-optional-packages "5.0.7" - optionalDependencies: - "@msgpackr-extract/msgpackr-extract-darwin-arm64" "3.0.2" - "@msgpackr-extract/msgpackr-extract-darwin-x64" "3.0.2" - "@msgpackr-extract/msgpackr-extract-linux-arm" "3.0.2" - "@msgpackr-extract/msgpackr-extract-linux-arm64" "3.0.2" - "@msgpackr-extract/msgpackr-extract-linux-x64" "3.0.2" - "@msgpackr-extract/msgpackr-extract-win32-x64" "3.0.2" - -msgpackr@^1.5.2: - version "1.9.5" - resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.9.5.tgz#ac548c5f4546db895e84e46d39d813be961dc527" - integrity sha512-/IJ3cFSN6Ci3eG2wLhbFEL6GT63yEaoN/R5My2QkV6zro+OJaVRLPlwvxY7EtHYSmDlQpk8stvOQTL2qJFkDRg== - optionalDependencies: - msgpackr-extract "^3.0.2" - -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -mute-stream@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" - integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== - -nanoid@^3.3.4: - version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== - -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -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== - -node-fetch@^2.6.11: - version "2.6.11" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" - integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== - dependencies: - whatwg-url "^5.0.0" - -node-fetch@^2.6.12: - version "2.6.12" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba" - integrity sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build-optional-packages@5.0.7: - version "5.0.7" - resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.7.tgz#5d2632bbde0ab2f6e22f1bbac2199b07244ae0b3" - integrity sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w== - -node-releases@^2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" - integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== - -nodemon@^2.0.22: - version "2.0.22" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.22.tgz#182c45c3a78da486f673d6c1702e00728daf5258" - integrity sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ== - dependencies: - chokidar "^3.5.2" - debug "^3.2.7" - ignore-by-default "^1.0.1" - minimatch "^3.1.2" - pstree.remy "^1.1.8" - semver "^5.7.1" - simple-update-notifier "^1.0.7" - supports-color "^5.5.0" - touch "^3.1.0" - undefsafe "^2.0.5" - -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== - dependencies: - abbrev "1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - -nth-check@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - dependencies: - boolbase "^1.0.0" - -nwsapi@^2.2.4: - version "2.2.5" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.5.tgz#a52744c61b3889dd44b0a158687add39b8d935e2" - integrity sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ== - -object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -once@^1.3.0, 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" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -ora@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" - integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== - dependencies: - bl "^4.1.0" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - is-unicode-supported "^0.1.0" - log-symbols "^4.1.0" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - -ow@^0.28.1, ow@^0.28.2: - version "0.28.2" - resolved "https://registry.yarnpkg.com/ow/-/ow-0.28.2.tgz#782b28102124e665c49ec7725e2066a129acf6bf" - integrity sha512-dD4UpyBh/9m4X2NVjA+73/ZPBRF+uF4zIMFvvQsabMiEK8x41L3rQ8EENOi35kyyoaJwNxEeJcP6Fj1H4U409Q== - dependencies: - "@sindresorhus/is" "^4.2.0" - callsites "^3.1.0" - dot-prop "^6.0.1" - lodash.isequal "^4.5.0" - vali-date "^1.0.0" - -p-cancelable@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" - integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2, p-limit@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -pac-proxy-agent@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-7.0.0.tgz#db42120c64292685dafaf2bd921e223c56bfb13b" - integrity sha512-t4tRAMx0uphnZrio0S0Jw9zg3oDbz1zVhQ/Vy18FjLfP1XOLNUEjaVxYCYRI6NS+BsMBXKIzV6cTLOkO9AtywA== - 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.0" - pac-resolver "^7.0.0" - socks-proxy-agent "^8.0.1" - -pac-resolver@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-7.0.0.tgz#79376f1ca26baf245b96b34c339d79bff25e900c" - integrity sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg== - dependencies: - degenerator "^5.0.0" - ip "^1.1.8" - netmask "^2.0.2" - -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" - -parent-require@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parent-require/-/parent-require-1.0.0.tgz#746a167638083a860b0eef6732cb27ed46c32977" - integrity sha512-2MXDNZC4aXdkkap+rBBMv0lUsfJqvX5/2FiYYnfCnorZt3Pk06/IOR5KeaoghgS2w07MLWgjbsnyaq6PdHn2LQ== - -parse-json@^5.0.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" - -parse5-htmlparser2-tree-adapter@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" - integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== - dependencies: - domhandler "^5.0.2" - parse5 "^7.0.0" - -parse5@^7.0.0, parse5@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" - integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== - dependencies: - entities "^4.4.0" - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pause-stream@0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A== - dependencies: - through "~2.3" - -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.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@^2.8.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - -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== - -proper-lockfile@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" - integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== - dependencies: - graceful-fs "^4.2.4" - retry "^0.12.0" - signal-exit "^3.0.2" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -proxy-agent@6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-6.3.0.tgz#72f7bb20eb06049db79f7f86c49342c34f9ba08d" - integrity sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og== - dependencies: - agent-base "^7.0.2" - debug "^4.3.4" - http-proxy-agent "^7.0.0" - https-proxy-agent "^7.0.0" - lru-cache "^7.14.1" - pac-proxy-agent "^7.0.0" - proxy-from-env "^1.1.0" - socks-proxy-agent "^8.0.1" - -proxy-chain@^2.0.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/proxy-chain/-/proxy-chain-2.3.0.tgz#5a20aa018cc825703159954e43828821932f7b23" - integrity sha512-S1m0Ao0IGoXfy14dKXAaJCUkCBCnleYzElzoATj42Iq4d8EYqOZq4jS4G/D94AzrU6QaPOzzoEDjbm7VJQGq9g== - dependencies: - tslib "^2.3.1" - -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -psl@^1.1.33: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -pstree.remy@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" - integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - -puppeteer-core@21.0.1, puppeteer-core@^21.0.1: - version "21.0.1" - resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-21.0.1.tgz#bc20f3b2c1ee29936cb3413e560c7ca3cfdb0027" - integrity sha512-E8eWLGhaZZpa7dYe/58qGX7SLb4mTg42NP5M7B+ibPrncgNjTOQa9x1sFIlTn1chF/BmoZqOcMIvwuxcb/9XzQ== - dependencies: - "@puppeteer/browsers" "1.5.0" - chromium-bidi "0.4.20" - cross-fetch "4.0.0" - debug "4.3.4" - devtools-protocol "0.0.1147663" - ws "8.13.0" - -puppeteer@^21.0.1: - version "21.0.1" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-21.0.1.tgz#4c842509cea4dd7688bbf023c360969b4eefe52f" - integrity sha512-KTjmSdPZ6bMkq3EbAzAUhcB3gMDXvdwd6912rxG9hNtjwRJzHSA568vh6vIbO2WQeNmozRdt1LtiUMLSWfeMrg== - dependencies: - "@puppeteer/browsers" "1.5.0" - cosmiconfig "8.2.0" - puppeteer-core "21.0.1" - -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -queue-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== - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -readable-stream@^3.4.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -redis-errors@^1.0.0, redis-errors@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" - integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w== - -redis-parser@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" - integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A== - dependencies: - redis-errors "^1.0.0" - -regenerator-runtime@^0.13.11: - version "0.13.11" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== - -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== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -resolve-alpn@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -responselike@2.0.1, responselike@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" - integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== - dependencies: - lowercase-keys "^2.0.0" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rrweb-cssom@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz#ed298055b97cbddcdeb278f904857629dec5e0e1" - integrity sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw== - -run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -run-async@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-3.0.0.tgz#42a432f6d76c689522058984384df28be379daad" - integrity sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q== - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -rxjs@^7.5.5, rxjs@^7.8.1: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" - -safe-buffer@5.2.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -saxes@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" - integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== - dependencies: - xmlchars "^2.2.0" - -semver@^5.7.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^7.3.2: - version "7.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" - integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== - dependencies: - lru-cache "^6.0.0" - -semver@^7.3.7: - version "7.5.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.2.tgz#5b851e66d1be07c1cdaf37dfc856f543325a2beb" - integrity sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ== - dependencies: - lru-cache "^6.0.0" - -semver@~7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.2: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -simple-update-notifier@^1.0.7: - version "1.1.0" - resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz#67694c121de354af592b347cdba798463ed49c82" - integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== - dependencies: - semver "~7.0.0" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -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.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.1.tgz#ffc5859a66dac89b0c4dab90253b96705f3e7120" - integrity sha512-59EjPbbgg8U3x62hhKOFVAmySQUcfRQ4C7Q/D5sEHnZTQRrQlNKINks44DMR1gwXp0p4LaVIeccX2KHTTcHVqQ== - dependencies: - agent-base "^7.0.1" - debug "^4.3.4" - socks "^2.7.1" - -socks@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" - integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== - dependencies: - ip "^2.0.0" - 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== - -spawn-command@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2.tgz#9544e1a43ca045f8531aac1a48cb29bdae62338e" - integrity sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ== - -split@0.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" - integrity sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA== - dependencies: - through "2" - -standard-as-callback@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" - integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -stream-chain@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" - integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== - -stream-combiner@~0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" - integrity sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw== - dependencies: - duplexer "~0.1.1" - -stream-json@^1.7.4: - version "1.8.0" - resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.8.0.tgz#53f486b2e3b4496c506131f8d7260ba42def151c" - integrity sha512-HZfXngYHUAr1exT4fxlbc1IOce1RYxp2ldeaf97LYCOPSoOqY/1Psp7iGvpb+6JIOgkra9zDYnPX01hGAHzEPw== - dependencies: - stream-chain "^2.2.5" - -streamx@^2.15.0: - version "2.15.0" - resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.0.tgz#f58c92e6f726b5390dcabd6dd9094d29a854d698" - integrity sha512-HcxY6ncGjjklGs1xsP1aR71INYcsXFJet5CU1CHqihQ2J5nOsbd4OjgjHO42w/4QNv9gZb3BueV+Vxok5pLEXg== - dependencies: - fast-fifo "^1.1.0" - queue-tick "^1.0.1" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== - -supports-color@^5.3.0, supports-color@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -tar-fs@3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.4.tgz#a21dc60a2d5d9f55e0089ccd78124f1d3771dbbf" - integrity sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w== - dependencies: - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^3.1.5" - -tar-stream@^3.1.5: - version "3.1.6" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.6.tgz#6520607b55a06f4a2e2e04db360ba7d338cc5bab" - integrity sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg== - dependencies: - b4a "^1.6.4" - fast-fifo "^1.2.0" - streamx "^2.15.0" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -through@2, through@^2.3.6, through@^2.3.8, through@~2.3, through@~2.3.1: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -tiny-typed-emitter@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz#b3b027fdd389ff81a152c8e847ee2f5be9fad7b5" - integrity sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA== - -tldts-core@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.0.5.tgz#6babfadfe695f93e7c842de19c7c11930906f41c" - integrity sha512-DBpylEmOYzU+x8oiJU6pULwr1WPIoW1YYXxf8K88N+mEtIB9QOSCsMj0KdARoJFS/rMDWRguB4dRKL0zqq6LWQ== - -tldts@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.0.5.tgz#553c18c3f18cb860329b2b859546ab47647d0cd4" - integrity sha512-2JQhXcZbp8eh2Ka81yvu5WzBa7NPKhGhXHy+dz0grD7w3DjgK0CsryEwNjVs6i170VF4sZAkwP8pGb1q53wiiQ== - dependencies: - tldts-core "^6.0.5" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -touch@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" - integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== - dependencies: - nopt "~1.0.10" - -tough-cookie@^4.0.0, tough-cookie@^4.1.2: - version "4.1.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" - integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" - -tr46@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-4.1.1.tgz#281a758dcc82aeb4fe38c7dfe4d11a395aac8469" - integrity sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw== - dependencies: - punycode "^2.3.0" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -tree-kill@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.1, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0: - version "2.5.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" - integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^3.0.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.12.0.tgz#4ce26edc1ccc59fc171e495887ef391fe1f5280e" - integrity sha512-qj9wWsnFvVEMUDbESiilKeXeHL7FwwiFcogfhfyjmvT968RXSvnl23f1JOClTHYItsi7o501C/7qVllscUP3oA== - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typescript@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.3.tgz#8d84219244a6b40b6fb2b33cc1c062f715b9e826" - integrity sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw== - -uhyphen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/uhyphen/-/uhyphen-0.2.0.tgz#8fdf0623314486e020a3c00ee5cc7a12fe722b81" - integrity sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA== - -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" - -undefsafe@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" - integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" - integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -url-parse@^1.5.3: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^8.3.0: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uuid@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== - -vali-date@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" - integrity sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg== - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -w3c-xmlserializer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" - integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== - dependencies: - xml-name-validator "^4.0.0" - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== - dependencies: - defaults "^1.0.3" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -webidl-conversions@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" - integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== - -whatwg-encoding@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" - integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== - dependencies: - iconv-lite "0.6.3" - -whatwg-mimetype@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" - integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== - -whatwg-url@^12.0.0, whatwg-url@^12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-12.0.1.tgz#fd7bcc71192e7c3a2a97b9a8d6b094853ed8773c" - integrity sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ== - dependencies: - tr46 "^4.1.1" - webidl-conversions "^7.0.0" - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrap-ansi@^6.0.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^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.13.0, ws@^8.13.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== - -xml-name-validator@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" - integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -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== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargonaut@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/yargonaut/-/yargonaut-1.1.4.tgz#c64f56432c7465271221f53f5cc517890c3d6e0c" - integrity sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA== - dependencies: - chalk "^1.1.1" - figlet "^1.1.1" - parent-require "^1.0.0" - -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.1: - version "17.7.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" - integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== - 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" - -yargs@^17.5.1, 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" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==